65.9K
CodeProject 正在变化。 阅读更多。
Home

Azure - 高可用性虚拟机设计

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.40/5 (4投票s)

2018年7月31日

CPOL

4分钟阅读

viewsIcon

11060

在本文中,我们将了解如何在 Azure 中创建高可用性的 VM。

引言

在本文中,我们将了解如何在 Azure 中创建高可用性的 VM。我们将理解故障域和更新域的概念,以及如何有效地利用可用性集和 VM 规模集,以确保在 Azure VM 上运行的应用程序具有高可用性。

背景

高可用性是任何应用程序最重要的方面之一。 如果我们的应用程序部署在云中的 VM 上,那么高可用性就变得更加重要,因为本质上,我们依赖于由云供应商管理的 VM。 如果我们正在设计一个以高可用性为关键的应用程序,并且打算将该应用程序部署在 Azure VM 上,我们需要了解 Azure 提供的各种构造和配置,以实现高可用性。

说到硬件可靠性,可以肯定的是,系统注定会发生故障,电线会断裂,连接会失败。 那么,如果我们的应用程序托管在发生故障的 VM 上,我们的应用程序会发生什么情况? Azure 承认这些事实,并为我们提供了充足的解决方案,以便我们能够以这样一种方式设计我们的 VM 基础设施,即使发生这些故障,我们的应用程序仍然可用。

高可用性 VM 的设计

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

  • 计划内维护:这是指 Azure VM 正在更新,以便为我们提供一组新的功能。
  • 计划外维护:这是指 Azure 发现 VM 或网络即将出现问题(基于健康检查),并执行维护活动。
  • 意外停机:由于不可预见的情况造成的某些故障。

现在,对于这些类型的潜在故障,在我们的本地服务器上,我们过去常常在单独的网络上保留冗余服务器。 在 Azure 中,VM 选择对我们来说是一个黑盒,所以我们需要以某种方式仍然能够保持冗余服务器和单独的网络。

可用性集

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

故障域:故障域是数据中心内一组容易发生故障的机器(或本质上是一个机架)。 任何电气或网络故障都会影响故障域中的所有 VM。

更新域:更新域是一组将一次性接收 OS 或 Azure 功能更新的机器(并且可能会一起重新启动)。 它与机架无关,它只是定义更新域的逻辑分组。

当我们将 VM 放入可用性集中时,Azure 确保我们的 VM 被放入单独的故障域和更新域中。 这将确保在发生机架故障或任何 VM 上的任何更新的情况下,不会影响可用性集中的其他 VM,并且我们的应用程序仍然可用。

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

VM 规模集

为我们的 VM 选择可用性集可确保我们的 VM 具有高可用性,但是由于我们为了高可用性而选择了多个 VM,因此我们还必须独立地管理这些 VM。 是否有可能让我们以某种方式将相同的 VM 作为一组进行管理,并且也具有高可用性。

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

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

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

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

看点

在这篇小文章中,我们熟悉了 Azure 中可用性集和 VM 规模集的概念。 我们了解了故障域和更新域,并且可以使用可用性集来有效地管理我们的 VM,以确保高可用性。 我希望这在某种程度上具有信息性。

参考文献

历史

  • 2018 年 7 月 31 日:第一版
© . All rights reserved.