KVM 虚拟化磁盘格式与虚拟机磁盘管理指南
一、KVM 常用虚拟磁盘映像格式
1. qcow2 格式(推荐)
128 位 AES 加密:可对虚拟磁盘数据进行加密,提升数据安全性,防止未授权访问;
多快照支持:允许创建多个虚拟机快照,便于版本回溯(如测试环境回滚、故障恢复);
zlib 压缩:支持对磁盘数据进行压缩,减少存储空间占用;
动态扩容:磁盘文件初始大小较小,可随数据写入动态增长,避免空间浪费。
2. 原始磁盘映像(raw)
二、KVM 虚拟机磁盘空间扩展步骤
1. 检查虚拟机当前磁盘信息
virsh dominfo <vm-name>
2. 停止虚拟机
virsh shutdown <vm-name>
3. 扩展磁盘映像文件大小
qemu-img resize /path/to/vm-disk.qcow2 +<new-size>
/path/to/vm-disk.qcow2:磁盘映像文件的完整路径;
<new-size>:需增加的磁盘空间,格式如30G(直接设置总大小为 30GB)、+30GB(在原有基础上增加 30GB)。
qemu-img resize /var/lib/libvirt/images/centos7.qcow2 +20GB
4. 编辑虚拟机 XML 配置文件(可选)
virsh edit <vm-name>
5. 启动虚拟机
virsh start <vm-name>
6. 扩展操作系统内文件系统
ext4 文件系统(如/dev/sda1分区):
resize2fs /dev/sda1
XFS 文件系统(通常挂载在/根目录):
xfs_growfs /
Btrfs 文件系统(扩展至最大可用空间):
btrfs filesystem resize max /
注意:扩展文件系统前,需通过lsblk或fdisk -l确认新增磁盘空间已被识别(如/dev/sda总大小已更新)。
三、KVM 虚拟机磁盘使用情况监控
1. 使用 virsh 命令查看磁盘信息
(1)查看虚拟机磁盘详细使用情况
virsh domdf --persistent <vm-name>
(2)查看磁盘映像文件本身信息
qemu-img info /path/to/vm-disk.qcow2
2. 虚拟机内部查看文件系统使用
df -h
GNOME 环境:GNOME Disk Usage Analyzer(磁盘使用分析器);
KDE 环境:KDE Disk Usage Analyzer(文件系统浏览器)。
3. 专业监控系统
Nagios/Zabbix:支持配置磁盘使用率阈值告警,当使用率超过设定值(如 85%)时,通过邮件、短信通知管理员;
Prometheus+Grafana:可采集虚拟机磁盘使用 metrics,通过 Grafana 创建可视化仪表板,实时展示磁盘使用率趋势;
ELK Stack:通过 Logstash 采集磁盘使用日志,Elasticsearch 存储与检索,Kibana 生成磁盘使用分析报表与可视化图表。
4. 定期报告
#!/bin/bash# 磁盘使用报告脚本VM_NAME="centos7"REPORT_PATH="/tmp/disk_report_$(date +%Y%m%d).txt"# 生成报告echo "KVM虚拟机磁盘使用报告($(date))" > $REPORT_PATHecho "虚拟机名称:$VM_NAME" >> $REPORT_PATHecho "----------------------------------------" >> $REPORT_PATHvirsh domdf --persistent $VM_NAME >> $REPORT_PATHecho "----------------------------------------" >> $REPORT_PATHssh root@<vm-ip> "df -h" >> $REPORT_PATH # 虚拟机内部文件系统信息(需配置免密登录)# 发送邮件mail -s "KVM虚拟机磁盘使用报告" admin@example.com < $REPORT_PATH# 删除临时报告(可选)rm -f $REPORT_PATH
0 2 * * * /path/to/disk_report.sh
四、注意事项
数据备份:磁盘扩展前务必备份 qcow2 映像文件,避免操作失误导致数据丢失;
资源充足:确保宿主机有足够的存储空间支持虚拟机磁盘扩展,避免宿主机磁盘空间不足;
时间耗时:扩展磁盘大小的耗时取决于新增空间大小与磁盘性能(SSD 快于 HDD),需预留足够操作时间;
文件系统兼容性:扩展文件系统时,需确认虚拟机使用的文件系统类型,选择对应的扩展命令(如 ext4 用 resize2fs,XFS 用 xfs_growfs)。