在 Azure 或 Hyper-V 下的 Windows 中,虚拟磁盘的磁盘策略写入缓存设置将始终显示为从服务器配置启用,而不管底层磁盘系统上的写入缓存设置的实际状态如何。但是,还有一个与第一个相关的第二个设置,在这种虚拟磁盘的情况下,其效果尚不清楚,其中第一个在设置中被选中/启用,但实际上在虚拟磁盘硬件中被禁用。磁盘设置如下所示:
[x] Enable Write Caching on the device
[ ] Turn off Windows write-cache buffer flushing on the device
Run Code Online (Sandbox Code Playgroud)
直观地说,我认为没有理由启用此功能,因为设备的写缓存实际上并未启用,如果它是物理磁盘,则此设置将被禁用。但是这篇文章建议启用它将使操作系统和硬件免于做无意义的工作,在保持相同数据完整性的同时提高性能,对于在设置中启用写入缓存但实际上在硬件中禁用的情况:
...由于虚拟硬盘根本不是真正的磁盘,因此就虚拟磁盘而言,该设置没有任何意义。但是第二个设置不同并且确实有意义,因为它控制磁盘的缓存刷新开/关设置。当您选择第二个设置时,缓存刷新基本上会假装成功 - 至少在软件堆栈级别。...当您在来宾操作系统中为虚拟机中的虚拟硬盘选择此设置时,您可能会看到虚拟机中运行的应用程序的性能有所提高。但请始终记住,就数据完整性而言,重要的是主机的磁盘缓存设置。
任何人都可以确认这种说法是否属实,并且是保证 WRT 数据完整性的安全措施吗?