linux中的高级存储管理
1、逻辑卷
pv 物理卷 被处理过的物理分区
pe 物理扩展 设定存储最小单元
vg 物理卷组 捆绑pv到一个组中
lv 逻辑卷 分配最终的使用设备
实验:
1.监控建立:
watch -n 1 "pvs;echo ====;vgs;echo ====;lvs;echo ====;df -h /weixindata" 监控建立
2.lvm设备建立:
建立物理分区并设定分区type为lvm
fdisk /dev/vdb #建立设备分区 两个1G t=8e
pvcreate /dev/vdb1 #创建pv
pvcreate /dev/vdb2
vgcreate -s 2M vg0 /dev/vdb1 #创建vg -s设定pe大小位2M (pe越大读写越快但精确度低)
vgdisplay #查看vg详细信息
lvcreate -L 500M -n lv0 vg0 #创建lvm -L指定大小 -n指定名称
mkfs.xfs /dev/vg0/lv0 #格式化
mount /dev/vg0/lv0 /weixindata/ #挂载
3.lvm拉伸
1、当vg容量充足时
lvextend -L 600M /dev/vg0/lv0 #拉伸设备
xfs_growfs /dev/vg0/lv0 #拉伸文件系统,在rhel7中可以用设备或挂载点
/weixindata #在rhel8.0中只能用挂载点
resize2fs /dev/vg0/lv0 #当文件系统为ext时使用此命令
2、当vg容量不足时
lvm缩减
mkfs.ext4 /dev/vg0/lv0 xfs系统不支持缩减ext文件时更改系统类型
resize2fs /dev/vg0/lv0 ext4文件系统拉伸
缩减步骤:
umount /weixindata
e2fsck -f /dev/vg0/lv0
resize2fs /dev/vg0/lv0 500M
lvreduce -L 500M /dev/vg0/lv0
mount /dev/vg0/lv0 /weixindata/
vgreduce vg0 /dev/vdb1
pvmove /dev/vdb1 /dev/vdb2 #将vdb1中的数据移动到vdb2
vgreduce vg0 /dev/vdb1
pvremove /dev/vdb1
4.快照
umount /weixindata
lvcreate -L 50M -n lv0_backup -s /dev/vg0/lv0 #创建lv0的快照,大小50M,名字lv0_backup
mount /dev/vg0/lv0_backup /weixindata/ #挂载快照
umount /weixindata #被破坏时卸载 再删除重新创建
lvremove /dev/vg0/lv0_backup
5.lvm删除
umount /weixindata
lvs
lvremove /dev/vg0/lv0_backup
lvremove /dev/vg0/lv0
vgremove vg0
pvremove /dev/vdb2
2、vdo (Virtual Data Optimize)虚拟化数据优化器
kvdo 压缩数据
uds 优化重复数据
1.vdo建立
dnf install vdo -y #下载安装vdo服务
dd if=/dev/zero of=/dev/vdb bs=1M count=1
vdo create --name westos_vdo1 --device /dev/vdb
vdo status --name =westos_vdo1 | less #检测vdo删除重复数据和数据压缩功能是开启的
Deduplication: enabled
Compression: enabled
mkfs.xfs -K /dev/mapper/westos_vdo1 #
mount /dev/mapper/westos_vdo1 /weixindata/ #挂载和查看
df -H
vim /etc/fstab #设置开机自启
/dev/mapper/westos_vdo1 /mnt xfs defaults,x-systemd.requires=vdo.service 0 0
2.性能测试:
watch -n1 "vdostats --human-readable" #监控
/westos_vdo1目录中传输两个相同大数据包,vdo会优化重复数据,只显示一份的大小