本指南适用于在 QEMU/KVM 环境下,对使用 LVM(逻辑卷管理)的银河麒麟服务器版 (KLAS) 进行磁盘扩容。
⚠️ 操作前必读
- 数据备份 :涉及磁盘底层操作,请务必在宿主机对镜像文件进行备份或创建快照。
- 权限要求 :所有虚拟机内部命令均需
root权限。
流程概览图
扩容分为三个层级,请根据您的现状从对应步骤开始:
- 宿主机层 (
qemu-img) -> 物理磁盘变大 - 分区层 (
growpart/pvresize) -> 让 LVM 物理卷识别到新空间 - 逻辑卷层 (
lvextend) -> 分配空间给根目录 - 文件系统层 (
xfs_growfs) -> 格式化新空间可用
步骤一:宿主机调整镜像大小 (Host)
如果您的 lsblk 显示物理盘(如 vda)已经足够大,只是分区没用满,请跳过此步。
在宿主机终端执行(需关闭虚拟机):
bash
# 语法:qemu-img resize <镜像路径> +<增加的大小>
qemu-img resize /path/to/kylin.qcow2 +50G
步骤二:扩展物理分区 (VM - Partition)
启动虚拟机,使用 lsblk 查看结构。假设扩容目标是 /dev/vda 的第 3 个分区(LVM 所在分区)。
1. 安装扩容工具
如果提示 growpart: command not found,需先安装:
bash
# 银河麒麟服务器版
yum install cloud-utils-growpart -y
2. 刷新分区表
将新增的物理空间纳入分区表:
bash
# 语法:growpart <设备名> <分区号>
# 注意:设备名和分区号之间有空格
growpart /dev/vda 3
成功提示:CHANGED: partition=3 ...
步骤三:扩容 LVM 物理卷 (VM - PV)
通知 LVM 物理层,底下的分区变大了:
bash
pvresize /dev/vda3
成功提示:Physical volume "/dev/vda3" changed
步骤四:扩容 LVM 逻辑卷 (VM - LV)
将卷组(VG)内的所有空闲空间分配给根目录逻辑卷(通常是 klas-root):
bash
# -l +100%FREE 表示使用全部剩余空间
lvextend -l +100%FREE /dev/mapper/klas-root
成功提示:Logical volume klas-root successfully resized.
步骤五:刷新文件系统 (VM - FS)
最后一步,在线调整文件系统大小,使其生效。需要根据文件系统类型选择命令。
1. 检查文件系统类型
bash
df -Th /
2. 执行刷新命令
- 如果是 XFS (麒麟服务器版默认):
bash
xfs_growfs /
- 如果是 ext4:
bash
resize2fs /dev/mapper/klas-root
验证结果
执行以下命令,检查 / 目录的 Size 是否已增加:
bash
df -h