1. KVM虚拟机磁盘扩容实战指南
作为虚拟化运维工程师,我们经常遇到虚拟机磁盘空间不足的问题。最近我在维护一套KVM虚拟化环境时,就遇到了根分区需要从20GB扩容到100GB的需求。下面我将完整记录这次扩容的操作过程,并分享其中的技术细节和避坑经验。
KVM(Kernel-based Virtual Machine)作为Linux内核原生支持的虚拟化方案,配合QEMU提供的设备模拟能力,构成了企业级虚拟化平台的基石。而qcow2格式作为KVM默认的磁盘镜像格式,其稀疏特性允许我们灵活调整磁盘大小。但要注意,调整磁盘镜像只是第一步,后续还需要处理分区和文件系统的扩容,这才是真正让空间可用的关键。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 扩容前的准备工作
2.1 环境检查与备份策略
在开始任何磁盘操作前,备份是必不可少的。我通常会采用以下两种备份方式:
- 虚拟机快照:
bash复制virsh snapshot-create-as --domain vm_name --name pre_resize
- 磁盘镜像备份:
bash复制cp /var/lib/libvirt/images/vm_disk.qcow2 /backup/vm_disk.qcow2.bak
重要提示:如果虚拟机运行的是数据库等有状态服务,建议先停机再操作,避免数据不一致。
2.2 查看当前磁盘状态
使用lsblk命令查看磁盘和分区情况:
bash复制# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 20G 0 disk
├─vda1 252:1 0 1.9G 0 part [SWAP]
└─vda2 252:2 0 18.1G 0 part /
这里可以看到:
- 虚拟磁盘vda总大小20GB
- vda1是1.9GB的swap分区
- vda2是18.1GB的根分区
3. 调整虚拟机磁盘镜像大小
3.1 使用qemu-img扩容磁盘
首先需要关闭虚拟机,然后使用qemu-img命令调整磁盘镜像大小:
bash复制qemu-img resize /var/lib/libvir
