Azure 虚拟机(VM)提供按需可缩放的计算资源。 作为基础基础结构服务,VM 旨在为任务关键型工作负荷提供企业级可靠性和可用性。
本文介绍 Azure 虚拟机中的可靠性支持,包括对可用性区域、备份的支持,以及平台维护期间的可靠性。
可靠性是你和Microsoft之间的共同责任。 可以使用本指南确定哪些可靠性选项满足特定业务目标和运行时间目标。
重要
考虑 VM 的可靠性时,还需要考虑磁盘、网络基础结构和 VM 上运行的应用程序的可靠性。 即使提高 VM 的复原能力,如果其他资源和应用程序也无法复原,这种增加也可能没有影响。 根据复原能力要求,可能需要跨多个区域进行配置更改。
生产部署建议
若要了解如何部署 VM 以支持解决方案的可靠性要求,以及可靠性如何影响体系结构的其他方面,请参阅 Azure Well-Architected Framework 中 Azure 虚拟机和规模集的体系结构最佳做法。
可靠性体系结构概述
VM 是 Azure 中的基本计算单元,无论是自行预配 VM 还是使用以透明方式预配和管理这些 VM 的其他 Azure 计算服务。
单个 VM 有时称为 单个实例 VM。 它在特定主机上运行,该主机是物理服务器。 大多数 VM 与其他 VM 共享其主机。
创建 VM 时,可能会影响 VM 在底层基础结构中运行的位置。 通常,你将根据可靠性、延迟和隔离的要求做出选择。 Azure 提供以下影响 VM 放置的配置选项:
地区: 可以选择 VM 应在其中运行的 Azure 区域 。 区域是一个地理区域,可能包含多个数据中心,每个数据中心都有大量主机。
可用性区域:可用性区域是每个 Azure 区域中物理上独立的数据中心组。 在支持可用性区域的区域中,可以选择 VM 在其中运行的区域。 若要了解详细信息,请参阅本文后面的 可用性区域支持 。
可用性集: 可用性集是 VM 的逻辑分组,使 Azure 能够了解应用程序的构建方式,以提供冗余和可用性。
使用可用性集时,请告知 Azure 在不同的 容错域中分发一组 VM。 此分发通过对共享通用电源和网络交换机的虚拟机进行分组,将本地化硬件故障的风险降到最低。
可用性集还可以在不同的 更新域中放置不同的 VM,从而控制 Azure 平台如何推出平台更新。 通过使用更新域,可以确保一次只重启一部分 VM 进行更新。
邻近放置组: 对于需要在 VM 之间实现最低延迟的工作负荷,可以使用 邻近放置组 来确保 Azure 将 VM 物理地彼此靠近。 但是,邻近放置意味着数据中心中断可能会影响组中的所有 VM。 若要实现较高的可靠性,可能需要在不同的可用性区域中预配多个邻近放置组。
专用主机: 可以使用 Azure 专用主机 来预配运行一个或多个 VM 的你自己的物理服务器,例如,出于严格的符合性要求。 但是,预配专用主机时,其数据中心内的中断可能会影响该主机上的所有 VM。 若要实现较高的可靠性,可能需要在不同的可用性区域中预配多个专用主机。
如果要创建一组执行类似功能的 VM,请考虑使用 虚拟机规模集 创建和管理 VM 作为组。 规模集还提供更多的可靠性选项,例如将虚拟机分布在多个可用区域。
若要详细了解 VM 的可用性,请参阅 Azure 虚拟机的可用性选项。
暂时性故障
暂时性故障是指组件发生短暂的间歇性故障。 这些故障经常出现在云之类的分布式环境中,在运营过程中比较常见。 暂时性故障在短时间内自行纠正。 应用程序通常可以通过重试受影响的请求来处理暂时性故障,这一点很重要。
与任何云托管的 API、数据库和其他组件通信时,所有云托管的应用程序都应遵循 Azure 暂时性故障处理指南。 有关详细信息,请参阅 处理暂时性故障的建议。
在 VM 上运行的应用程序应实施适当的故障处理策略,以确保服务中的任何临时中断不会影响工作负荷。
可用性区域支持
可用性区域 是每个 Azure 区域内物理上独立的数据中心群组。 当一个区域发生故障时,服务可以故障转移到其他区域。
可以在 区域 配置中部署单个 VM,这意味着它固定到你选择的单个可用性区域。 单独而言,区域 VM 对区域中断并不具备弹性。 但是,可以创建多个 VM 并将其放置在不同的可用性区域中,然后将应用程序和数据分散到 VM 实例中。 或者,可以使用 虚拟机规模集 创建一组虚拟机,并将其分散到各个区域。
如果未将 VM 配置为区域,则将其视为 非区域 或 区域。 非区域 VM 可能放置在该区域中的任何可用性区域中。 如果区域中的任何可用性区域遇到服务中断,则非区域 VM 可能位于受影响的区域中,并且可能会遇到停机。
区域支持
可将区域 VM 部署到 支持可用性区域的任何区域。
但是,某些 VM 类型和大小仅适用于特定区域或区域中的特定区域。 若要检查哪些区域和区域支持所需的 VM 类型,请使用以下资源:
- 按区域提供的产品 ,用于检查每个区域中可用的 VM 类型。
- 检查 VM SKU 可用性 ,检查特定区域的每个区域中支持的 VM 类型和大小。
成本
区域 VM 和非区域 VM 之间没有成本差异。
配置可用性区域支持
本部分介绍如何为虚拟机实例配置可用性区域支持。
注释
选择要使用的可用性区域时,实际上是在选择逻辑可用性区域。 如果你在不同的 Azure 订阅中部署其他工作负载组件,它们可能会使用不同的逻辑可用性区域编号来访问相同的物理可用性区域。 有关详细信息,请参阅 物理和逻辑可用性区域。
创建区域虚拟机:可以使用以下指南创建区域虚拟机:
- Azure 门户: 使用 Azure 门户在可用性区域中创建虚拟机
- Azure CLI: 使用 Azure CLI 在可用性区域中创建虚拟机
- Azure PowerShell: 使用 Azure PowerShell 在可用性区域中创建虚拟机
将现有虚拟机转换为区域配置: 可以从非区域 VM 移动到区域 VM。 在这个过程中,会在目标可用性区域中创建一个新的 VM,并且需要在迁移过程中停止该 VM。 若要了解详细信息,请参阅 将 Azure 单实例 VM 从区域移到区域目标可用性区域。
更改现有区域虚拟机的可用性区域: 无法将区域 VM 移到其他可用性区域。 应在所需的可用性区域中部署新的区域虚拟机。
将区域 VM 转换为非区域: 无法将区域 VM 转换为非区域配置。 需要改为部署新的非区域 VM。
常规操作
本部分介绍使用可用性区域支持配置虚拟机实例时的预期情况,并且所有可用性区域都正常运行。
区域之间的流量路由: 你负责在 VM 之间路由流量,包括位于不同可用性区域中的 VM。 常见方法包括 Azure 负载均衡器和 Azure 应用程序网关。 有关 Azure 负载均衡选项的详细信息,请参阅 Azure 体系结构中心 - 负载均衡选项。
区域之间的数据复制: 你负责需要在 VM 之间发生的任何数据复制,包括跨不同可用性区域中的 VM 进行复制。 在 VM 上运行的数据库和其他类似的有状态应用程序通常提供复制数据的功能。
区域关闭体验
本部分介绍配置了可用区支持的虚拟机实例在其所在可用区发生故障时会出现的情况。
检测和响应:负责检测和响应影响虚拟机的区域故障。
通知:使用 Azure 资源运行状况 检测区域故障并触发故障转移进程。
活动请求:在发生区域故障期间,VM 上发生的任何活动请求或其他工作都可能会终止。
预期数据丢失:区域 VM 磁盘在区域故障期间可能不可用。
如果使用区域冗余磁盘,并且 VM 受中断影响,则可以强制将 ZRS 磁盘从失败的 VM 中分离 ,从而允许将 ZRS 磁盘附加到另一个 VM。
预期停机时间:VM 在可用性区域恢复之前保持关闭状态。
流量重新路由:负责将流量重新路由到正常区域中的其他 VM。
如果已配置区域弹性负载均衡器并执行运行状况检查,负载均衡器通常会检测失败的 VM,并且可以将流量路由到正常区域中的其他 VM 实例。
区域恢复
区域正常后,区域中的 VM 将重启。 你负责工作负荷所需的任何区域恢复过程和数据同步。
替代的多区域方法
将多个 VM 部署到不同的区域时,负责配置和管理复制、负载均衡、故障转移和故障回复进程。
某些应用程序提供内置功能,可在跨多个 VM 进行部署时提供帮助。 例如, Azure VM 上的 SQL Server 提供了一组功能来简化跨可用性区域的配置和管理过程。
在您的应用程序一次仅在一个区域中运行,且不需要在区域之间进行近乎实时故障转移时,您可以考虑使用 Azure Site Recovery 区域到区域灾难恢复。 区域到区域灾难恢复具有一些需要注意的重要限制,因此请全面查看要求。
多区域支持
Azure 虚拟机是单区域资源。 如果区域不可用,VM 也不可用。
备选多区域方法
可以将多个 VM 部署到不同的区域,但需要实现复制、负载均衡和故障转移过程。
Azure Site Recovery 是一项服务,可通过将 VM 及其数据复制到次要区域来启用灾难恢复。 若要了解详细信息,请参阅 Azure 到 Azure 的灾难恢复体系结构。
某些应用程序创建群集或其他构造来复制数据,并在多个 VM 之间分配工作,包括在不同区域中。 这些应用程序可以简化多区域解决方案的配置。
有关演示跨多个区域使用 VM 的示例体系结构,请参阅 使用流量管理器、Azure 防火墙和应用程序网关的多区域负载均衡。
服务维护期间的可靠性
Azure 定期对 VM 执行定期维护,以确保可靠性。 有多种方法可以确保工作负荷在维护活动期间保持正常运行:
使用可用性集或虚拟机规模集时,可以配置更新域。 更新域有助于在不同的虚拟机上分配维护活动,并确保您的虚拟机不会在同一时间同时重启。
可以使用 维护控制对 VM 应用维护的时间进行自定义。 可以使用维护配置来安排维护任务在符合您的工作负荷的时间段进行。
可以接收即将进行的维护活动的通知。
有关详细信息,请参阅 来宾更新和主机维护概述。
备份
Azure 虚拟机通过 Azure 备份服务原生支持备份。 Azure Backup 提供了一种原生解决方案,通过备份的创建和管理来保护 Azure 虚拟机,并为整个虚拟机(包括所有附属磁盘)提供应用程序一致性保护。 如果需要协调备份多个磁盘或应用程序感知备份,此方法是理想的方法。 对于数据库工作负荷,请考虑应用程序特定的备份解决方案,这些解决方案提供事务一致性保护和更快的恢复选项。
可以自定义备份的创建频率、备份的保留时间以及备份的存储方式。 有关详细信息,请参阅 适用于 VM 的 Azure 备份。
Azure 备份还支持附加到 VM 的磁盘。 若要了解详细信息,请参阅 Azure 磁盘备份。
服务级别协议
Azure Virutal 计算机的服务级别协议描述了服务的预期可用性,以及必须满足的条件才能达到该可用性预期。
SLA 为 VM 提供基本的可用性级别。 当你有两个或多个虚拟机(VM)时,SLA 中定义的正常运行时间百分比会增加,并且你:
- 将这些 VM 配置为跨两个或更多可用性区域部署,或
- 请配置这些虚拟机以部署到一个可用性集中
有关详细信息,请参阅 联机服务的 SLA。