Linux高级存储管理
逻辑卷
意义:当一个存储数据的硬盘分区被填满时,如果这个数据放在逻辑卷里,那么可以通过扩大硬盘分区的容量,来解决这个问题;如果没有放在逻辑卷里面,则需要先给该硬盘分区的数据备份,导入到更大的硬盘分区,来解决这个问题;显而易见,采用逻辑卷的方式存储数据是很必要的。
逻辑卷的生成步骤:物理分区---->物理卷(pv)---->物理卷组(vg)----->逻辑卷(LV)
监控命令:watch -n 1 “pvs --units M;echo ===;vgs --units M;echo ===;lvs --units M ;echo ===;df -h /westos”
解释:pvs|gvs|vgs -units M #显示各个部分占用了多少
df -h /westos #/westos这个挂载点的使用情况
生成过程
-
建立物理分区并设定分区的type为lvm
-
pvcreate /dev/vdb2 #创建pv
-
vgcreate 物理组名称 物理分区 -s size #创建vg;-s 是指定PE大小、
pe:构成lv的基础大小,lv的大小是pe的整数倍;如果不指定则默认为4M. -
lvcreate -L size -n lv名称 vg名称 #创建lv
-
mkfs.xfs /dev/mapper/物理卷组-逻辑卷名称 #格式化为xfs系统(只能拉伸不能压缩)
mkfs.ext4 /dev/mapper/物理卷组-逻辑卷 #格式化为etx4系统(可以拉伸也可以压缩) -
mount /dev/mapper/物理卷组/逻辑卷 挂载点 #挂载
lvm拉伸
-
当vg的容量充足
- lvextent -L size 设备名称 #扩大lv到多大
- xfs_growsf 挂载点 #使挂载点的数据同步变化
-
当vg的容量不足
-
划分物理分区
-
pvcreate /dev/vdb2 #生成新的物理卷
-
vgextend 物理卷组 物理卷 #把新生成的物理卷添加到物理卷组里面(相当于给物理卷组扩容)
-
此时vg的容量就充足了,接下来就按vg容量充足的方式做就行
-
lvm缩减
注:由于xfs文件系统不支持缩减,ext文件系统可以支持缩减和拉伸
步骤:
- umount 挂载点 #取消挂载
- mkfs.ext4 /dev/mapper/vgname-lvname #将文件系统变成ext4文件系统
- e2fsck -f /dev/vgname/lvname #扫描逻辑卷里面含有的文件大小
- resize2fs /dev/vgname/lvname size #将逻辑卷压缩到多大
- lvreduce -L size /dev/vgname/lvname #同步到硬盘
- mount /dev/vgname/lvname 挂载点 #挂载到挂载点
-
查看pe
注:pe在vg被创建之后就不能修改,只能在创建之前加入参数-s size -
vgreduce #移除组里闲置的物理卷
如果非要移除不是闲置的组,可以将数据移动到闲置组,在移除该物理卷
- lvremove/vgremove/pvremove #移除逻辑卷或者物理卷组或者物理卷
vdo虚拟数据优化器
作用:压缩数据,优化重复数据
步骤:
-
dnf list vdo #查看主机是否有vdo(如果没有执行dnf install vdo -y 下载 )
-
dd if=/dev/zero of=/dev/vdb bs=1M count=1 #清空硬盘的主分区表
-
vdo create --name=snji_vdo1 --device /dev/vdb #建立vdo硬盘
-
vdo status --name snji_vdo1
-
mkfs.xfs -K /dev/mapper/snji_vdo1 #格式化
-
mount /dev/mapper/snji_vdo1 /westos #挂载
-
测试
监控命令:watch -n 1 vdostats --human-readable 步骤:- cp /var/www/html/rhel8.2/images/install.img /westos/install1.img #复制文件第一次
- cp /var/www/html/rhel8.2/images/install.img /westos/install2.img #第二次复制文件
-
vdo remove --name snji_vdo1 #删除vdo设备 (必须先取消挂载才可以删除vdo设备)