![Azure VM DR 解决方案](https://linux22.com/image/671477/Azure%20VM%20DR%20%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88.png)
我对如何实现和保证 Azure 虚拟机灾难恢复存在一些疑问。
我有一个虚拟机在 Azure 区域 1(假设为美国中部)上运行一些 IIS。为了实现 HA,我知道我需要创建一个可用性集。问题是,如果区域 1 发生故障,我的服务将不可用。
所以,我想问的是,有什么最好的方法可以保证虚拟机以最快的速度恢复到区域 2(美国中南部),并且无需任何人工干预(如果可能的话)。请注意,我指的是区域 1 出现故障的情况。
我知道如果出现数据损坏的情况,我需要一些其他机制。
问候,
答案1
简而言之:DR 取决于您(或者更具体地说,取决于您的应用架构)。没有办法保证恢复到另一个区域。虽然您可能能够将流量路由到另一个区域(无论是通过 @Bruno 建议的流量管理器,还是您自己的基于 DNS 的解决方案),但这与您的数据无关。这只处理面向外部的 web/api/app 层。
为什么我说这取决于你(你的应用架构)?想想有多少问题没有内置答案:
- 您将如何从主区域复制数据,以确保其在辅助区域中可用?您是否使用复制到备用区域的数据存储服务(例如表/Blob 存储)?您是否使用需要设置复制的基于 VM 的数据库解决方案(然后您如何处理一致性)?
- 如果您的应用没有可用数据,它将如何运行?它会关闭吗?它会进入只读模式吗?它能处理过时的数据吗?
- 如果其他服务不可用(例如电子邮件、缓存、身份、第三方服务等)会发生什么?
- 当您的辅助节点现在是唯一可用的节点时,如何确保不会丢失写入主数据节点的内容?
- 当主要区域恢复在线时,您将如何处理恢复?
- 您将如何处理多个区域离线的情况——您是否会在本地拥有额外的资源?
- ETC。
您提到了可用性集,它与 DR 无关(正如您所猜测的那样)。可用性集只是通过确保虚拟机分布在故障域和更新域中来降低虚拟机群集脱机的可能性。
底线:灾难恢复不是内置的,需要仔细规划,并了解系统在故障期间将如何(或不会)运行。
答案2
您可以使用流量管理器。基本上,您为 Region1 添加一个端点,为 Region2 添加另一个端点。将其设置为故障转移,如果您的主站点发生故障,它将为您发挥神奇的作用。所有入站流量都由流量管理器管理,而不是直接进入虚拟机。
什么是流量管理器?
https://azure.microsoft.com/en-us/documentation/articles/traffic-manager-overview/