vmkfstools 能做什么
vmkfstools 是 ESXi 主机自带的虚拟磁盘管理工具,常用两个能力:用 -i 克隆磁盘并在克隆时指定置备类型,用 -X 扩容现有磁盘。它直接操作数据存储上的 vmdk 文件,所以在哪台主机、哪个数据存储上执行,决定了目标设备的可用范围。克隆只是产生了一份新磁盘文件,要真正用上还得把新盘接入虚机配置,或者确认 .vmx 已指向新盘。
基本信息
| 适用平台 | ESXi 主机 Shell(开启 SSH 或用本地命令行) |
|---|---|
| 克隆命令 | vmkfstools -i 源.vmdk -d thin 目标.vmdk |
| 置备类型 | -d thin 精简、零置零厚置备、延迟置零厚置备 |
| 扩容命令 | vmkfstools -X 200G disk.vmdk |
| 跨存储 | 源与目标写不同的数据存储路径即可实现迁移 |
| 配套操作 | 克隆后修改虚机配置指向新盘,或编辑 .vmx 中的磁盘路径 |
| 核对 | ls -lh 看目标文件与 -flat、-delta 等分段是否齐全 |
典型使用场景
- 快速复制一套测试环境:克隆生产虚机磁盘后重新配置网络与主机名
- 磁盘扩容:先扩容 vmdk 文件,再进入 guest 扩分区与文件系统
- 跨数据存储迁移:把盘克隆到新存储,切换虚机配置后释放旧存储
- 置备类型转换:把厚置备盘克隆为精简置备以节省容量
- 制作模板盘:把标准系统盘克隆多份,用于批量部署
克隆、扩容与核对
克隆、扩容与核对
vmkfstools -i /vmfs/volumes/ds1/src/src.vmdk -d thin /vmfs/volumes/ds2/dst/dst.vmdk # 跨存储克隆为精简置备
ls -lh /vmfs/volumes/ds2/dst/ # 核对目标文件与分段是否完整
vmkfstools -X 200G /vmfs/volumes/ds2/dst/dst.vmdk # 扩容到 200G,只能增不能减
vmkfstools -D /vmfs/volumes/ds2/dst/dst.vmdk # 查看磁盘链信息,确认无遗留快照链
# 克隆完成后:编辑虚机设置,把硬盘指向新 vmdk;或修正 .vmx 中的路径
# 扩容完成后:进入 guest 用 parted/growpart 扩分区,再用 resize2fs 或 xfs_growfs 扩文件系统置备类型对照
| 类型 | 特点 | 适用场景 |
|---|---|---|
| 精简置备(thin) | 按需分配,初始占用小,可能膨胀 | 测试环境与容量不敏感的业务,需监控膨胀 |
| 厚置备延迟置零 | 创建时分配全部空间但不置零,首次写入有开销 | 常规生产虚机,兼顾性能与创建速度 |
| 厚置备置零 | 创建时全量置零,写入性能最稳定 | 对首次写入延迟敏感的业务,创建耗时长 |
| 差异盘(delta) | 基于父盘记录变更,依赖父盘存在 | 临时验证场景,父盘丢失即无法使用 |
| 扩容后状态 | 文件容量增加,分区未自动扩展 | 必须配合 guest 内的分区与文件系统扩容 |
扩容是单向操作:vmkfstools 只能增大容量,无法缩小;需要缩小只能新建磁盘再迁移数据。
克隆运行中的虚机磁盘可能得到不一致的数据(相当于异常断电的状态)。需要一致性时先关机或做快照再克隆。