Azure虚拟机的高可用性设计

在云计算时代,应用程序的高可用性是至关重要的。当将应用程序部署在云中的虚拟机(VM)上时,高可用性变得更加重要,因为依赖的是云服务提供商管理的虚拟机。如果设计一个以高可用性为核心的应用程序,并打算在AzureVM上部署它,需要了解Azure提供的多种构造和配置,以实现高可用性。

硬件的可靠性是众所周知的,系统注定会失败,线路会断,连接会失效。那么,如果应用程序托管在这样的VM上,当发生故障时会发生什么呢?Azure承认这些事实,并提供了足够的解决方案,使能够设计VM基础设施,即使在这些故障发生时,应用程序仍然可用。

设计高可用性虚拟机

在了解如何在Azure上确保高可用性之前,让先尝试理解可能发生的所有类型的故障:

  • 计划内维护:这是AzureVM更新以提供新功能集的时候。
  • 计划外维护:这是Azure发现VM或网络即将出现问题(基于健康检查)并执行维护活动的时候。
  • 意外停机:由于不可预见的情况导致的故障。

在本地服务器上,过去常常在不同的网络上保留冗余服务器。在Azure上,VM的选择对来说是一个黑匣子,所以需要以某种方式保留冗余服务器和独立的网络。

可用性集

为了实现这种冗余,Azure有可用性集的概念。当将两个或更多的VM放在一个可用性集中时,这些VM将被分布在多个硬件上,这些硬件在电力和网络供应方面是隔离的。Azure如何确保这种冗余呢?它使用故障域和更新域的概念。让现在详细了解它们。

故障域是数据中心中一组机器(或本质上是一个机架),它容易受到故障的影响。任何电力或网络故障都会影响故障域中的所有VM。

更新域是一组机器,它们将一次性接收操作系统或Azure功能更新(可能一起重新启动)。它与机架无关,它只是一个逻辑分组,定义了一个更新域。

当将VM放在一个可用性集中时,Azure确保VM被放置在不同的故障域和更新域中。这将确保在机架故障或任何VM上的任何更新的情况下,不会影响可用性集中的其他VM,应用程序仍然可用。

默认情况下,当选择一个可用性集时,VM将被放置在2个故障域和5个更新域中。

虚拟机规模集

选择可用性集确保VM具有高可用性,但由于为了高可用性选择了多个VM,也需要独立管理这些VM。否可以以某种方式将相同的VM作为一个组进行管理,同时也具有高可用性呢?

这正是Azure VM规模集发挥作用的地方。Azure VM规模集允许创建和管理一组负载均衡的VM。规模集确保VM具有高可用性,同时让将所有VM作为一个组进行管理。此外,规模集可以配置为根据负载自动扩展,这将进一步帮助实现VM的高可用性目标。

以下是使用VM规模集的一些好处:

  • 易于管理多个负载均衡的VM
  • 高可用性
  • 自动扩展
  • 自动负载均衡

因此,每当发现自己需要上述要求时,应该选择VM规模集,而不是手动创建多个VM。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485