Centos7扩容根目录

貌似默认情况下Centos7给根目录分配的容量是50GB,在生产环境中太小了可能会出现一些奇奇怪怪的问题。在k8s中虽然已经将docker的目录挂载到数据盘了但是还是有些日志导致日常使用率超过80%,导致我要经常清理后来干脆搞个定时脚本清理了。。。
以前没得选,现在能让我选择得话我想给根目录分配大一点,可是还是不能如愿只能扩容了。

由于写该文档的时候是在华为云虚拟化的私有平台开的资源,说要该根目录就要重新打模板要我提供镜像可是我一时间找不到ARM的Centos7只能用着50GB的那个模板了。在开资源时发现可以设置系统盘大小我就让他们设置大点系统盘给我,我看看能不能合并分区。

拿到资源开机后发现果然只有根目录只有45GB(4GB分配给了swap,/boot占用一些),fdisk -l看了下系统盘分配了个80GB,怎么说就是有40GB这样没有使用。
一开始我搜索到的是如何合并分区,大概时格式一个分区然后再合并。可能时因为这里的系统根目录已经划分到/dev/vda3分区下了导致我分区失败(提示:fdisk: cannot write disk label: Invalid argument),折腾了很久然后想了想竟然时使用华为的虚拟化平台我直接到华为云哪里找文档不就可以了。

根据官方文档使用growpart,使用前安装:

yum update
yum install cloud-utils-growpart
yum install xfsprogs

本示例中的系统盘vda,存在一个分区vda3,需要先使用growpart扩展分区。

growpart /dev/vda 3

执行后发现vda3已经扩大了可是/dev/centos/root还是原来的大小。
使用resize2fs提示设备忙,作死的umount也不能把根目录给卸载。
Resize2fs /dev/vda3 | resize2fs:尝试打开 /dev/vda3 时设备或资源忙

由于不需要使用虚拟内存先把swap的4G给加上试试:

先删除swap的lv(警告:删除swap分区后如果引导没有删除对应的swap会导致开机失败Waring: /dev/centos/swap does not exist):

lvremove /dev/centos/swap

添加到root

lvextend -L +4G /dev/centos/root    # 扩展/root所在的lv,增加swap的大小
xfs_growfs /dev/centos/root    #扩展/root文件系统

一开始看的是扩容云硬盘(无LVM)后来发现应该看扩容云硬盘(组LVM)这个的教程,虽然这样好像还是有问题。。。

查看pv:

pvs

使用pvresize扩容:

pvresize -v /dev/vda3
pvs
vgs
lvs

扩容后pv、vg已经是80GB了,并且有40GB剩余待分配的(指定分配40GB报错,干脆把所有未分配的都加上了)

lvextend -l +100%FREE /dev/centos/root
lvs

使用df -h查看还没是修改后的需要:

xfs_growfs /dev/centos/root

查看原挂载节点文件系统格式,xfs文件系统用xfs_growfs,ext*文件系统用resize2fs

参考:
Centos7把/home分区合并到/root
https://note.guotianyu.cn/linux/centos7-move-home-to-root.html
lvm硬盘扩容了,或者使用fdisk格式化大于2T硬盘后,如何通过pvresize扩容
https://blog.csdn.net/CHEndorid/article/details/106708699
扩容云硬盘(无LVM)
https://support.huaweicloud.com/bestpractice-sap/sap_08_0071.html
growpart 实战 Linux 磁盘分区扩容
https://blog.csdn.net/happyfreeangel/article/details/108505848
Completely disable swap on CentOS 7
https://www.refmanual.com/2016/01/08/completely-remove-swap-on-ce7/#.W8AaSRMzaRs

是的,该文章很乱,因为但是各种找资料才“艰难”的扩容好没来得及真理,到后续的操作中再进行整理便于自己后续使用。
删除/dev/centos/swap后没发现有什么问题。谁知道重启后就与服务器“失联”了,最后麻烦别人在控制台上面看才看到对应错误而手动修复。

cp /etc/default/grub /etc/default/grub.bak
vi /etc/default/grub

删除rd.lvm.lv=centos/swap或者:

sed -i ‘/rd.lvm.lv=centos\/swap /d’ /etc/default/grub

然后重建引导:

cp /etc/grub2-efi.cfg /etc/grub2-efi.cfg.bak
grub2-mkconfig >/etc/grub2.cfg

其中按照启动方式不一样,不一定是grub2-efi.cfg,也有可能是其他的文件比如:grub2.cfg

 

ChiuYut

2021年6月1日

发布者

ChiuYut

咦?我是谁?这是什么地方? Ya ha!我是ChiuYut!这里是我的小破站!