一个虚拟的组成文件
- 配置文件 (<VM_name>.vmx)
- 交换文件 (<VM_name>.vswp) (vmx-<VM_name>.vswp)
- BIOS 文件 (<VM_name>.nvram)
- 日志文件 (vmware.log)
- 模板文件 (<VM_name>.vmtx)
- 原始设备映射文件 (<VM_name>-rdm.vmdk)
- 磁盘描述符文件 (<VM_name>.vmdk)
- 磁盘数据文件 (<VM_name>-flat.vmdk)
- 挂起状态文件 (<VM_name>.vmss)
- 快照数据文件 (<VM_name>.vmsd)
- 快照状态文件 (<VM_name>.vmsn)
- 快照磁盘文件 (<VM_name>-delta.vmdk)
- VMDK文件的更改跟踪信息 (CTK.vmdk)
关于CTK.vmdk文件的说明
VMware 为所有启用了更改跟踪的 VM 自动生成 CTK 文件。这是一项伟大的技术,它允许支持更改块跟踪的产品(如 Veeam Backup and Replication 4.0)进行极快的增量传递。CTK 文件包含相应 VMDK 文件的更改跟踪信息。
这个概念很简单(这是我的理解):CTK 文件描述了每个块的状态以用于跟踪目的,并包含相应 VMDK 中每个块的 USN(序列号)。这样,任何应用程序都可以询问 VMware API“告诉我从现在起哪些块发生了变化”,API 只需将提供的序列号与每个块上的实际 USN 进行比较,就可以很容易地知道这一点。如果提供的 USN 小于特定块的实际值,则该块已更改(并且需要备份、复制或以其他方式处理)。
基本上每个 VMDK 文件应该有一个 CTK 文件,并且 CTK 文件不能与 VMDK 中的块数不成比例地增长(因为它每个 VMDK 块只存储 1 条记录)。CTK 文件也比实际的 VMDK 小数千倍,因为它只为每个对应的 256KB VMDK 块存储几个字节的信息 (USN)(我 90% 确定它是 256KB,用于使用 CTK 调试/统计数据计算一次,只是不记得了)。
这些文件是永久性的,不应在备份/复制后删除。
参考文档:
https://communities.vmware.com/t5/ESXi-Discussions/CTK-vmdk-file/td-p/288064