你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure 数据资源管理器创建业务连续性和灾难恢复解决方案

本文介绍如何通过在不同的 Azure 区域中复制 Azure 数据资源管理器 资源、管理配置和数据引入,为 Azure 区域性中断做好准备。 本文包含使用 Azure 事件中心 引入数据的示例。 它还讨论了不同体系结构配置的成本优化。 有关体系结构注意事项和恢复解决方案的详细信息,请参阅业务连续性概述

为应对 Azure 区域性中断做准备以保护你的数据

Azure 数据资源管理器不支持针对整个 Azure 区域的中断进行自动保护。 在自然灾害(如地震)期间,会发生这种中断。 如果需要灾难恢复解决方案,请按照以下步骤确保业务连续性。 在这些步骤中,你将在两个Azure配对区域中复制群集、管理活动和数据引入。

  1. 在两个 Azure 配对区域中创建两个或更多个独立的群集
  2. 复制所有管理活动,例如,在每个群集上创建新表或管理用户角色。
  3. 以并行方式将数据引入每个群集。

创建多个独立的群集

在多个区域中创建多个 Azure 数据资源管理器群集。 在Azure配对区域中创建至少两个群集。

下图显示了三个不同区域中的三个副本群集。

显示位于三个 Azure 区域中的三个独立 Azure 数据资源管理器 群集的示意图。

复制管理操作

复制管理活动,以便每个副本具有相同的群集配置。

  1. 在每个副本上创建相同的资源:

  2. 在每个副本上管理身份验证和授权

    展示跨区域 Azure 数据资源管理器 集群中管理活动复制的示意图。

基于 Event Hubs 数据引入的灾难恢复解决方案

完成 为防范 Azure 区域性中断做好准备,保护你的数据 后,Azure 数据资源管理器 会在多个区域中存储你的数据及其管理信息。 如果一个区域中发生中断,Azure 数据资源管理器可以使用其他副本。

使用事件中心设置数据摄取

要将数据从 Azure 事件中心引入到每个区域的 Azure 数据资源管理器群集,请先复制每个区域中的 Azure 事件中心设置。 然后,将每个区域的 Azure 数据资源管理器副本配置为从相应的事件中心引入数据

注意

通过 Azure 事件中心、IoT 中心 或存储服务进行的数据引入非常稳健。 如果某个集群在一段时间内不可用,它会在稍后进行补发,并插入任何待处理的消息或块存储。 此过程依赖于检查点设置

展示了为实现弹性数据收集而跨区域配置的 Event Hubs 数据引入的示意图。

此图显示数据源向所有区域中的事件中心生成事件,每个Azure 数据资源管理器副本都会使用这些事件。 数据可视化组件(如 Power BI、Grafana 或 SDK 支持的 Web 应用)可以查询一个副本。

此图显示了向区域副本发送事件的数据源,以及查询副本的客户端可视化工具。

优化成本

现在,你已准备好使用以下一些方法优化副本:

创建按需数据恢复配置

复制和更新Azure 数据资源管理器设置会随着副本数的增加而线性增加成本。 若要优化成本,请实现平衡时间、故障转移和成本的体系结构变体。 按需数据恢复配置通过使用被动 Azure 数据资源管理器 副本来优化成本。 只有当主要区域(例如区域 A)中发生灾难时,才会启用这些副本。 区域 B 和 C 中的副本不需要处于活动状态 24/7,这可显著降低成本。 但在大多数情况下,这些副本的性能无法与主集群相媲美。 有关详细信息,请参阅按需数据恢复配置

在下图中,只有一个群集从事件中心引入数据。 区域 A 中的主要群集执行连续数据导出来将所有数据导出到某个存储帐户。 次要副本使用 外部表访问数据。

按需数据恢复体系结构示意图,包含一个活动的主群集和被动副本。

启动和停止副本

使用以下方法之一启动和停止辅助副本:

az kusto cluster stop --name=<clusterName> --resource-group=<rgName> --subscription=<subscriptionId>

实施高度可用的应用程序服务

创建 Azure 应用程序服务 BCDR 客户端

本部分介绍了如何创建 Azure 应用程序服务,该服务支持与单个主要的和多个辅助的 Azure 数据资源管理器群集进行连接。 下图展示了 Azure 应用程序服务设置。

创建 Azure 应用程序服务。

提示

在同一服务中的副本之间建立多个连接可以提高可用性。 此设置不仅仅在发生区域性中断的情况下有用。

  1. 使用此应用程序服务样板代码。 若要实现多群集客户端,请使用 AdxBcdrClient 类。 此客户端执行的每个查询 首先发送到主群集。 如果发生故障,查询会被发送到次要副本。

  2. 使用 自定义 Application Insights 指标 来度量性能和请求分发到主要群集和辅助群集。

测试 Azure 应用程序服务 BCDR 客户端

以下测试使用多个Azure 数据资源管理器副本。 在对主群集和辅助群集进行模拟故障后,App Service BCDR 客户端的表现符合预期。

验证应用服务 BCDR 客户端。

Azure 数据资源管理器群集分布于西欧(2xD14v2 主要副本)、东南亚和美国东部 (2xD11v2)。

全球范围查询响应时间。

注意

响应时间较慢是由不同的 SKU 和全球查询导致的。

执行动态或静态路由

Azure 流量管理器路由方法用于动态或静态请求路由。 Azure 流量管理器是基于 DNS 的流量负载均衡器,可用于分发应用服务流量。 此流量针对全球 Azure 区域中的服务进行了优化,同时提供高可用性和快速响应能力。

还可使用基于 Azure Front Door 的路由。 有关这两种方法的比较,请参阅使用 Azure 的应用程序交付套件进行负载均衡

在主动-主动配置中优化成本

使用主动-主动架构进行灾难恢复会导致成本线性增加。 成本包括节点、存储、标记成本以及因带宽增加的网络成本。

使用优化的自动缩放来优化成本

使用优化的自动缩放功能为辅助群集配置水平缩放。 调整辅助集群的规模以处理数据摄取负载。 当主群集无法访问时,辅助群集会根据配置获取更多流量并缩放。

在此示例中,与在所有副本上使用相同的水平和垂直缩放相比,优化的自动缩放可节省大约 50% 成本。