介绍用于 Azure 虚拟机的 Azure 高可用性和灾难恢复功能

已完成

Azure 提供三个主要选项来提高 IaaS 部署的可用性:

  • 可用性集

  • 可用性区域

  • Azure Site Recovery

这三个选项都位于虚拟机 (VM) 外部,并不知道 VM 中运行的工作负载类型。

可用性集

可用性集针对 Azure 相关维护和单个数据中心的单一故障点提供正常运行时间。 这是最早引入 Azure 平台的可用性功能之一,实际上可将其视为 VM 的反相关性规则。 这意味着,如果在可用性集或日志传送对中有两个 SQL Server VM,则可保证这两个 VM 不会在同一物理服务器上运行。

可用性集分为容错域和更新域,可支持底层 Azure 基础结构的两种更新。 容错域是数据中心内的一组服务器,它们使用相同的电源和网络。一个数据中心最多可以有三个容错域,在下图中用 FD 0、FD 1 和 FD 2 表示。 更新域(在下图中用 UD 表示)指示可以同时重启的虚拟机和底层物理硬件组。 不同的更新域确保了隔离。

Fault Domains and Update Domains

可用性集和可用性区域无法防范来宾故障,如 OS 或 RDBMS 故障;这就是为什么需要实现其他解决方案(如 AG 或 FCI)来确保满足 RTO 和 RPO。 可用性集和可用性区域都专用于限制 Azure 级别环境问题(例如数据中心故障、物理硬件故障、网络中断和电源中断)产生的影响。

对于多层应用程序,应将应用程序的每一层都置于其自己的可用性集中。 例如,如果你要构建一个具有 SQL Server 后端和 Active Directory 域服务 (AD DS) 的 Web 应用程序,则需要为每一层(Web、数据库和 AD DS)创建一个可用性集。

可用性集不是隔离 IaaS VM 的唯一方法。 Azure 还提供可用性区域,但这两者不能组合使用。 你可以选择其中一种。

可用性区域

可用性区域在 Azure 中负责数据中心级别的故障。 每个 Azure 区域都包含多个数据中心,这些数据中心之间的网络连接延迟较低。 当你在支持可用性区域的区域中部署 VM 资源时,可以选择将这些资源部署到区域 1、2 或 3。 区域是 Azure 区域内的唯一物理位置,即数据中心。

区域编号是逻辑表示形式。 例如,如果两个 Azure 订阅者都将一个 VM 部署到其订阅中的区域 1,这并不意味着这两个 VM 位于同一个物理 Azure 数据中心。 此外,由于距离的关系,区域级部署中的延迟会增加。 应测试 VM 之间的延迟,确保延迟满足性能目标。 在大多数情况下,往返延迟小于 1 毫秒,这支持在相关功能(如可用性组)中同步数据移动。 还可将 Azure SQL 数据库部署到可用性区域。

Azure Site Recovery

Azure Site Recovery 在 Azure 级别为 VM 提供增强的可用性,并可与托管 SQL Server 的 VM 一起工作。 Azure Site Recovery 将 VM 从一个 Azure 区域复制到另一个 Azure 区域,从而为该 VM 创建灾难恢复解决方案。 如前文所述,此功能并不知道 SQL Server 正在 VM 中运行,对事务也一无所知。 尽管 Azure Site Recovery 可能满足 RTO,但它可能满足不了 RPO,因为它没有考虑数据在 SQL Server 中的位置。 Azure Site Recovery 规定的每月 RTO 为两小时。 虽然大部分数据库专业人员可能更倾向于使用基于数据库的方法进行灾难恢复,但如果 Azure Site Recovery 能够满足你的 RTO 和 RPO 需求,那么它就能很好地发挥作用。