xfs的lvm不能直接在线缩减空间,所以一定注意,xfs文件系统的lvm分区,尽量往小了分,一旦上线就只扩不减!
如果你强行用以前ext4文件系统的lvm扩容方法去缩减空间,会导致出现superblock错误无法挂载非常坑的。
万不得已需要缩减xfs文件系统的lvm分区空间时候,一定要注意顺序。
第零步安装 xfsdump
yum install -y xfsdump
第一步目标数据备份
以/home为例
xfsdump -f "dump文件存放的绝对路径加文件名" "需要缩减容量的目录"
比如
xfsdump -f /opt/home.dump /home
第二步,卸载你挂载的目录
umount /home
第三步调整 lv容量
lvresize -L 50G /dev/mapper/centos-home
#/dev/mapper/centos-home--->/home
把你原来的逻辑卷变成50G是扩大还是缩小它自己会判断
第四步格式化以更新到最新大小
mkfs.xfs -f /dev/mapper/centos-home
第五步重新挂载新的/home
mount /dev/mapper/centos-home
第六部把dump的数据恢复
xfsrestore -f /opt/home.dump /home
第七部查看VG可用容量
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size <199.00 GiB
PE Size 4.00 MiB
Total PE 50943
Alloc PE / Size 26592 / <103.88 GiB
Free PE / Size 24351 / 95.12 GiB #/home收缩后可用空间
VG UUID zZb0hC-8mVg-Ntfe-ISn3-NyfN-OSkq-0Xc3le
第八部将所有可用空间扩给/dev/mapper/centos-root
lvextend -l +100%free /dev/mapper/centos-root
第九步更新文件系统
xfs_growfs /dev/mapper/centos-root
分区前后对比
调整前
[root@Ansible ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 2.0G 28K 2.0G 1% /dev/shm
tmpfs tmpfs 2.0G 19M 1.9G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 61G 7.0G 54G 12% /
/dev/sda2 xfs 1014M 169M 846M 17% /boot
/dev/sda1 vfat 599M 6.9M 592M 2% /boot/efi
/dev/mapper/cl-home xfs 30G 1.3G 29G 5% /home
tmpfs tmpfs 393M 0 393M 0% /run/user/0
调整后
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 146G 19G 127G 13% /
/dev/sda1 xfs 1014M 150M 865M 15% /boot
/dev/mapper/centos-home xfs 50G 33M 50G 1% /home
tmpfs tmpfs 378M 0 378M 0% /run/user/0