指针块也称为间接块,是包含 VMFS 文件块的文件系统资源。在 ESXi 主机上打开 vmdk 文件时,与该文件相关的指针块会存储在指针块缓存中。指针块缓存的大小是可配置参数。

指针块缓存是主机范围的缓存,与 VMFS 无关。从同一个 ESXi 主机访问的所有数据存储共享该缓存。

指针块缓存的大小由 /VMFS3/MinAddressableSpaceTB/VMFS3/MaxAddressableSpaceTB 控制。可以配置每个 ESXi 主机上的最小大小和最大大小。

/VMFS3/MinAddressableSpaceTB

最小值是系统向指针块缓存保证的最小内存量。例如,1 TB 的打开文件空间需要大约 4 MB 的内存。默认值为 10 TB。

/VMFS3/MaxAddressableSpaceTB

此参数定义可在内存中缓存的指针块最大限制。默认值为 32 TB。最大值为 128 TB。通常,/VMFS3/MaxAddressableSpaceTB 参数的默认值足以满足需求。

但是,随着打开 vmdk 文件大小的增加,与这些文件相关的指针块数量也将随之增加。如果增加幅度会导致性能降低,您可以将此参数调整为其最大值,以便为指针块缓存提供更多空间。使指针块缓存的最大大小基于工作集或所需的活动指针块。

指针块逐出

/VMFS3/MaxAddressableSpaceTB 参数还控制指针块缓存的增长。当指针块缓存的大小接近配置的最大大小时,将启动指针块逐出过程。该机制将保留活动的指针块,而从缓存中移除非活动的或活动较少的块,以便可以重用空间。

要更改指针块缓存的值,请使用 vSphere Client 的高级系统设置对话框或 esxcli system settings advanced set -o 命令。

您可以使用 esxcli storage vmfs pbcache 命令获取有关指针块缓存大小的信息以及其他统计信息。这些信息可帮助您调整指针块缓存的最小和最大大小,以便您可以获得最佳性能。