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