我们有一个在 Windows Server 2003 上运行的遗留但非常重要的应用程序。应用程序本身不支持任何类型的 HA,而且它不是最可靠的软件。上周我们遇到了一个特殊的紧急情况,应用服务器上的操作系统崩溃了,并且再也没有启动。
据我所知,当您使用 vmware HA 时,vmware 会持续运行两个 VM,它们是完美副本且完全同步。所以我想知道如果应用程序或操作系统在 VM 的一个副本中崩溃会发生什么,这是否意味着它也会在另一个副本中崩溃?但在这种情况下,HA 没有任何意义。如果一次更新破坏了应用程序,操作系统更新怎么办?
您能否告诉我 vmware HA 的具体工作原理以及它能提供哪些保护?
非常感谢。
答案1
我认为你可能混淆了 HA 和容错
HA 不会让虚拟机的两个版本同时运行。如果检测到主机操作系统出现故障,它将自动重启虚拟机。实际上,您的虚拟机将重新启动,您将丢失所有状态信息。
借助容错功能,虚拟机的“影子副本”可以在第二台 ESX 上运行,所有内容都可以精确复制。如果应用程序崩溃,则可能是由于编码不当、内存泄漏、内存分配错误等原因导致的。该错误也会发生在第二台 ESX 上,因为它是以相同方式运行相同代码的机器的精确副本,因此两台机器都会崩溃。容错功能的作用是保护您免受其中一台 ESX 机器的硬件故障的影响,因为同步机器将能够介入并接管故障机器停止的位置,并且您不会丢失任何事务数据。
答案2
您描述的是 vSphere Fault Tolerance,它使虚拟机的热副本与正在运行的副本保持同步。它们是同一个虚拟机 - 一个副本中的应用程序崩溃会立即复制到另一个副本。
vSphere High Availability 在发生故障时只需重新启动虚拟机即可,它能够监控操作系统的状态,并在虚拟机停止接收来自客户操作系统内的 VMware Tools 安装的心跳时重新启动虚拟机。
这两种技术都是围绕保持虚拟机运行而设计的 - 而保持虚拟机内的应用服务运行需要在其他地方处理。