/
目录下只有50G
但是/home
下有839G
我打算将/home
的839G
分500G
给/
目录
df -Th
两个目录的文件类型都是 xfs
XFS 文件系统不支持缩小操作,不能直接缩小 /home
的逻辑卷(LV),否则会损坏文件系统。
基于此开始操作
一、备份 /home 文件数据
将home数据压缩备份到 nfs文件系统目录下
tar -czvf /usr/sftp/file/home.tar.gz /home/
二、卸载 /home
卸载
umount /home
使用以下命令查找占用 /home 的进程:
lsof /home
将相关进程 kill
我发现我的nacos服务的进程 kill
了会自动重启,原因是使用了systemd
这样的服务管理器来运行Nacos,需要用以下命令进行关闭
systemctl stop nacos
完事后开始卸载,卸载成功了
umount /home
三、删除 /dev/mapper/centos-home 逻辑卷
lvremove /dev/mapper/centos-home
虽然你已经执行了 umount /home
,但系统仍然认为该逻辑卷正在被使用。这通常是因为:
●
有进程仍在访问 /home
下的文件;
●
或者 /home
挂载点只是临时卸载了,但某些服务仍持有文件描述符;
●
或者 /etc/mtab
或 /proc/mounts
中还残留挂载信息。
检查所有挂载点
mount | grep centos-home
检查/etc/fstab中是否有相关配置
grep centos-home /etc/fstab
编辑fstab
,注释掉或删除包含centos-home
的那一行
vi /etc/fstab
重新加载系统挂载信息
systemctl daemon-reload
再次尝试删除逻辑卷bash
lvremove -f /dev/mapper/centos-home
还是不行
查看逻辑卷状态
lvdisplay /dev/centos/home
发现open的值为1,表示有一个进程正在使用该逻辑卷
Block device 设备号是: 253:2
查看设备映射状态
dmsetup ls
清除设备映射
dmsetup remove centos-home
重启服务器
reboot
再次清除
dmsetup remove -f /dev/mapper/centos-home
清除成功了
删除逻辑卷
lvremove -f /dev/mapper/centos-home
删除成功
四、 从卷组中重新分配空间
/ 目录增加500G
lvresize -L +500G /dev/mapper/centos-root
逻辑卷已扩展,但文件系统未扩展
扩展 /目录文件系统
xfs_growfs /
这里就扩展成功了
五、创建新的 /home 逻辑卷并格式化为 XFS
新建 /home
将剩余的 339G
lvcreate -L 339G -n home centos
空闲空间不足,无法分配 339G 的新逻辑卷, Free Size ≈ 86719 extents × 4MB = 约 338.74GB
lvcreate -L 338G -n home centos
格式化为 XFS 文件系统
mkfs.xfs /dev/centos/home
六、重新挂载
mount /dev/centos/home /home
七、设置fstab
为了确保重启后 /home 自动挂载,可以在 /etc/fstab 中添加如下一行:
/dev/mapper/centos-home /home xfs defaults 0 0
vi /etc/fstab
我原来有,只是之前注释掉了,这里直接放开注释就可以了
重新加载系统挂载信息
systemctl daemon-reload
八、 恢复 /home 数据
将备份的 /usr/sftp/file/home.tar.gz 压缩包 解压到 /home下
tar -zxvf /usr/sftp/file/home.tar.gz -C /home
解压完成发现多了一级
进行迁移
mv /home/home/* /home/
删除空的 /home/home 目录
rmdir /home/home
增加 --strip-components=1
可以直接解压到/home
下,不会多一级/home
tar -zxvf /usr/sftp/file/home.tar.gz -C /home --strip-components=1