部署故障转移群集的云见证
云见证是一种故障转移群集仲裁见证,它使用 Microsoft Azure 提供对群集仲裁的投票。 本文简要介绍了云见证功能及其支持的场景,还提供了有关如何为故障转移群集配置云见证的说明。 有关详细信息,请参阅设置群集见证。
什么是云见证?
在开始之前,应阅读了解群集和池仲裁来回顾有关群集仲裁和仲裁见证的知识。
现在,让我们首先查看 Windows Server 的多站点拉伸故障转移群集仲裁的示例配置,如下图所示。
此示例是一个简化的配置,其中两个现场数据中心内有两个节点。 在典型的群集中,每个节点都有一票,一个文件共享见证给仲裁见证额外投一票。 额外的这一票使得即使其中一个数据中心关闭,群集也继续运行。 在此示例中,群集仲裁可能有 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 配置云见证。
要使用仲裁配置设置工作流配置云见证,请执行以下操作:
打开故障转移群集管理器。
右键单击群集的名称。
转到更多操作>配置群集仲裁设置,如以下屏幕截图中所示启动“配置群集仲裁”工作流。
在选择仲裁配置页上,选择选择仲裁见证。
在选择仲裁见证页上,选择配置云见证。
在配置云见证页中,输入以下信息:
你的 Azure 存储帐户名称。
与存储帐户关联的访问密钥。
如果首次创建云见证,请使用主访问密钥。
如果要轮换主访问密钥,请改用辅助访问密钥。
注意
故障转移群集会生成共享访问安全 (SAS) 令牌来安全地存储,而不是直接存储访问密钥。 只有与令牌关联的访问密钥保持有效,令牌才有效。 轮换主访问密钥时,必须先使用该存储帐户和辅助密钥更新所有群集上的云见证,然后才能重新生成主密钥。
(可选)如果计划对云见证使用其他 Azure 服务终结点(例如 Azure 中国),可以将另一个现有服务器的名称输入到“终结点服务器名称”字段中。
如果配置成功,那么你应该能够在故障转移群集管理器可折叠菜单中看到新的云见证,如以下屏幕截图所示。
云见证的代理注意事项
云见证使用 HTTPS(默认端口 443)与 Azure blob 服务建立出站通信。 Azure 使用 .core.windows.net 作为终结点。 需确保将此终结点包含在群集与 Azure 存储之间所使用的全部防火墙允许列表中。 如需通过代理来访问 Azure 存储,请使用所需的代理设置来配置 Windows HTTP 服务 (WinHTTP)。 故障转移群集利用 WinHTTP 进行 HTTPS 通信。
若要使用 Netsh 命令来配置默认代理服务器,请执行以下步骤:
注意
- 此举会更改 WinHTTP 的默认代理配置。 使用 WinHTTP 的所有应用程序(包括 Windows 服务)均可能会受到影响。
打开提升的命令行:
- 转到“启动”,然后键入“cmd”。
- 右键单击命令提示符并选择以管理员身份运行。
键入以下命令并按 Enter:
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"
有关详细信息,请参阅 Netsh 命令语法、上下文和格式设置。