Linux系统管理
实验所用系统为Redhat-rhel8.2。
Linux的系统管理–Linux高级存储管理
一、逻辑卷
pv ##物理卷 被处理过的物理分区
pe ##物理扩展 设定存储最小单元
vg ##物理卷组 捆绑pv到一个组中
lv ##逻辑卷 分配最终的使用设备,可以通过软件管理的方式拉伸或缩减
[注意] lvm的大小一定是pe的倍数,pe越小,lvm的大小越精确,但是读取速度越慢
监控建立过程
watch -n 1 "pvs;echo ====;vgs;echo =====;lvs;echo ====;df -h /weixindata"
1、lvm设备建立
建立物理分区并设定分区type为lvm
原理:物理分区p处理过之后变成物理卷pv,将pv捆绑到一个组中形成物理卷组vg,将vg分配到逻辑卷lvm中。lvm不足可以从vg中拿,vg不足添加pv,pv来自p,即添加硬盘。
pvcreate /dev/vdb1 ##创建pv
vgcreate -s 2M vg0 /dev/vdb1 ##创建vg,-s设定pe大小为2M
lvcreate -L 22M -n lv0 vg0 ##创建lvm -L指定大小 -n指定名称
mkfs.xfs /dev/vg0/lv0 ##格式化
mount /dev/vg0/lv0 /weixindata ##挂载
2、lvm拉伸(无需卸载)
1)当vg中容量充足
lvextend -L 50M /dev/vg0/lv0 #拉伸设备
xfs_growfs /dev/vg0/lv0 ##拉伸文件系统
2)当vg容量不足
pvcreate /dev/vdb2 ##创建另一个pv
vgextend vg0 /dev/vdb2 ##拉伸另一个pv来补上不足的
lvextend -L 1500M /dev/vg0/lv0 ##拉伸lvm
xfs_growfs /dev/vg0/lv0 ##拉伸文件系统xfs
3、lvm缩减(需要卸载)
xfs不支持缩减,但ext可以
umount /dev/vg0/lv0 ##先卸载
mkfs.ext4 /dev/vg0/lv0 ##修改文件系统
resize2fs /dev/vg0/lv0 ##扩展文件系统ext4
缩减
umount /dev/vg0/lv0 ##先卸载
e2fsck -f /dev/vg0/lv0 ##检测
resize2fs /dev/vg0/lv0 500M ##缩减文件系统大小为500M
lvreduce -L 500M /dev/vg0/lv0 ##缩减设备
mount /dev/vg0/lv0 /weixindata ##挂载
vgreduce vg0 /dev/vdb1 ##将vg0里的/dev/vdb1取出
pvremove /dev/vdb1 ##移除pv
4、lvm删除
umount /dev/vg0/lv0 ##卸载
lvs ##查看lv
lvremove /dev/vg0/lv0 ##移除lv
vgremove vg0 ##移除vg
pvremove /dev/vdb1 ##移除pv
pvs ##查看pv
5、lvm快照
umount /weixindata ##卸载
lvcreate -L 50M -n lv0-picture -s /dev/vg0/lv0 ##建立快照,-L 指定大小,-n指定名称,-s指定源lvm
mount /dev/vg0/lv0-picture /weixindata ##挂载快照
umount /weixindata ##卸载
lvremove /dev/vg0/lv0-picture ##删除快照
lvcreate -L 50M -n lv0-picture -s /dev/vg0/lv0 ##重新建立一个快照
mount /dev/vg0/lv0-picture /weixindata ##重新挂载快照
[注意] 快照的大小可以小于源lvm,也可以一样大,的那时如果快照里的文件大于快照,快照则会爆掉
6、实验详细步骤
- 建立设备lvm
su - root
virt-manager
fdisk -l
fdisk /dev/vdb(+1G,t,l,8e--lvm,wq) ##建两个
udevadm settle
mkfs.xfs /dev/vdb1 ##初始化
mkfs.xfs /dev/vdb2
blkid
mkdir /weixindata ##建立挂载目录
pvcreate /dev/vdb1 ##创建pv
pvcreate /dev/vdb2
vgcreate vg0 /dev/vdb1 ##创建vg
vgremove vg0 ##删除vg
vgcreate -s 2M vg0 /dev/vdb1(指定pe的大小,lvm的大小一定是pe的倍数) ##创建指定pe大小的vg
vgdisplay ##展示
lvcreate -L 22M -n lv0 vg0 ##创建指定大小的lvm
mkfs.xfs /dev/vg0/lv0 ##格式化
mount /dev/vg0/lv0 /weixindata ##挂载
#pvdisplay
#vgdisplay
#查看挂载
- 拉伸lvm
lvextend -L 50M /dev/vg0/lv0 ##对lvm进行拉伸
xfs_growfs /dev/vg0/lv0 ##对文件系统进行拉伸,因为新拉伸出的lvm没有文件系统
[注意] lvm拉伸的范围小于vg的大小,此时需要拉伸vg
lvextend -L 1500M /dev/vg0/lv0 ##失败
- 拉伸vg(需要有一个空闲的pv)
vgextend vg0 /dev/vdb2 ##拉伸另一个pv来补上不足的
lvextend -L 1500M /dev/vg0/lv0 ##重新执行拉伸lvm
xfs_growfs /dev/vg0/lv0 ##拉伸文件系统xfs
- 缩减lvm
[注意] xfs文件系统不可缩减
umount /dev/vg0/lv0 ##先卸载
mkfs.ext4 /dev/vg0/lv0 ##修改文件系统
mount /dev/vg0/lv0 /weixindata ##挂载
lvextend -L 1800M /dev/vg0/lv0 ##扩展lv(可以在挂载的情况下扩展)
resize2fs /dev/vg0/lv0 ##扩展文件系统ext4(扩展文件系统的命令不同)
umount /dev/vg0/lv0 ##先卸载
e2fsck -f /dev/vg0/lv0 ##检测
resize2fs /dev/vg0/lv0 500M ##缩减文件系统大小为500M
lvreduce -L 500M /dev/vg0/lv0 ##缩减设备
mount /dev/vg0/lv0 /weixindata ##挂载
#修改文件系统
#缩减
- 删除正在使用的lvm
vgreduce vg0 /dev/vdb1 ##将vg0里的/dev/vdb1取出,但因正在使用,会执行失败
pvmove /dev/vdb1 /dev/vdb2 ##将/dev/vdb1的数据移到/dev/vdb2中,使其空闲,以便移除
vgreduce vg0 /dev/vdb1 ##将vg0里的/dev/vdb1取出
pvremove /dev/vdb1 ##移除pv
- lvm快照
touch /weixindata/westosfile{1..10}
umount /weixindata ##卸载
ls /weixindata
lvcreate -L 50M -n lv0-picture -s /dev/vg0/lv0 ##建立快照,-L 指定大小,-n指定名称,-s指定源lvm
lvs ##察看是否建立成功
mount /dev/vg0/lv0-picture /weixindata ##挂载快照
ls /weixindata
rm -rf /weixindata/* ##删除文件
ls /weixindata
umount /weixindata ##卸载
lvremove /dev/vg0/lv0-picture ##删除快照
lvcreate -L 50M -n lv0-picture -s /dev/vg0/lv0 ##重新建立一个快照
mount /dev/vg0/lv0-picture /weixindata ##挂载快照
ls /weixindata ##文件还在
- 删除lvm
umount /dev/vg0/lv0 ##卸载
lvs ##查看lv
lvremove /dev/vg0/lv0 ##移除lv
vgremove vg0 ##移除vg
pvremove /dev/vdb2 ##移除pv
pvs ##查看pv
二、vdo(Virtual Data Optimize)
虚拟数据优化器,由两部分组成:
kvdo ##压缩数据
uds ##优化重复数据
1、vdo建立(需要一个全新的分区)
dnf install vdo -y
vdo create --name=westos_vdo1 --device=/dev/vdb
vdo status --name=westos_vdo1 | less
Deduplication: enabled ##vdo检测并删除重复数据的功能是开启的
Compression: enabled ##vdo数据压缩功能开启
2、使用vdo设备
mkfs.xfs -K /dev/mapper/westos_vdo1
mkdir /westos_vdo
mount /dev/mapper/westos_vdo1 /westos_vdo
3、测试vdo性能
vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/westos_vdo1 5.0G 3.5G 1.5G 70% 1%
cp /westos/images/install.img /westos_vdo
vdostats --human-readable
4、删除vdo
umount /mnt ##先卸载
df
vim /etc/fstab ##清空
vdo stop --name westos_vdo1 ##关闭
vdo start --name westos_vdo1 ##打开
vdo remove --name westos_vdo1 ##删除
5、实验步骤
dnf install vdo -y
dd if=/dev/zero of=/dev/dvb bs=1M count=1
vdo create --name=westos_vdo1 --device=/dev/vdb
fdisk -l
mkfs.xfs -K /dev/mapper/westos_vdo1 ##格式化
mkdir /westos_vdo
mount /dev/mapper/westos_vdo1 /westos_vdo ##挂载
fdisk -l
###真机
cd /var/www/html/westos/images
scp install.img root@172.25.254.109:/westos_vdo
###虚拟机a
systemctl status vdo.service
vim /etc/fstab
///
/dev/mapper/westos_vdo1 /mnt xfs defaults,x-systemd.requires=vdo.service 0 0
///
mount -a
reboot
df检查
#开机自动挂载
#文件内容
Linux的系统管理–Linux中的无人职守安装脚本kickstart
一、kickstart自动安装脚本的作用
在企业中安装多台操作系统时面临的问题:
当安装linux操作系统时,安装过程中会需要回答很多关于设定的问题
这些问题必须手动选择,否则无法安装
当只安装1台linux系统,手动选择设定工作量比较小
当安装多台linux,这些设定需要重复多次,效率低
如何解决问题:
用文件记录所有安装过程中问题的答案,让所有需要安装的主机自动读取
kickstart作用
以上解决方案中记录系统安装过程中所有问题答案的文件叫kickstart脚本
二、实验环境
1、主机名称:westosa
2、ip:172.25.254.9
3、火墙,selinux关闭
4、httpd服务开启
5、配置软件仓库正常
三、kickstart自动安装脚本的制作
通过模板生成kickstart文件
在已经装好的rhel8中,/root/anaconda-ks.cfg 就是安装当前系统时回答的所有问题的答案生成的kickstart,此文件为kickstart模板
1、共享资源
- 真机
dnf list all
systemctl enable --now httpd
systemctl status httpd
systemctl disable --now firewalld
setenforce 0
###测试
浏览器 172.25.254.9/westos
意义:
在安装操作系统时,每个被安装的操作系统都要有安装资源
如果使用镜像安装,每个安装的系统都需要加载一个镜像
这样会阿拉嗯非存储,通过网络来共享镜像中的资源,让安装系统的主机能通过网络访问被共享的资源,这样就连可以解决多台主机需要多个镜像安装的问题
2、用模板自作kickstart
cd /root
systemctl disable --now firewalld ##关火墙
vim anaconda-ks.cfg ##记录系统安装过程中回答所有问题答案的文件
///
#version=RHEL822
ignoredisk --only-use=sda ##注释,忽视所有硬盘,只装sda,只用系统中的第一块硬盘
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel ##把sda硬盘的所有内容删掉
# Reboot after installation
reboot
# Use graphical install
#graphical ##安装过程开启图形
text ##安装过程不开启图形
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us' ##系统布局为美式键盘
# System language
lang en_US.UTF-8 --addsupport=zh_CN.UTF-8 ##系统支持的语言
# Network information
network --bootproto=dhcp --onboot=on ##网络设定,不设定主机名,dhcp --bootproto=dhcp,开机自动激活网卡--onboot=on
repo --name="AppStream" --baseurl=http://172.25.254.9/westos/AppStream ##软件安装资源
# Use network installation
url --url="http://172.25.254.9/westos" ##系统安装资源
# Root password
rootpw --iscrypted $6$848rXC3w6DiIFY.T$jZoqHsbJBNeZecu9uAWYerFTfv8WccLKE01ZXT1eSfJA.fafgdim9yBkQJ9qJr9jxY4AtPjkCSibiO8p2rNlS0
# X Window System configuration information
xconfig --startxonboot
firstboot --disable ##首次启动初始化禁止
# System services
services --enabled="chronyd"
# System timezone
timezone Asia/Shanghai
# Disk partitioning information
part / --fstype="xfs" --size=1 --grow
part swap --fstype="swap" --size=500
part /boot --fstype="xfs" --size=500
%packages
@^graphical-server-environment ##安装图形插件
ibus-libpinyin.x86_64 ##安装拼音插件
%end
///
cp anaconda-ks.cfg /var/www/html/westos.ks
cat /var/www/html/westos.ks
ls -l /var/www/html/westos.ks
chmod 644 /var/www/html/westos.ks
测试:
在浏览器里打开172.25.254.9/westos.ks即可
[注意] 加密字符:真机下openssl passwd -6获取
3、搭建dhcp服务器
让被安装的主机里可以获得ip来访问网络资源以及kickstart文件
具体步骤参照网络配置第十二点
4、测试
su - root
virt-manager
建立硬件,镜像,1000,1,8g
在系统安装界面选择
Install Red Hat Enterprise Linux 8.0.0 ##TAB键
ks=http://172.25.254.9/westos.ks
查看效果