动态的为服务器磁盘添加空间,而不会影响原磁盘的数据,也不需要对原始磁盘重新分区。
以下是LVM的示意图:
2.建立pv
watch -n 1 "pvs;echo ====;vgs;echo =====;lvs;echo =====;df -h /fff" #实时监控相应的信息
pvcreate /dev/sdb3 # 创建PV
vgcreate -s 4M sxl_vg /dev/sdb3
lvcreate -L 100M -n sxl_lv sxl_vg # lv空间为100M,命名为sxl_lv,从sxl_vg取得的空间
mkfs.xfs /dev/sxl_vg/sxl_lv # 格式化分出来的逻辑空间
mount /dev/sxl_vg/sxl_lv /fff # 挂载
以下操作动态进行,而不会影响原始数据
lvextend -L 200M /dev/sxl_vg/sxl_lv # 空间大小拉伸
xfs_growfs /fff # 格式化拉伸
建立新的pv,扩充vg,拉伸lv
pvcreate /dev/sdb4 # 建立新的pv
vgextend sxl_vg /dev/sdb4 #扩充vg
lvextend -L 2500M /dev/sxl_vg/sxl_lv # 拉伸lv
xfs格式文件不支持缩减,需要使用ext4文件格式才可以缩减。
注意下面格式化,会丢失原有数据
umount /fff # 卸载挂载
e2fsck -f /dev/sxl_vg/sxl_lv # 扫描分区,保证下面缩减空间不能小于已经使用的空间
resize2fs /dev/sxl_vg/sxl_lv 500M # 缩减空间
lvreduce -L 500M /dev/sxl_vg/sxl_lv # 重新缩减LV
mount /dev/sxl_vg/sxl_lv /fff # 挂载
pvmove /dev/sdb3 /dev/sdb4 # 移动/dev/sdb3到/dev/sdb4
vgreduce sxl_vg /dev/sdb3 # 去掉VG中的/dev/sdb3 PV
pvremove /dev/sdb3 # 永久删除/dev/sdb3 PV
lvcreate -L 100M -n sxl_lvbackup -s /dev/sxl_vg/sxl_lv # sxl_lvbackup快照名字 /dev/sxl_vg/sxl_lv被映射的原LV
mount /dev/sxl_vg/sxl_lvbackup /fff # 挂载快照
umount /fff
lvremove /dev/sxl_vg/sxl_lv # 删除LV
vgremove sxl_vg # 删除VG
pvremove /dev/sdb4 # 删除PV
1、压缩数据
2、存相同内容的文件,对于重复的数据优化
dnf install vdo -y
vdo create --name=sxl_vdo --device=/dev/sdc
vdostats --human-readable # 查看vdo使用情况
vdo status --name=sxl_vdo | less # 查看vdo配置信息
Deduplication: enabled ##vdo检测并删除重复数据的功能时开启的
Compression: enabled ##vdo数据压缩功能开启
mkfs.xfs -K /dev/mapper/sxl_vdo # 格式化创建的vdo设备
mount /dev/mapper/sxl_vdo /fff # 挂载
/etc/fstab
/dev/mapper/sxl_vdo /fff xfs defaults,x-systemd.requires=vdo.service 0 0
umount /fff
vdo stop --name sxl_vdo # 停用
vdo remove --name sxl_vdo # 移除