首页/云/云平台与虚拟化速查/qcow2 磁盘镜像格式
虚拟化基础63 条

qcow2 磁盘镜像格式

qcow2 是 QEMU 的原生磁盘镜像格式,支持稀疏分配、写时复制、内部快照、压缩与 backing file 链,是 KVM 环境里惯用的系统盘格式。

云平台与虚拟化速查云更新于 2026-10-13

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一致性检查结果非零说明镜像受损,应尽快从快照或备份恢复
镜像链越长,一次读取要逐层回溯,读放大越明显,链路中任意一层损坏都会导致整机无法启动。定期用转换命令把镜像链合并成单层,可同时降低碎片与链路断裂风险。

易错点

  • 直接复制正在写入的 qcow2 文件当备份:得到的是不一致的快照,恢复后可能无法启动,应使用快照或存储层复制
  • 扩容镜像文件后在系统内忘记扩分区与文件系统:磁盘显示旧容量,业务仍报空间不足
  • 删除或重命名被上层镜像引用的 backing file:所有依赖它的增量镜像同时失效
  • 把 qcow2 当作可以直接编辑的普通文件:用文本或块级工具改动会破坏元数据,导致镜像损坏
  • 在共享存储上让多台虚机同时写同一个 qcow2:并发写入必然损坏镜像,多虚机共享应使用只读基础镜像

数据来源与参考

  • QEMU 文档:qcow2 镜像格式
  • qemu-img 手册
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌