0

我看了一下 Redhat Enterprise Linux HA 和 VMWare HA 解决方案。这很容易理解。多台物理服务器可以构建一个集群。系统监控所有虚拟机的状态。如果一台虚拟机宕机,可以在另一台物理服务器上重新启动。此 VM 上的应用程序也可以重新启动。

但是,我有一个问题。在Guest OS 中,当大多数应用程序成功将数据写入文件时,如果不使用直接IO,实际上数据会被发送到OS 缓存(例如Linux 中的页面缓存)。如果来宾操作系统崩溃,一些数据可能不会刷新到磁盘,但来宾操作系统报告它们已成功写入。VM在另一台服务器上重启后,可能会发现磁盘中的数据不一致,可能会遇到数据完整性问题。我没有找到任何有关为 VM HA 解决方案引入此问题的信息。我们不需要考虑这个问题吗?

4

1 回答 1

0

我在这里问了一个类似的问题:
https ://serverfault.com/questions/297980/sql-server-on-vmware-is-transaction-log-corruption-possible

在 VMWare 上找到了这个,不确定它在多大程度上适用于您的情况:

Linux 主机上的 VMware 托管产品始终使用缓冲 IO……当使用缓冲 IO 时,VMware 托管产品不会绕过主机的缓冲区缓存来产生崩溃一致的虚拟机 IO。因此,如果 IO 在主机操作系统中缓冲,则在 VMware 托管产品上的来宾操作系统内运行的应用程序可能会失去崩溃一致性。

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1008542

于 2011-08-05T13:45:29.023 回答