LVM 缩容本来是一件很容易的事情, 但是如果在 xfs
文件系统下, 就麻烦一些.
今天有个测试环境, 系统是 Centos 7 和 xfs
文件系统,
因为一些原因需要对某个 LV 进行缩容, 从 341GB 减小到 60GB , 记录一下.
进入 rescue mode
开机, 在 grub 菜单, 按 e 进入编辑, 在 linux16
那一行追加 systemd.unit=rescue.target
, 按 Ctrl + X
执行启动.
信息
# df -hT | grep home |
# lvdisplay |
备份 xfs 文件系统
xfsdump -l 0 -f /cl-home.image /dev/cl/home |
移除 LV
umount /dev/cl/home |
创建新的 60G 的 LV
lvcreate -L 60G -n home cl |
然后 vgs
可以看到 VG 回收的 VFree 空间,lvdisplay
可以看到新的 LV 信息.
为 LV 创建文件系统
mkfs.xfs /dev/cl/home |
挂载到 /home 目录
mount /dev/cl/home /home |
restore 旧分区数据到新的 LV
xfsrestore -f /cl-home.image /home |
reboot
ls -al /home |
一切正常. (GRUB menu 不用改, e 模式的修改会自动恢复)
确认没问题之后, 可以删除 /cl-home.img 文件.