Linux高级存储管理(lvm的拉伸缩减、lvm的快照、vdo的建立、挂载)

一、逻辑卷

1、定义

  • 解决分区空间不够用或者分区空间绰绰有余的情况
pv物理卷(被处理过的物理分区)
pe物理扩展(设定存储最小单元)
vg物理卷组(捆绑pv到一个组中)
lv逻辑卷(分配最终的使用设备)

在这里插入图片描述
当逻辑卷存储不足时,会从物理卷组中获取空间,如果物理卷组存储也不足时,会将新的物理分区也处理为物理卷,添加到物理卷组中。

2、lvm的建立

(1)监控建立过程

watch -n 1 "pvs;echo ===;vgs;echo ===;lvs;echo ===;df -h /sk"

(2)建立物理分区并设定分区类型为lvm

fdisk /dev/vdb

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)创建pv、vg、lvm

pvcreate /dev/vdb1  ##创建pv
vgcreate sk_vg -s 2M /dev/vdb1  ##创建vg名称为sk_vg,-s设定pe大小为2M
lvcreate -L 100M -n sk_lv sk_vg  ##创建lvm -L指定大小 -n指定名称
lvcreate -l 100 -n sk_lv2 sk_vg  ##创建lvm -l指定pe块数 -n指定名称
pvdisplay /dev/vdb1  ##查看pv的详细信息
vgdisplay sk_vg  ##查看vg的详细信息
lvdisplay /dev/sk_vg/sk_lv  ##查看lv的详细信息
lvdisplay /dev/sk_vg/sk_lv2

在这里插入图片描述
在这里插入图片描述(3)格式化与挂载

mkfs.xfs /dev/mapper/sk_vg-sk_lv  ##格式化
mount /dev/sk_vg/sk_lv /sk  ##挂载

在这里插入图片描述

3、lvm拉伸

1、当vg中的容量充足时
分步操作:

lvextend -L 200M /dev/sk_vg/sk_lv  ##拉伸设备
xfs_growfs /sk  ##拉伸文件系统,rhel7中可以用设备或挂载点,rhel8中只能用挂载点

在这里插入图片描述
一步操作:

lvextend -r -L 500M /dev/sk_vg/sk_lv  ##拉伸设备和文件系统

在这里插入图片描述
2、当vg中的容量不够时
在这里插入图片描述
先添加新的分区(方法参考创建/dev/vdb1)
在这里插入图片描述再创建新的pv,添加到之前的vg中去,再进行拉伸

pvcreate /dev/vdb2  ##创建pv
vgextend sk_vg /dev/vdb2  ##添加新的pv到vg中
lvextend -r -L 1.5G /dev/sk_vg/sk_lv  ##拉伸设备和文件系统

在这里插入图片描述3、ext文件系统拉伸

lvextend -L 200M /dev/sk_vg/sk_lv  ##拉伸设备
resize2fs /dev/mapper/sk_vg-sk_lv 200M  ##拉伸文件系统

4、lvm缩减

  • xfs文件系统不支持缩减,ext文件系统可以

(1)将xfs文件转为ext文件系统

umount /sk  ##先卸载原挂载点
mkfs.ext4 /dev/sk_vg/sk_lv  ##转换文件系统为ext4
mount /dev/sk_vg/sk_lv /sk  ##重新挂载

(2)缩减

umount /sk  ##卸载
e2fsck -f /dev/sk_vg/sk_lv  ##检测数据
resize2fs /dev/sk_vg/sk_lv 100M  ##缩减文件系统
lvreduce -L 100M /dev/sk_vg/sk_lv  ##缩减设备

在这里插入图片描述

5、lvm删除

umount /dev/sk  ##卸载
lvremove /dev/sk_vg/sk_lv  ##删除lv
vgremove sk_vg  ##删除vg
pvremove /dev/vdb1  ##删除pv

实验:将/dev/vdb1中的数据移到/dev/vdb2上,删除/dev/vdb1的pv

pvmove /dev/vdb1 /dev/vdb2  ##移动数据
vgreduce sk_vg /dev/vdb1  ##将/dev/vdb1从vg中移除
pvremove /dev/vdb1  ##删除pv
lvremove /dev/sk_vg/sk_lv2  ##删除lv(额外操作)

在这里插入图片描述

6、lvm快照

  • 保护原有文件和设备不受破坏,相当于设备reset

-L:要改变的设备数据大小,-n:名称,-s:快照对象

lvcreate -L 50M -n sk_lv-backup -s /dev/sk_vg/sk_lv

实验:
在快照对象中建立文件,创建快照,删除先前建立的文件,删除快照,重新创建快照,观察文件能否恢复

mount /dev/sk_vg/sk_lv /sk  ##挂载快照对象
touch /sk/file{1..5}  ##建立文件
umount /sk  ##卸载
lvcreate -L 50M -n sk_lv-backup -s /dev/sk_vg/sk_lv  ##创建快照
mount /dev/sk_vg/sk_lv-backup /sk  ##挂载快照
rm -fr /sk/*  ##删除建立文件
umount /sk  ##卸载
lvremove /dev/sk_vg/sk_lv-backup  ##删除快照
lvcreate -L 50M -n sk_lv-backup2 -s /dev/sk_vg/sk_lv  ##再创建快照
mount /dev/sk_vg/sk_lv-backup2 /sk  ##再挂载快照
ls /sk  ##观察发现文件恢复

在这里插入图片描述查看快照详细信息:

lvdisplay /dev/sk_vg/sk_lv-backup2

在这里插入图片描述

二、vdo

  • vdo(Virtual Data Optimize)虚拟数据优化器
  • kvdo——压缩数据
  • uds——优化重复数据

1、vdo建立

dnf install vdo -y  ##下载vdo,一般系统都会自带
vdo create --name sk_vdo --device /dev/vdb  ##建立vdo
vdo status --name sk_vdo | grep Deduplication  ##查看vdo检测并删除重复数据的功能是否开启
vdo status --name sk_vdo | grep Compression  ##查看vdo数据压缩功能是否开启
vdo enableCompression --name sk_vdo  ##

如何开启压缩数据和检测并删除重复数据的功能:

vdo enableCompression --name sk_vdo  ##开启检测并删除重复数据的功能
vdo enableDeduplication --name sk_vdo  ##开启数据压缩功能

2、使用vdo设备

mkfs.xfs -K /dev/mapper/sk_vdo  ##格式化
mount /dev/mapper/sk_vdo /sk  ##挂载vdo设备

3、测试vdo性能

vdostats --human-readable  ##查看vdo设备使用情况

实验:将一大文件在挂载点复制多次,观察vdo设备使用情况

cp /run/media/root/RHEL-8-2-0-BaseOS-x86_64/images/install.img /sk  ##复制大文件

在这里插入图片描述

4、vdo的永久挂载

vim /etc/fstab
mount -a  ##立即读取/etc/fstab

在这里插入图片描述

5、vdo的删除

umount /dev/mapper/sk_vdo  ##卸载
vim /etc/fstab  ##删除挂载行
vdo remove --name sk_vdo  ##删除vdo
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值