本文介绍如何缩减XFS分区格式的 / 目录。如果需要缩减逻辑卷上的XFS文件系统,则需要通过备份、恢复和重新创建逻辑卷来实现。
系统环境
Centos8当前系统分区布局
这是当前文件系统布局。当前挂载点/
容量为17G。我们的目的时减少/
的容量。
备份数据
在缩减分区前一定要备份重要数据。如果出现问题了,可以恢复数据。
注意:需要为该服务器额外添加一块硬盘,用来备份系统分区的。
进入救援模式
在VMware Workstation中,加载光盘,并开机器用。开机按F2,进入BIOS,切换到Boot选项卡。将CD-ROM Drive移动到Hard Drive上面。按F10保存并重启。
选择Troubleshooting,然后选择进入救援模式。
当进入下面界面时,选择3,直接进入shell界面。
进入救援模式,可以看到/mnt/sysimage
目录没有挂载系统分区。
# ls -al /mnt/sysimage/
激活逻辑卷组
挂载分区之前,需要激活逻辑卷,下面激活卷组:
# vgchange -ay logical volume(s) in volume group "cl" now active # vgs VG #PV #LV #SN Attr VSize VFree cl 1 2 0 wz--n- <19.00g 0
挂载系统分区和用来备份数据的分区
首先从备份开始,我们需要将逻辑卷挂载在某个位置。通过临时挂载它,我们可以将/
分区备份到任何其他位置,并且在执行还原时需要对其进行访问。
现在,在/mnt/sysimage/下创建两个目录。一个用于挂载该服务器的实际/
分区,另一个将用于存储/
分区的备份。
# mkdir /mnt/sysimage/root # mkdir /mnt/sysimage/backup # mount /dev/cl/root /mnt/sysimage/root # mount /dev/sda /mnt/sysimage/backup/
使用xfsdump备份/分区
通过运行xfsdump
来执行备份。
# xfsdump -l 0 -L "root lv backup" -M "backup" -f /mnt/sysimage/backup/root_backup.img /mnt/sysimage/root
dump使用级别0
(备份所有文件)时,将提示输入备份会话标签和媒体标签,我们可以通过以下选项-f
将-L
和-M
添加到以下内容来避免出现提示:
-l 0
备份级别设置为0,0级指所有文件都将备份。
-L
指定备份会话的标签
-M
指定第一个媒介的标签
-f
指定备份目的文件。
卸载文件系统
备份完成后,我们可以卸载文件系统。
# umount /mnt/sysimage/root/
缩减/分区
使用lvremove
命令删除逻辑卷,并使用lvcreate
来创建新的卷。
# lvremove /dev/cl/root Do you really want to remove active logical volume cl/root? [y/n]: y Logical volume "root" successfully removed
之后,创建所需的逻辑卷大小,下面创建逻辑卷大小为15G。
# lvcreate -Zy -L 15G -n root cl
使用-Zy
将新的逻辑卷中的前4KiB数据清零。
创建新的XFS分区
# mkfs.xfs /dev/cl/root
挂载并恢复数据
文件系统准备就绪后,将其挂载在/mnt/sysimage/root目录中:
# mount /dev/cl/root /mnt/sysimage/root/
使用xfsrestore
命令恢复之前备份的数据:
# xfsrestore -f /mnt/sysimage/backup/root_backup.img /mnt/sysimage/root
重启进入系统检查是否正常。断开虚拟机的光驱连接,开机按F2,进入BIOS,设置引导顺序,将硬盘放在第一项启动,F10保存并重启:
进入系统之后,检查分区大小是否以缩减:
[root@localhost ~]# df -hT / Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/cl-root xfs 15G 1.7G 14G 11% /
总结
就这样,借助xfsdump
和xfsrestore
实用程序,我们完成了缩减XFS文件系统和逻辑卷的工作。