云平台:兼容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文件系统情况
注意:分区调整前,建议提前做好数据备份,以免失败丢失数据!!!
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是相同的,并且一一对应。
这里可以采用多种方式:
1、通过云平台直接创建相应大小的磁盘的虚拟机,或者挂载云硬盘等
2、通过云平台调整配置,调整到所需的磁盘大小
3、若是通过virt-manager或者vmware等工具调整磁盘大小
4、通过qemu-img resize kylin.qcow2 +80G
…
通过命令fdisk -l,如下:
从上图获取到磁盘大小已按需求分配出来了,如上图所示/dev/vda大小为100GB,分区格式为GPT
通过命令df -hTl和lsblk -fp查看现有分区情况,如下:
从上图可以判断根分区采用了LVM管理模式,且根文件系统为xfs文件系统,根分区大小仅为17GB,目前总磁盘大小100GB,还有磁盘空间未分配
这里依然采用fdisk /dev/vda进行磁盘分区,把剩余的所有空间均分配到一个分区,如下:
vgdisplay
pvcreate /dev/vda4
vgextend klas /dev/vda4
通过lvextend -L xxGB来扩充lv分区的容量 。还可以使用+xxGB,或者+unit 表示增加多个单位(扇区)。
lvextend -l +100%FREE /dev/klas/root
通过lsblk -fp或者df -hTl指令可以查询到系统根文件系统采用的是xfs文件系统,因此此处使用xfs_growfs指令调整其大小即可。
xfs_growfs是xfs文件专用的扩容工具。
xfs_growfs /dev/klas/root
新版的xfs_growfs命令后面的参数需要为文件系统挂载点,而非文件系统本身。执行如下命令:
xfs_growfs /
再次查看根文件系统容量,已经扩大,如下:
若文件系统为ext2,ext3,ext4,则采用resize2fs,如下:
resize2fs /dev/mapper/klas-root
根据3.1已经创建了所需磁盘大小的虚拟机
从上图获取到磁盘大小已按需求分配出来了,如上图所示/dev/vda大小为100GB,分区格式为GPT
通过命令df -hTl和lsblk -fp查看现有分区情况,如下:
从上图可以判断根分区采用了LVM管理模式,且根文件系统为xfs文件系统,根分区大小仅为17GB,目前总磁盘大小100GB,还有磁盘空间未分配
通过fdisk删除并新建分区,新建分区号与删除的分区号保持一致,新建分区的第一个扇区与删除的分区第一个扇区保持一致
新建分区如下:
partprobe /dev/vda
xfs_growfs /dev/vda4
根分区在最后一个分区的,可以通过growpart(cloud-guest-utils)工具进行扩容,若在扩展分区下面,先对扩展分区进行扩容,然后再对根分区进行扩容
重新分区并分配根、swap、扩展分区,注意不要更改分区顺序,与之前保持一致。
通过命令fdisk -l、df -hTl和lsblk -fp查看现有分区情况,简直是最辣眼睛的分区了,如下:
mkdir -p /opt/boot_efi/
cp -ra /boot/efi/* /opt/boot_efi/
umount /boot/efi/
swapoff -a
swapon -s
删除分区,记住分区分区扇区起始和结束位置
新建分区
查看新建的分区>注意,如果更改顺序将会改变分区扇区值,会导致开机无法启动
partprobe /dev/vda
fdisk -l
mkswap /dev/vda5
后续fstab中更新启用
mkfs.vfat /dev/vda6
mount /dev/vda6 /boot/efi/
cp -ra /opt/boot_efi/* /boot/efi/
后续fstab中更新启用
通过blkid查看分区的UUID,用于更新fstab
vim /etc/fstab更新/etc/fstab后重启操作系统
根据前面的数据,根文件系统为ext4,故通过resize2fs进行文件系统扩容
resize2fs /dev/vda2
无
https://www.cnblogs.com/cloudos/p/9348315.html
https://blog.51cto.com/u_890909/2528584
https://cloud.tencent.com/developer/article/1839925