虚拟化高可用解决方案的缓存一致性问题

发布于 2024-10-30 22:24:41 字数 359 浏览 1 评论 0原文

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

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

I took a look at Redhat Enterprise Linux HA and VMWare HA solution. It's easy to understand. Several physical servers can build a cluster. The system monitor the status of all VMs. If one VM is down, it can be restarted on other physical server. The applications on this VM can be restarted, too.

However, I have a question. In Guest OS, when most of applications write data to files successfully, actually the data are sent to OS cache (e.g., page cache in Linux) if direct IO isn't used. If Guest OS is crashed, some data may not be flushed to disks but Guest OS reports they have been successfully written. After the VM reboots on another server, it may find the data in disk is not consistent, and it may encounter data integrity problems. I don't find any information on introducing this problem for VM HA solutions. Don't we need to consider this issue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

年少掌心 2024-11-06 22:24:41

我在这里问了类似的问题:
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

I was asking a similar question here:
https://serverfault.com/questions/297980/sql-server-on-vmware-is-transaction-log-corruption-possible

Found this on VMWare, not sure how much it applies to your situation:

VMware hosted products on Linux hosts always use buffered IO … When using buffered IO, VMware hosted products do not bypass the host's buffer cache to produce crash consistent virtual machine IO. Consequently, if the IO is buffered within the host operating system, an application running inside a guest operating system on VMware hosted products might lose crash consistency.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文