linux的高级存储管理
实验环境
全新的虚拟机,并且添加一块全新的硬盘,并且要在虚拟机关闭的情况下添加全新的硬盘
一 逻辑卷
- pv #物理卷 被处理过的物理分区
- pe #物理扩展 设定存储最小单元
- vg #物理卷组 捆绑pv到一个组中
- lv #逻辑卷 分配最终的使用设备
- 监控建立过程:
watch -n 1 "pvs;echo ====;vgs;echo ====;df -h /weixindata"
【1】lvm设备建立
-
首先进行设备分区
-
建立物理分区并设定分区type为lvm
pvcreate /dev/vda1 #创建pv
vgcreate westosvg -s 2M /dev/vda1 #创建vg -s设定pe大小为200M
lvcreate -L 200M -n westoslv westosvg #创建lvm -L指定大小 -n指定名称
mkfs.xfs /dev/mapper/westosvg-westoslv #格式化
mount /dev/westosvg/westoslv /weixindata/ #挂载
* 对操作进行监控
【2】lvm拉伸
*xfs只支持拉伸不能进行缩减,ext4支持拉伸和缩减
缩减:需要卸载之后,才能进行缩减,先缩减系统,再缩减设备,缩减完成之后需要进行重新挂载
可以将xfs格式化成ext4,但是格式化时,里面的内容就会被清除
(1)当vg中的容量充足
首先需要拉伸设备,之后拉伸文件系统
lvextend -L 200M /dev/mapper/westosvg-westoslv #拉伸设备
xfs_growfs /指定挂载目录/ #拉伸文件系统
resize2fs /dev/mapper/westosvg-westoslv #当文件系统为ext时使用此命令
-
lvextend -L 200M /dev/mapper/westosvg-westoslv #拉伸设备
-
xfs_growfs /weixindata/ #拉伸文件系统,在rhel7中可以用设备或者挂载点,在rhel8中只能用挂载点
-
resize2fs /dev/mapper/westosvg-westoslv #当文件系统为ext时使用此命令
(2)不充足时
首先要拉伸vg组,再拉伸设备,之后拉伸文件系统系统
-
划分分区
-
pvcreate /dev/设备名
-
vgextend westosvg /dev/设备名
-
lvextend -L 2500M /dev/westosvg/westoslv #指定扩展大小
-
xfs_growfs /指定挂载目录/ #拉伸文件系统
【3】lvm的快照
cd /westos (在LVM设备挂载状态下切换)
ls
touch file{1…5}
ls
[root@localhost westos]# cd
[root@localhost ~]# lvcreate -L 50M -n westoslv-bak -s /dev/westosvg/westoslv
[root@localhost ~]# mount /dev/westosvg/westoslv-bak /westos
[root@localhost ~]# cd /westos
[root@localhost westos]# ls
[root@localhost westos]# rm -rf *
[root@localhost westos]# ls
[root@localhost westos]# cd
[root@localhost ~]# umount /westos
[root@localhost ~]# lvremove /dev/westosvg/westoslv-bak
[root@localhost ~]# lvcreate -L 50M -n westoslv-bak -s /dev/westosvg/westoslv
[root@localhost ~]# mount /dev/westosvg/westoslv-bak /westos/
[root@localhost ~]# cd /westos
[root@localhost westos]# ls
file
【3】LVM设备的缩减
- mkfs.ext4 /dev/westosvg/westoslv #xfs文件系统不支持缩减ext文件系统可以,因此需要先将其文件系统格式化为ext4格式
- resize2fs /dev/mapper/westosvg-westoslv #ext4文件系统拉伸
缩减步骤: - umount /指定挂载目录 #卸载
- e2fsck -f /dev/westosvg/westoslv #扫描文件
- resize2fs /dev/westosvg/westoslv 1500M #文件系统拉伸
- lvreduce -L 1500M /dev/westosvg/westoslv #LV缩减
- mount /dev/westosvg/westoslv /指定挂载目录/ #挂载
- vgreduce westosvg /dev/设备名 #vg缩减
【4】lvm设备的删除
- lvremove /dev/westos_vg/westos_lv0_backup #删除lvremove
- vgremove westos_vg #删除vgremove
- pvremove /dev/vdb2 #删除pv
二 Vdo
(虚拟数据优化器)
【1】vdo设备的建立
- vdo create --name=vdo设备名 --device=/dev/设备名(硬盘)
- vdo status --name=vdo设备名 | less
- Deduplication: enabled #vdo检测并删除重复数据的功能时开启的
- Compression: enabled #vdo数据压缩功能开启
【2】vdo设备的使用
- mkfs.xfs -K /dev/mapper/vdo设备名 #格式化vdo设备的文件系统为xfs
- mkdir /指定目录 #创建一个目录用于挂载vdo设备
- mount /dev/mapper/vdo设备名 /指定目录 #挂载vdo设备到指定目录
【3】vdo设备的测试
-
(1)vdostats --human-readable %查看vdo设备信息如下所示
Device Size Used Available Use% Space saving%
/dev/mapper/vdo设备名 20.0G 4.0G 16.0G 20% 98% -
(2)多次复制同一文件到vdo设备中,发现从第二次往后复制时间明显缩短,并且vdo设备中的所占内存基本不增加
-
cp /xxxx /xxxx /xxxx /vdo设备名/
-
vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdo设备名 20.0G 4.4G 15.6G 22% 2% -
cp /xxxx /xxxx /xxxx /vdo设备名/
-
vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdo设备名 20.0G 4.5G 15.5G 22% 50
【4】vdo设备的删除
- vdo remove --name=vdo设备名 #删除vdo设备