将系统磁盘未使用的部分格式化并重新分配给/(根目录)
公司有一个新的小需求,要求将几台虚拟机的/(根目录)扩容一下。
但是因为之前采用的模板存在一些问题,现在是磁盘大小为256GB,只格式化并使用了30GB,所以需要在这个基础之上,要求不停机无损重建分区,并且扩容xfs格式的/(根目录)。
1.情况排查
首先查看一下磁盘的基本情况:
使用fdisk -l
查看磁盘基本情况

可以看到在fdisk
命令中,/dev/vda
的大小为256GB,而/dev/vda1
和/dev/vda2
都加起来总共只有30GB大小,而根目录的lv卷只有25.102GB大小。
本次的目标就是将/dev/vda的全部容量使用上,并且将现在未使用的磁盘容量给附加到根目录之下。
2.重新创建分区
我们要做的第一件事,就是通过fdisk
命令,重新创建分区,将剩余未用的容量合并到/dev/vda2内。
注意!下面操作有风险,请再三确认后谨慎执行!
此操作的必要前提条件为:待扩容的分区必须和未使用的磁盘扇区相邻
此操作的原理就是重新设置分区的结束扇区位置,所以本操作对应的分区的结束扇区必须和未使用的磁盘的开始扇区相邻,其中不能有任何其他的分区,否则将不能进行此操作。若强制执行,会导致相隔的分区数据丢失!
使用fdisk /dev/vda
进入分区操作界面,输入i,输入对应的位置数字(一般为最后一个),确认是否是待扩容的分区。

数据无价!下述操作可能会导致数据丢失,请再三确认后谨慎操作,一定要确认待操作的分区满足上述条件!
确认无误后,输入d,输入刚刚确定的分区位置数字(我这里为2),回车删除分区。

输入n,再次创建分区,并且将分区结束位置选为最后一个扇区。
回车后若出现Do you want to remove the signature? [Y]es/[N]o:
,输入n,千万别输入y,否则会清理lvm的标识符,导致无法正常读取磁盘!

最后输入w,写入磁盘。再次使用fdisk -l
查看分区是否正常变化。

可以看到分区/dev/vda2
大小已改变,但是对应的lv卷大小并没有改变,还需要通过调整pv、vg来扩容lv卷。
3.扩容根目录
首先使用pvresize
命令来重新划分pv大小。
注:
pvresize
命令后面需要跟具体的磁盘分区
这里使用命令:pvresize /dev/vda2
来重新划分pv大小,划分后使用pvdisplay
查看是否有新的Free PE空间。

可以看到Free PE已经有多余的空间了,下面使用lvextend
命令将空闲的空间全部划分给根目录所在的vg内
注:
lvextend
命令后面需要跟逻辑卷路径
这里使用命令lvextend -l +100%FREE /dev/mapper/klas-root
将空闲空间全部划分给根目录。

随后使用xfs_growfs /
命令扩展XFS文件系统,操作完后,再次使用fdisk -l查看空间是否正常划分。

可以看到,根目录已按照预想正确扩容。
至此,本文结束。