Linux(20)——高级磁盘管理
1. LVM
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。
- 物理卷(Physical Volume,PV)
指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。 - 卷组(Volume Group,VG)
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。 - 逻辑卷(Logical Volume,LV)
类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。 - 物理块(Physical Extent,PE)
PE是物理卷PV的基本划分单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。
- lvm设备建立
首先在磁盘建立分区,类型选择为lvm,然后依次创建pv vg lv,最终将lv设备挂载至指定目录即可。
[root@rhclient Desktop]# pvcreate /dev/vda2 ##创建pv
[root@rhclient Desktop]# vgcreate testvg -s 2M /dev/sda2 #创建vg -s设定pe大小位2M
[root@rhclient Desktop]# lvcreate -L 100M -n testlv testvg #创建lvm -L指定大小 -n指定名称
[root@rhclient Desktop]# mkfs.xfs /dev/mapper/testvg-testlv #格式化
[root@rhclient Desktop]# mount /dev/testvg/testlv /dir/ #挂载
- lvm设备扩容
- 当vg中容量足够时
[root@rhclient Desktop]# lvextend -L 200M /dev/mapper/testvg-testlv #扩容设备至200M
[root@rhclient Desktop]# xfs_growfs /dir/ #刷新扩展文件系统 (xfs)
[root@rhclient Desktop]# resize2fs /dev/mapper/testvg-testlv #刷新扩展文件系统 (ext)
- 当vg中容量不足时
增加物理磁盘分区,依次扩展pv vg 然后扩展lv。以vd3为例
[root@rhclient Desktop]# pvcreate /dev/vda3
[root@rhclient Desktop]# vgextend testvg /dev/vda3
[root@rhclient Desktop]# lvextend -L 2500M /dev/mapper/testvg-testlv
[root@rhclient Desktop]# xfs_growfs /dir/
- lvm设备缩减容量
xfs不支持缩减,只有当文件系统为ext时支持缩减。
[root@rhclient Desktop]# umount /dir # 卸载lv设备
[root@rhclient Desktop]# e2fsck -f /dev/mapper/testvg-testlv #检测设备存储是否有错
[root@rhclient Desktop]# resize2fs /dev/mapper/testvg-testlv 1500M #缩减文件系统至1500M
[root@rhclient Desktop]# lvreduce -L 1500M /dev/mapper/testvg-testlv#缩减lv设备至1500M
[root@rhclient Desktop]# mount /dev/mapper/testvg-testlv /dir/ #重新挂载
- lvm设备删除
在删除设备之前需要卸载已经挂载的lv设备
[root@rhclient Desktop]# umount /dev/mapper/testvg-testlv #卸载lv设备
[root@rhclient Desktop]# lvremove /dev/mapper/testvg-testlv #移除lv设备
[root@rhclient Desktop]# vgremove testvg #移除vg
[root@rhclient Desktop]# pvremove /dev/vda2 #移除pv
[root@rhclient Desktop]# pvmove dev1 dev2 #将dev1的数据迁移至dev2
2. vdo(Virtual Data Optimize)
支持数据压缩,重复数据优化。
- vdo设备建立及使用
[root@rhclient Desktop]# dnf install vdo -y #安装vdo
[root@rhclient Desktop]# vdo create --name vdo1 --device /dev/vdb #在vdb上启用vdo
[root@rhclient Desktop]# vdo status --name vdo1 | less
Deduplication: enabled ##vdo检测并删除重复数据的功能时开启的
Compression: enabled ##vdo数据压缩功能开启
[root@rhclient Desktop]# vdostats --human-readable #查看vdo使用情况
[root@rhclient Desktop]# mkfs.xfs -K /dev/mapper/westos_vdo1
[root@rhclient Desktop]# mkdir /westos_vdo
[root@rhclient Desktop]# mount /dev/mapper/westos_vdo1 /westos_vdo
- vdo开机自启及删除
[root@rhclient Desktop]# vim /etc/fstab
/dev/mapper/vdodevice /dir xfs defaults,x-systemd.requires=vdo.service 0 0
[root@rhclient Desktop]# vdo remove --name=vdo1 #vdo设备的删除
练习
- ext4格式 扩容及缩减
创建2个100m的分区 类型为Linux lvm
创建vg,并把第二个pv加入所创建的vg
创建lv 大小为100m,格式化为ext4,挂载至/dir
扩容lv设备至150m,刷新文件系统
缩减设备至50m,移除第二个pv
删除lv设备,移除vg以及所有pv
- vdo测试
安装启用vdo
复制同一个文件时,达到一定次数时,用时减少
设备占用未增加,节省空间变大
设置开机启动vdo
删除设备