当前公司其中一台服务器安装的CentOS7 系统
服务器上是1TB的机械硬盘
运行一段时间之后,发现根分区要满了,而home分区还有900多GB的空闲容量。
想着把home分区的容量拿一些到根分区来。
注意!!!做硬盘扩缩容前千万记得备份!!!
备份
首先可以考虑的方案有xfsdump,但是考虑到服务器home目录下有几十GB的数据,但根分区剩余容量不足以备份home里面的数据
这里直接采用简单粗暴的方法,把整个home目录压缩成一个压缩包,然后复制到U盘或者其他分区
将整个home目录都备份到/home下的home_backup.tar.gz文件里
sudo tar -czvf /home/home_backup.tar.gz /home
注意:如果其他分区容量足够的情况下,最好是备份在其他分区,例如/tmp下
sudo tar -czvf /tmp/home_backup.tar.gz /home
将home_backup.tar.gz复制到U盘或者其他分区
以下步骤需要在root账户下运行
由于系统在运行的时候,并不能对已经挂载的分区进行操作
服务器基本情况
df -TH
根分区和home分区都是XFS文件系统(或者说,根分区和home需要保持一致的文件系统)
需要卸载home分区
umount /home
如果提示繁忙,则需要先结束相关用户的占用
fuser -km /home
缩小home逻辑卷
这里的300G是指把/home分区直接指定为300GB大小。
sudo lvreduce -L 300G /dev/centos/home
如果是要把/home分区减小200G
sudo lvreduce -L -200G /dev/centos/home
扩容root逻辑卷
这里的520G是指把根分区直接指定为520GB大小。
sudo lvextend -L 520G /dev/centos/root
如果不知道目前有多少剩余空间,希望把所有剩余的空间都给root分区
sudo lvextend -l +100%FREE /dev/centos/root
注意这里的-l参数是小写的,他们有一点区别
-l
参数(小写)用于指定逻辑卷的大小,单位为物理扩展块数(Physical Extents,PE)。例如,-l 100%FREE
表示使用所有剩余的物理扩展块。-L
参数(大写)用于指定逻辑卷的目标大小,可以附加单位,例如G
表示 GB,M
表示 MB,等等。例如,-L 20G
表示逻辑卷的目标大小是 20GB。
所以,使用 -l
参数时需要指定物理扩展块数,而使用 -L
参数时需要指定目标大小以及可能的单位
创建home分区(相当于格式化)
sudo mkfs.xfs /dev/centos/home
挂载home分区
sudo mount /dev/centos/home /home
解压原home分区下的压缩包
sudo tar -xzvf /home_backup.tar.gz -C /
最后使用
df -TH
home分区缩容,root分区扩容就已经完成。