虚拟化高可用解决方案的缓存一致性问题
我查看了 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我在这里问了类似的问题:
https://serverfault.com/questions/297980/sql- server-on-vmware-is-transaction-log-corruption-possible
在 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:
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1008542