qcow2 是什么
qcow2(QEMU Copy On Write v2)是 QEMU 的原生磁盘镜像格式,也是 KVM 环境里最常用的系统盘格式。它的核心能力有三项:稀疏分配让文件大小随实际写入增长而不是等于声明容量;写时复制支持通过 backing file 组成镜像链;内部结构还支持快照、压缩与加密。
基本信息
| 全称 | QEMU Copy On Write v2 |
|---|---|
| 主要特性 | 稀疏分配、写时复制、快照、压缩、支持加密 |
| 镜像链 | 支持 backing file:底层只读,上层只记录增量 |
| 声明容量与占用 | 声明 40G 的镜像初始文件很小,随写入增长 |
| 常用工具 | qemu-img 负责创建、查看、转换与检查 |
| 对比格式 | raw 格式无元数据开销、性能略好,但不支持快照与稀疏增量 |
创建查看与转换
创建查看与转换
qemu-img create -f qcow2 -o cluster_size=64k disk.qcow2 40G # 创建 40G 稀疏镜像
qemu-img info disk.qcow2 # 查看声明容量与实际占用
qemu-img info --backing-chain disk.qcow2 # 查看镜像链层次
qemu-img resize disk.qcow2 +20G # 扩容声明容量,需在系统内再扩文件系统
qemu-img check disk.qcow2 # 检查镜像一致性
qemu-img convert -O qcow2 disk.qcow2 merged.qcow2 # 合并转换,可消除长镜像链典型使用场景
- 批量铺环境:以只读基础镜像为 backing file,为每个测试环境生成一个增量层
- 快照式回滚:变更前创建快照,出问题后回到快照点验证
- 镜像格式转换:把打包下载的 raw 或 vmdk 镜像转成 qcow2 供本机使用
- 实验与教学:在有限磁盘上创建多台虚机,稀疏分配避免空间被吃满
输出字段读法
| 字段 | 含义 | 关注点 |
|---|---|---|
| virtual size | 声明容量,guest 看到的磁盘大小 | 扩容后该值变化,文件占用不会立刻增长 |
| disk size | 镜像文件实际占用空间 | 长期远低于声明容量说明数据稀疏分布正常 |
| backing file | 上层镜像依赖的底层镜像路径 | 路径不存在或改名会导致镜像无法打开 |
| cluster_size | 数据块分配粒度 | 默认值够用,改动前确认相关工具兼容性 |
| corrupt | 一致性检查结果 | 非零说明镜像受损,应尽快从快照或备份恢复 |
镜像链越长,一次读取要逐层回溯,读放大越明显,链路中任意一层损坏都会导致整机无法启动。定期用转换命令把镜像链合并成单层,可同时降低碎片与链路断裂风险。