我正在尝试更好地了解在 HA 集群中使用 RHEV/oVirt(或其他 OSS 解决方案)可以实现什么。我想知道故障转移需要多长时间,以及发生故障时究竟发生了什么,这样我就可以判断这是否是适用于不同情况的解决方案。
例如,系统恢复时的状态是怎样的 - 是否回到上次中断的位置,或者是否像系统断电后重新启动(因此磁盘状态不一致?)
我知道这个问题问得有点模糊……但是,考虑到上述因素,是否有最佳实践可以让虚拟机在这样的 HA 配置中运行?对于一个经验很少甚至没有经验的外行来说,似乎任何应用程序都应该能够放在虚拟机上,如果主虚拟机主机崩溃,它会神奇地工作,另一个虚拟机主机将接管。但事实似乎并非如此,也许有一些基本考虑因素可以应用于大多数解决方案。
答案1
故障转移使用经典集群机制 - 检测到故障(无法访问虚拟机管理程序),隔离虚拟机管理程序(支持多种机制和层级),标记为 HA 的虚拟机在其他主机上启动。该过程大约需要 2 分钟或更短时间,具体取决于您的设置和硬件。
在 oVirt 中,这对于灾难场景非常有效,但这些虚拟机恢复时就像断电一样,当然所有正在运行的数据都会丢失。如果您关心状态,则需要在虚拟机管理程序之上实现主动-主动软件,通常的虚拟机故障转移是不够的。不过,对于大多数场景来说,这已经足够了,并且能够通过简单地将部署的虚拟机标记为 HA 来将任何软件堆栈转变为 HA 堆栈的优势非常显著。
简而言之,基本 VM HA 是一项不错的功能,但如果您真的需要不停机并且永远不会丢失内存状态,则需要使用实现主动/主动群集、分片、分布式的软件,或者尝试完全无状态,这样丢失节点就无关紧要了。如果您指定要运行的实际软件,也许我们可以在这里就如何处理它提供建议。