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,如下:
在这里插入图片描述从上图获取到磁盘大小已按需求分配出来了,如上图所示/dev/vda大小为100GB,分区格式为GPT

3.3 查看现有分区情况

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

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

3.4 创建分区

这里依然采用fdisk /dev/vda进行磁盘分区,把剩余的所有空间均分配到一个分区,如下:
在这里插入图片描述

3.5 分区生效

partprobe /dev/vda
在这里插入图片描述

3.6 VG扩容

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

vgdisplay

在这里插入图片描述

3.6.2 创建(pvcreate)物理卷

pvcreate /dev/vda4

在这里插入图片描述

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

vgextend klas /dev/vda4

在这里插入图片描述

再次查看扩容后的卷组使用情况
在这里插入图片描述

3.7 LV扩容

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

在这里插入图片描述

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

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

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

在这里插入图片描述
再次查看扩容后的逻辑卷的空间状态
在这里插入图片描述

3.8 文件系统扩容

通过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

4.基于标准分区的系统

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

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

4.1.1 查看磁盘大小

通过fdisk -l查看磁盘大小和分区,如下
在这里插入图片描述

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

4.1.2 查看现有分区情况

通过命令df -hTl和lsblk -fp查看现有分区情况,如下:
在这里插入图片描述在这里插入图片描述从上图可以判断根分区采用了LVM管理模式,且根文件系统为xfs文件系统,根分区大小仅为17GB,目前总磁盘大小100GB,还有磁盘空间未分配

4.1.3 分区扩展

通过fdisk删除并新建分区,新建分区号与删除的分区号保持一致,新建分区的第一个扇区与删除的分区第一个扇区保持一致
在这里插入图片描述新建分区如下: 在这里插入图片描述

4.1.4 分区生效及重启

partprobe /dev/vda

在这里插入图片描述

4.1.5 文件系统扩容

xfs_growfs /dev/vda4

在这里插入图片描述

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

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

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

4.2.1 查看分区情况

通过命令fdisk -l、df -hTl和lsblk -fp查看现有分区情况,简直是最辣眼睛的分区了,如下:
在这里插入图片描述

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

在这里插入图片描述

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

删除分区,记住分区分区扇区起始和结束位置
在这里插入图片描述新建分区
在这里插入图片描述
查看新建的分区在这里插入图片描述>注意,如果更改顺序将会改变分区扇区值,会导致开机无法启动

4.2.5 分区生效

partprobe /dev/vda
fdisk -l

在这里插入图片描述

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中更新启用

在这里插入图片描述

4.2.8 更新fstab

通过blkid查看分区的UUID,用于更新fstab
在这里插入图片描述
vim /etc/fstab在这里插入图片描述更新/etc/fstab后重启操作系统

4.2.7 文件系统扩容

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

resize2fs /dev/vda2

在这里插入图片描述


5. 问题记录:


6. 参考文献:

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

  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
impala是一种高性能分析型数据库,它基于Hadoop生态系统,可以快速执行复杂的查询。它使用列式存储、编译器技术和并行查询执行来实现高性能。 druid是一个快速、实时的数据存储和分析引擎,它适用于大规模的实时数据处理和探索式分析。它支持实时数据摄取、查询和可视化,可用于数据仪表盘和实时报告等应用。 presto是一种开源的分布式SQL查询引擎,它可以快速查询多种数据源,包括Hadoop、MySQL等。它具有高度可伸缩性和灵活性,可用于快速进行复杂的数据分析和联机查询。 kylin是一种开源的分布式分析引擎,它可以快速处理大规模数据集。它支持多维分析和复杂的OLAP查询,并提供了数据立方体和预计算功能,用于加速查询速度。 clickhouse是一种列式数据库管理系统,专门用于高性能分析型应用。它支持实时查询和高并发访问,并具有低延迟和高容量的优势,适用于大规模的数据分析和数据仪表盘等应用。 greenplum是一种高性能的并行关系数据库管理系统,适用于大规模数据仓库和分析型应用。它具有高度可伸缩性、并行查询和优化的特性,用于高速查询和处理大规模数据。 总的来说,这些数据库和查询引擎都旨在提供高性能和灵活性,以满足大规模数据分析和查询的需求,但它们在技术架构、数据存储方式和查询优化等方面存在一些差异。选择适合特定需求的数据库和查询引擎取决于实际情况和使用场景。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值