Kylin ext3/4 xfs手动扩容根分区

1. 环境:

云平台:兼容OpenStack Queens的发行版
HOST OS:Kylin-Server-10-SP1-Release-Build20-20210518-arm64
虚拟机镜像ISO: Kylin-Server-V10-GFB-Release-2204-Build03-ARM64.iso、 Kylin-4.0.2-server-sp2-2000-19080414.J1-arm64.iso
需求:原有遗留镜像由于各种原因未加入cloud-init,未能实现自动扩容,但很多应用程序却对根分区独爱,导致需要将根分区进行扩容,分区又分是否采用逻辑卷管理(LVM)方式,根文件系统亦可分为采用了ext3/4或者xfs文件系统情况

注意:分区调整前,建议提前做好数据备份,以免失败丢失数据!!!

2.概述

MBR(Master Boot Record):即硬盘的主引导记录分区列表,在主引导扇区,位于硬盘的cylinder 0, head 0, sector 1 (Sector是从1开始的)。
GPT(GUID Partition Table):即全局唯一标识分区列表,是一个物理硬盘的分区结构。它用来替代BIOS中的主引导记录分区表(MBR)。

对于传统的MBR分区方式,有很多的限制:

  • 最多4个主分区(3个主分区+1个扩展分区(扩展分区里面可以放多个逻辑分区)),无法创建大于2TB的分区,使用fdisk分区工具,而GPT分区方式不受这样的限制。

  • GPT分区方式将不会有这种限制,使用的工具是parted;

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

  • PV(Physical Volume)- 物理卷
    物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。

  • VG(Volumne Group)-卷组
    卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

  • LV(Logical Volume)- 逻辑卷
    逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组

  • PE(Physical Extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。

  • LE(Logical Extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。


3. 基于LVM分区的系统

3.1 创建所需磁盘大小的虚拟机

这里可以采用多种方式:
1、通过云平台直接创建相应大小的磁盘的虚拟机,或者挂载云硬盘等
2、通过云平台调整配置,调整到所需的磁盘大小
3、若是通过virt-manager或者vmware等工具调整磁盘大小
4、通过qemu-img resize kylin.qcow2 +80G

3.2 查看磁盘大小

通过命令fdisk -l,如下:
Kylin ext3/4 xfs手动扩容根分区_第1张图片从上图获取到磁盘大小已按需求分配出来了,如上图所示/dev/vda大小为100GB,分区格式为GPT

3.3 查看现有分区情况

通过命令df -hTl和lsblk -fp查看现有分区情况,如下:

Kylin ext3/4 xfs手动扩容根分区_第2张图片在这里插入图片描述从上图可以判断根分区采用了LVM管理模式,且根文件系统为xfs文件系统,根分区大小仅为17GB,目前总磁盘大小100GB,还有磁盘空间未分配

3.4 创建分区

这里依然采用fdisk /dev/vda进行磁盘分区,把剩余的所有空间均分配到一个分区,如下:
Kylin ext3/4 xfs手动扩容根分区_第3张图片

3.5 分区生效

partprobe /dev/vda
Kylin ext3/4 xfs手动扩容根分区_第4张图片

3.6 VG扩容

3.6.1 查看(vgdisplay)卷组名称,以及卷组使用情况

vgdisplay

Kylin ext3/4 xfs手动扩容根分区_第5张图片

3.6.2 创建(pvcreate)物理卷

pvcreate /dev/vda4

在这里插入图片描述

3.6.3 将物理卷扩展(vgextend)到卷组

vgextend klas /dev/vda4

在这里插入图片描述

再次查看扩容后的卷组使用情况
Kylin ext3/4 xfs手动扩容根分区_第6张图片

3.7 LV扩容

3.7.1 查看当前逻辑卷的空间状态

Kylin ext3/4 xfs手动扩容根分区_第7张图片

3.7.2 将卷组中的空闲空间扩展到根分区逻辑卷

通过lvextend -L xxGB来扩充lv分区的容量 。还可以使用+xxGB,或者+unit 表示增加多个单位(扇区)。

lvextend -l +100%FREE /dev/klas/root

在这里插入图片描述
再次查看扩容后的逻辑卷的空间状态
Kylin ext3/4 xfs手动扩容根分区_第8张图片

3.8 文件系统扩容

通过lsblk -fp或者df -hTl指令可以查询到系统根文件系统采用的是xfs文件系统,因此此处使用xfs_growfs指令调整其大小即可。
xfs_growfs是xfs文件专用的扩容工具。

xfs_growfs /dev/klas/root

新版的xfs_growfs命令后面的参数需要为文件系统挂载点,而非文件系统本身。执行如下命令:

xfs_growfs /

Kylin ext3/4 xfs手动扩容根分区_第9张图片再次查看根文件系统容量,已经扩大,如下:
Kylin ext3/4 xfs手动扩容根分区_第10张图片
若文件系统为ext2,ext3,ext4,则采用resize2fs,如下:

resize2fs /dev/mapper/klas-root

4.基于标准分区的系统

根据3.1已经创建了所需磁盘大小的虚拟机

4.1 根分区在最后一个分区情况

4.1.1 查看磁盘大小

通过fdisk -l查看磁盘大小和分区,如下
Kylin ext3/4 xfs手动扩容根分区_第11张图片

从上图获取到磁盘大小已按需求分配出来了,如上图所示/dev/vda大小为100GB,分区格式为GPT

4.1.2 查看现有分区情况

通过命令df -hTl和lsblk -fp查看现有分区情况,如下:
Kylin ext3/4 xfs手动扩容根分区_第12张图片Kylin ext3/4 xfs手动扩容根分区_第13张图片从上图可以判断根分区采用了LVM管理模式,且根文件系统为xfs文件系统,根分区大小仅为17GB,目前总磁盘大小100GB,还有磁盘空间未分配

4.1.3 分区扩展

通过fdisk删除并新建分区,新建分区号与删除的分区号保持一致,新建分区的第一个扇区与删除的分区第一个扇区保持一致
Kylin ext3/4 xfs手动扩容根分区_第14张图片新建分区如下: Kylin ext3/4 xfs手动扩容根分区_第15张图片

4.1.4 分区生效及重启

partprobe /dev/vda

Kylin ext3/4 xfs手动扩容根分区_第16张图片

4.1.5 文件系统扩容

xfs_growfs /dev/vda4

Kylin ext3/4 xfs手动扩容根分区_第17张图片

根分区在最后一个分区的,可以通过growpart(cloud-guest-utils)工具进行扩容,若在扩展分区下面,先对扩展分区进行扩容,然后再对根分区进行扩容

4.2. 根分区不在最后一个分区情况(重点)

重新分区并分配根、swap、扩展分区,注意不要更改分区顺序,与之前保持一致。

4.2.1 查看分区情况

通过命令fdisk -l、df -hTl和lsblk -fp查看现有分区情况,简直是最辣眼睛的分区了,如下:
Kylin ext3/4 xfs手动扩容根分区_第18张图片

4.2.2 备份/boot/efi及卸载

mkdir -p /opt/boot_efi/
cp -ra /boot/efi/* /opt/boot_efi/
umount /boot/efi/

4.2.3 停止SWAP

swapoff -a
swapon -s

Kylin ext3/4 xfs手动扩容根分区_第19张图片

4.2.4 删除、创建分区及时使能分区

删除分区,记住分区分区扇区起始和结束位置
Kylin ext3/4 xfs手动扩容根分区_第20张图片新建分区
Kylin ext3/4 xfs手动扩容根分区_第21张图片
查看新建的分区Kylin ext3/4 xfs手动扩容根分区_第22张图片>注意,如果更改顺序将会改变分区扇区值,会导致开机无法启动

4.2.5 分区生效

partprobe /dev/vda
fdisk -l

Kylin ext3/4 xfs手动扩容根分区_第23张图片

4.2.6 重建SWAP

mkswap /dev/vda5

后续fstab中更新启用

4.2.7 恢复/boot/efi

mkfs.vfat /dev/vda6
mount /dev/vda6 /boot/efi/
cp -ra /opt/boot_efi/* /boot/efi/

后续fstab中更新启用

Kylin ext3/4 xfs手动扩容根分区_第24张图片

4.2.8 更新fstab

通过blkid查看分区的UUID,用于更新fstab
在这里插入图片描述
vim /etc/fstabKylin ext3/4 xfs手动扩容根分区_第25张图片更新/etc/fstab后重启操作系统

4.2.7 文件系统扩容

根据前面的数据,根文件系统为ext4,故通过resize2fs进行文件系统扩容

resize2fs /dev/vda2

Kylin ext3/4 xfs手动扩容根分区_第26张图片


5. 问题记录:


6. 参考文献:

https://www.cnblogs.com/cloudos/p/9348315.html
https://blog.51cto.com/u_890909/2528584
https://cloud.tencent.com/developer/article/1839925

你可能感兴趣的:(linux,kylin,linux)