前提
当非逻辑卷扩容时,新增的磁盘空间必须要在原有的磁盘的基础上扩容,如果重新挂载一块磁盘是无法进行扩容的。
分为以下几种情况:
1:磁盘未进行分区
2:磁盘进行了分区
3:磁盘进行了分区且最后分区被挂载到根目录
4:磁盘主分区分完,再逻辑分区上扩容
情景1:磁盘未进行分区
磁盘没有进行分区,格式化后直接挂载到了某个目录下使用,现需要对该磁盘进行扩容,如下图所示:一块10G大小的sdb直接格式化后挂载到opt目录下
现在增加sdb磁盘大小,增加至20G,如图所示:磁盘大小已增加至20G,但是挂载的空间没有发生变化,如何将新增的10G空间扩容到正在使用的磁盘
使用命令 xfs_growfs /dev/sdb可将新增加10G空间新增到正在使用磁盘,如下图所示,也不会影响原先磁盘中内容。
注:如果是ext*文件系统 则使用命令 resize2fs /dev/sdb
情景2:磁盘进行了分区
磁盘进行了分区,格式化分区后直接挂载到了某个目录下使用,现需要对该磁盘进行扩容,如下图所示:一块10G大小的sdb被分成sdb1和sdb2,分别挂载到opt和home目录下
现在增加sdb磁盘大小,增加至20G,如图所示:磁盘大小已增加至20G,但是挂载的空间没有发生变化,如何将新增的10G空间扩容到正在使用的磁盘
特别注意:磁盘被分成多个分区后,扩容只能往最后一个分区上扩容,也就是上图的sdb2。操作如下:
1、umount /dev/sdb2
2、fdisk /dev/sdb
3、mount /dev/sdb2 /home
4、xfs_growfs /dev/sdb2 如果是ext*文件类型 则使用 resize2fs /dev/sdb2
5、df -h
可以看出新增加的15G空间已经扩容到sdb2上,也并没有影响之前的文件
情景3:磁盘进行了分区且最后分区被挂载到根目录
在某些情况下,服务器初始时就是一块磁盘分区,将最后的分区挂载到根目录下。如下图所示:服务器初始化,20G的sda被分成sda1、sda2、sda3三个分区,sda3作为最大的分区挂载到根目录下。前面情景2提到扩容是可以扩容最后的分区的,所以sda3符合扩容条件。
现在增加sda磁盘大小,增加至40G,如图所示:磁盘大小已增加至40G,但是挂载的空间没有发生变化,如何将新增的20G空间扩容到正在使用的磁盘
操作步骤与情景2相似,但是要注意不需要卸载根目录,否则服务器会出现问题
1、fdisk /dev/sda
2、partprobe
3、xfs_growfs /dev/sda3 如果是ext*文件类型 则使用 resize2fs /dev/sda3
4、df -h
可以看出新增加的20G空间已经扩容到sda3上,也并没有影响之前的文件
情景4:逻辑分区上扩容
每个磁盘设备最多4个主分区或者3个主分区1个扩展分区。
主分区:主要是用来启动操作系统的,它主要放的是操作系统的启动或引导程序,/boot分区最好放在主分区上;
扩展分区是不能使用的,它只是做为逻辑分区的容器存在的,先创建一个扩展分区,在扩展分区之上创建逻辑分区。
换句话说,先有扩展分区再有逻辑分区。
如图所示:20G的/dev/vdb这块磁盘被分区成/dev/vdb1、/dev/vdb2、/dev/vdb3的主分区,/dev/vdb4的扩展分区,/dev/vdb5的逻辑分区
vdb1、vdb2、vdb3、vdb5共使用了11G,如何将剩余的空间扩容到vdb5?
操作步骤也与情景2相似,
但是要注意如果只删除5分区后,直接扩容并不会成功,原因是因为扩展分区的大小没有发生变化,逻辑分区的大小是由扩展分区的分配的。
1、fdisk /dev/vdb
2、partprobe
3、xfs_growfs /dev/vdb5 如果是ext*文件类型 则使用 resize2fs /dev/vdb5
4、df -h
可以看出剩余的14G空间已经扩容到vbd5上,也并没有影响之前的文件