我很难理解 Azure 可用性集,具体来说,我到底需要做什么来确保我的虚拟机上运行的应用程序利用可用性集来提高可用性。
假设我正在创建一个在单个虚拟机上运行的应用程序,并且我想让它更能抵抗硬件故障。
选项 1: 我创建一个具有 2 个故障域的可用性集,然后在此可用性集上创建一个虚拟机。
是这样吗? 如果托管我的 VM 的机架上出现硬件故障,azure 现在是否会确保 VM 保持正常运行?
选项2: 我必须有两台服务器 Vm1 和 Vm2,都在可用性集中,但一台位于故障域 1,一台位于故障域 2。 然后我必须为我的应用程序设置一个集群。在这种情况下,可用性集只是让我确定集群中的两台服务器不在同一硬件上,但确保应用程序可以利用两台服务器并具有高可用性的管道仍然取决于我。
选项 1 或选项 2 是可用性集与故障域相关的正确工作方式吗?
Azure 通过两种方式处理硬件故障:可用性集和可用区。 AS 的目的是确保即使数据中心(又称区域本身)内发生硬件故障,您的应用程序也不会停机。可用区的目的是确保即使整个数据中心(又名区域)宕机,您的应用程序也不会宕机。更多详情这里。
现在要了解有关可用性的最佳实践,请查看最佳实践,特别是针对虚拟机的最佳实践,可以在此处找到。
单个VM实例定义如下,参考:
“单实例”定义为未部署在可用性集中或可用性集中仅部署一个实例的任何单个 Microsoft Azure 虚拟机。
因此,可用性集中或不在可用性集中的一个虚拟机没有任何区别,为此,您至少需要两个虚拟机,并且它们位于使用 FD 和 UD 的 AS 中,因此 Azure 将通过确保两个虚拟机都在运行来解决这个问题在单独的硬件上,以避免您的应用程序崩溃。
可用性集中的一个虚拟机几乎与没有可用性集的虚拟机一样好。 如果您在一个 AS 中放置两个或多个虚拟机并且这些虚拟机相同,那么您可以添加负载均衡器来分配流量。 如果您对流量分配不感兴趣,也可以使用没有负载均衡器的 AS。一种情况是您只想在主虚拟机不可用时切换到辅助虚拟机。 另外,请务必了解 AS 中不需要具有相同的虚拟机。
如果您正在寻找具有 VM 的高可用性解决方案,则虚拟机规模集是一个不错的选择。