首页/云/云平台与虚拟化速查/VMDK 磁盘格式与变体
虚拟化基础63 条

VMDK 磁盘格式与变体

VMDK 是 VMware 的虚拟磁盘格式:一个逻辑磁盘可由描述符文本与若干 extent 数据文件组成,存在精简置备、厚置备、流优化(streamOptimized)等多种变体,导入导出时对号入座。

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

VMDK 是什么

VMDK 是 VMware 的虚拟磁盘格式,一个磁盘通常由描述符(文本文件,记录几何参数、extent 列表与父盘关系)加一个或多个 extent 数据文件组成。变体决定空间分配方式与性能:thin 按需增长、thick 预分配(分 lazy zeroed 与 eager zeroed)、streamOptimized 面向 OVF 导出与上传。ESXi 主机内用 vmkfstools 操作,跨平台可用 qemu-img 查看与转换。

基本信息

组成descriptor(文本头)+ extent(-flat/-delta 数据文件)
常见变体thin、thick lazy/eager zeroed、streamOptimized
常用工具vmkfstools(ESXi 主机内)/ qemu-img(跨平台转换)
查看方式qemu-img info disk.vmdk,或直接查看描述符文本
置备类型thin 按需分配;thick 预先占用空间,eager 额外做全盘清零

典型使用场景

  • 导出 OVF 模板或上传镜像时使用 streamOptimized 变体
  • 克隆虚机时在 thin 与 thick 之间选择,权衡空间与性能
  • 把 VMDK 转换成 qcow2/vhdx 以迁移到其他虚拟化平台
  • 存储空间告警时区分 thin 磁盘的逻辑容量与实际占用
  • 排查磁盘挂载失败时核对描述符中的 extent 行与文件是否对应

查看与转换

查看与转换
qemu-img info disk.vmdk                # 查看格式变体、虚拟大小与实际占用
qemu-img convert -p -O qcow2 disk.vmdk disk.qcow2   # 转成 qcow2,-p 显示进度
# ESXi 主机内克隆并按 thin 置备:
vmkfstools -i src.vmdk -d thin /vmfs/volumes/ds1/vm1/dst.vmdk

变体与用途

变体空间分配典型用途
thin按写入增长,初始占用很小普通虚机磁盘,节省数据存储容量
thick lazy zeroed创建时占满逻辑容量,块首次写入时清零对空间占用可预期的场景,性能略优于 thin
thick eager zeroed创建时即全盘清零需要快速置备或做集群/容灾的场景
streamOptimized紧凑压缩、仅供流式读写OVF 导出与镜像上传,不适合直接挂载运行
用 qemu-img 转换 VMDK 会丢失 VMware 专有元数据(例如快照链信息);转换前先在 VMware 侧合并或删除快照,再导出单一平铺磁盘。
描述符中的 extent 行决定数据落点,手工编辑前务必备份整个虚机目录,并确认文件名与 .vmx 中的引用一致。
thin 磁盘在数据存储上存在超分风险:多个虚机初始只占少量空间,实际写入增长后可能同时撑满数据存储,容量规划要按可预期的写入量而非初始占用估算。

易错点

  • 把 streamOptimized 变体直接挂到数据存储当普通磁盘使用:该变体面向上传与分发,不是运行态格式
  • 手改描述符里的 extent 行后未同步其他引用,磁盘挂载失败
  • thin 磁盘的空闲空间留在数据存储上成为超分风险,容量耗尽后所有虚机一起受影响
  • 不清楚 thick lazy 与 eager zeroed 的差异就随意置备,后期做集群或容灾时需要重建磁盘

数据来源与参考

  • VMware Docs:虚拟磁盘类型说明
  • qemu-img 手册
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌