Windows 写入缓存如何与已装载的 VHD 一起工作?

Windows 写入缓存如何与已装载的 VHD 一起工作?

假设我有一个位于 Windows Server 2016 上安装的磁盘 A 上的 VHD。

如果我为磁盘 A 和 VHD 打开写缓存,是否有双重写缓存?

  • 如果是,推荐吗?
  • 如果不是,那么应该在磁盘 A 还是 VHD 上进行写入缓存?

假设我将此 VHD 放入存储空间并创建一个具有 5 GB 写回缓存的虚拟磁盘。

  • 这个写回缓存如何与写缓存交互?
  • 再次,为了获得1)最佳可靠性和2)最佳速度,建议如何配置它?

编辑:

  • 存储空间不允许关闭写入缓存。

答案1

虚拟机 I/O 未被缓存,实际上检查起来非常容易:运行封装了旧 FileMon 功能的 Process Manager 并观察 .vhd(x) 文件访问标志 - 应该是 FILE_FLAG_NO_BUFFERING 被引发并与一堆不同的“提示”标志相结合。

https://docs.microsoft.com/en-us/sysinternals/downloads/procmon

在虚拟机内部,您可以打开或关闭磁盘缓存 - 这无关紧要,结果几乎相同。

https://www.starwindsoftware.com/blog/a-little-about-disk-write-cache-on-windows-vm

不过,您仍将使用 vRAM 在虚拟机内部的文件系统级别缓存 I/O。

答案2

VHD 使用无缓冲 I/O,不通过 Windows 缓存管理器。存储在 VHD 中的文件可能会被缓存,但 VHD 本身不会被缓存。

此外,当您使用 VHD 时,存储空间不受支持,主要是因为它无法确定底层数据是否冗余存储。

相关内容