80096-8vc5k2qcspe.png

一个虚拟的组成文件

  • 配置文件 (<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



最后修改:2022 年 09 月 06 日
如果觉得我的文章对你有用,请随意赞赏