部署故障转移群集的云见证

云见证是一种故障转移群集仲裁见证,它使用 Microsoft Azure 提供对群集仲裁的投票。 本文概述了云见证功能、它支持的方案,以及如何为故障转移群集配置云见证的说明。 有关详细信息,请参阅设置群集见证

什么是云见证?

在开始之前,应阅读了解群集和池仲裁来回顾有关群集仲裁和仲裁见证的知识。

在典型的群集中,每个节点都有一票,一个文件共享见证给仲裁见证额外投一票。 额外的这一票使得即使其中一个数据中心关闭,群集也继续运行。 在此示例中,群集仲裁可能有 5 票,它只需要获得 3 票就能继续运行。

然而,你可能会注意到,除了这两个数据中心外,还有第三个数据中心作为文件共享见证。 此数据中心与其他两个站点分开,它托管一个用于备份系统文件共享的文件服务器。 文件共享见证在此群集仲裁配置中充当仲裁见证,从而确保即使其中一个数据中心意外关闭,系统仍然会运行。

拥有文件共享见证提供了足够的冗余,使文件服务器保持高度可用。 但应记住,在单独站点中的另一服务器上托管文件共享见证需要设置、定期维护以及与其他站点的独立连接。

云见证不同于传统的群集仲裁见证配置,因为它使用云中的 Azure 虚拟机(VM)作为仲裁见证而不是物理数据中心。 云见证使用 Azure Blob 存储来读取和写入 Blob 文件,系统将该文件用作实现仲裁的决定性投票。

可以看到,云见证配置不需要第三个单独的数据中心。 与任何其他仲裁见证一样,云见证会获得额外一票,并有助于帮助防止在其他数据中心之一关闭时整体关闭。 但是,它不需要额外的站点来存储仲裁见证。 云见证也不需要现场数据中心所需的常规物理维护。

除了冗余之外,使用云见证功能还有一些其他好处:

  • 无需使用单独的额外数据中心来实现仲裁。

  • 使用 Azure Blob 存储可消除在公有云中托管 VM 通常所需的额外维护开销。

  • 可将同一 Azure 存储帐户用于多个群集。 唯一的要求是,每个群集只使用一个 Blob,并以群集的唯一 ID 命名 Blob 文件名。

  • 降低存储帐户的持续成本,因为 Blob 文件不需要太多数据,并且仅在群集节点状态发生变化时进行更新。

  • Azure 附带内置的云见证资源类型。

先决条件

要配置云见证,必须具有带有活动订阅的 Azure 帐户和有效的 Azure 常规用途存储帐户。 在此存储帐户中,云见证会创建 msft-cloud-witness 容器来存储投票仲裁所需的 Blob 文件。

注意

云见证与以下类型的 Azure 存储帐户不兼容:

  • Blob 存储
  • Azure 高级存储

还可以使用此帐户和云见证自动创建的 msft-cloud-witness 容器,以跨多个不同的群集配置云见证。 每个群集都有自己的 Blob 文件,该文件存储在容器中。

创建 Azure 存储帐户时,如果要为其配置云见证的群集位于本地或位于同一 Azure 区域和可用性区域中的 Azure 中,请在配置复制字段时选择本地冗余存储 (LRS)。 如果群集位于同一 Azure 区域,但在不同的可用性区域中,请转而选择“区域冗余存储(ZRS)”。

必须使用下面支持的方案之一:

  • 拉伸多站点群集的灾难恢复。

  • 没有共享存储的故障转移群集,例如 SQL Always On。

  • 在 Microsoft Azure 虚拟机角色或任何其他公有云中托管的来宾 OS 内运行的故障转移群集。

  • 由在来宾 OS 中运行的私有云中托管的 VM 构成的故障转移群集。

  • 带有或不带共享存储的存储群集,例如横向扩展文件服务器群集。

  • 小型分支机构群集,甚至双节点群集。

如果使用的是 Windows Server 2012 R2 及更高版本,建议始终配置见证。 更高版本的 Windows Server 中的群集自动管理使用动态仲裁进行的见证投票及其节点投票。

还必须确保故障转移群集和 Azure 存储帐户服务之间的所有防火墙都允许来自端口 443(也称为 HTTPS 端口)的流量。 云见证使用 Azure 存储服务的 HTTPS REST 接口。 因此,必须在故障转移群集中的所有节点上打开端口 443,这样云见证才能按预期工作。

创建 Azure 存储帐户时,Azure 会将其与自动生成的主访问密钥和辅助访问密钥相关联。 首次设置云见证时,建议使用主访问密钥。 然后,可使用主访问密钥,也可使用辅助访问密钥。

将云见证配置为群集的仲裁见证

可使用故障转移群集管理器应用程序中内置的仲裁配置设置工作流或使用 PowerShell 配置云见证。

  1. 服务器管理器中,依次选择工具故障转移群集管理器

  2. 在左窗格中的故障转移群集管理器下,选择要配置的群集。

  3. 在右窗格的“操作”下选择“更多操作”,然后选择“配置群集仲裁设置”。

  4. 在“配置群集仲裁向导”下,选择“下一步”

  5. 在“选择仲裁配置选项”下,选中“选择仲裁见证”,然后选择“下一步”

  6. 在“选择仲裁见证”下,选择“配置文件云见证”,然后选择“下一步”

  7. 在“配置云见证”下,输入以下信息,然后选择“下一步”

    • 你的 Azure 存储帐户名称。

    • 与存储帐户关联的访问密钥。

      • 如果首次创建云见证,请使用主访问密钥。

      • 如果要轮换主访问密钥,请改用辅助访问密钥。

      注意

      故障转移群集不会直接存储访问密钥,而是生成用于安全存储的共享访问签名 (SAS) 令牌。 只要关联的访问密钥有效,令牌就仍然有效。 在轮换主访问密钥之前,使用辅助密钥在所有使用该存储帐户的群集上更新云见证,然后再重新生成主密钥。

    • Azure 服务终结点

      如果您计划为云见证使用不同的 Azure 服务终结点(例如 Azure 中国),可以在 Azure 服务终结点 字段中输入另一个现有服务器的名称。

  8. 在“确认”下查看仲裁设置,然后选择“下一步”

  9. 在“摘要”下,查看见证配置,然后选择“完成”

    可以选择查看报告以获取进一步的配置详细信息。

创建云见证后,导航到故障转移群集管理器的中间窗格,在“群集核心资源”下可以看到它。

云见证的代理注意事项

云见证使用 HTTPS(默认端口 443)与 Azure blob 服务建立出站通信。 Azure 使用 .core.windows.net 作为终结点。 需确保将此终结点包含在群集与 Azure 存储之间所使用的全部防火墙允许列表中。 如需通过代理来访问 Azure 存储,请使用所需的代理设置来配置 Windows HTTP 服务 (WinHTTP)。 故障转移群集利用 WinHTTP 进行 HTTPS 通信。

可以通过打开提升的 PowerShell 窗口并运行以下命令,使用 netsh 命令配置默认代理服务器:

注意

运行此命令会更改 WinHTTP 的默认代理配置。 使用 WinHTTP 的所有应用程序(包括 Windows 服务)均可能会受到影响。

netsh winhttp set proxy proxy-server="<ProxyServerName>:<port>" bypass-list="<HostsList>"

例如:

netsh winhttp set proxy proxy-server="192.168.10.80:8080" bypass-list="<local>; *.contoso.com"

另请参阅