为 Azure VM 上的 SQL Server 配置群集仲裁
本文指导你为 Azure 虚拟机 (VM) 上的 SQL Server 上运行的 Windows Server 故障转移群集配置三个仲裁选项之一 - 磁盘见证、云见证和文件共享见证。
概述
群集的仲裁由投票元素数确定,这些元素必须属于活动群集成员身份,以便群集正确启动或继续运行。 配置仲裁资源,将使两节点群集在只有一个节点联机时可以继续联机。 Windows Server 故障转移群集是 Azure VM 上的 SQL Server 高可用性选项的基础技术:故障转移群集实例 (FCI) 和可用性组 (AG)。
磁盘见证是最具弹性的仲裁选项,但要在 Azure VM 上的 SQL Server 中使用磁盘见证,必须使用 Azure 共享磁盘,这会对高可用性解决方案施加一些限制。 因此,在使用 Azure 共享磁盘配置故障转移群集实例时使用磁盘见证,否则尽可能使用云见证。 如果使用的是不支持云见证的 Windows Server 2012 R2 或更早版本,则可以使用文件共享见证。
以下仲裁选项可用于 Azure VM 上的 SQL Server:
云见证 | 磁盘见证 | 文件共享见证 | |
---|---|---|---|
支持的 OS | Windows Server 2016 及更高版本 | 全部 | 全部 |
若要了解有关仲裁的详细信息,请参阅 Windows Server 故障转移群集概述。
云见证
云见证是一种故障转移群集仲裁见证,它使用 Azure 存储提供对群集仲裁的投票。
下表提供了有关云见证的其他信息和注意事项:
见证类型 | 说明 | 要求和建议 |
---|---|---|
云见证 |
|
|
为故障转移群集配置云见证仲裁资源时,请考虑:
- 故障转移群集将生成并安全地存储共享访问安全 (SAS) 令牌,而不存储访问密钥。
- 只要访问密钥保持有效,生成的 SAS 令牌就仍有效。 轮换主访问密钥时,在重新生成主访问密钥之前,必须先使用辅助访问密钥更新 Cloud Witness(在使用该存储帐户的所有群集上)。
- 云见证使用 Azure 存储帐户服务的 HTTPS REST 接口。 这意味着它需要在所有群集节点上打开 HTTPS 端口。
云见证需要 Azure 存储帐户。 要配置存储帐户,请执行以下步骤:
- 登录 Azure 门户。
- 在“中心”菜单中,选择“新建”->“存储帐户”。
- 在“创建存储帐户”页中执行以下操作:
- 为存储帐户输入名称。 存储帐户名称必须为 3 到 24 个字符,并且只能包含数字和小写字母。 存储帐户名称在 Azure 中也必须是唯一的。
- 对于“帐户类型”,选择“常规用途”。
- 对于“性能”,请选择“标准”。
- 对于“复制”,请选择“本地冗余存储 (LRS)”。
创建存储帐户后,请按照以下步骤为故障转移群集配置云见证仲裁资源:
现有的 Set-ClusterQuorum PowerShell 命令具有与云见证对应的新参数。
可以使用 PowerShell 命令的 cmdlet Set-ClusterQuorum
配置云见证:
Set-ClusterQuorum -CloudWitness -AccountName <StorageAccountName> -AccessKey <StorageAccountAccessKey>
在极少数情况下,需要使用不同的终结点,请使用以下 PowerShell 命令:
Set-ClusterQuorum -CloudWitness -AccountName <StorageAccountName> -AccessKey <StorageAccountAccessKey> -Endpoint <servername>
有关查找存储帐户 AccessKey 的帮助,请参阅云见证文档。
磁盘见证
磁盘见证是群集可用存储组中的小型群集磁盘。 此磁盘具有高可用性,并且可在节点之间故障转移。
与共享存储高可用性解决方案(例如具有 Azure 共享磁盘的故障转移群集实例)一起使用时,磁盘见证是建议的仲裁选项。
下表提供了有关仲裁磁盘见证的其他信息和注意事项:
见证类型 | 说明 | 要求和建议 |
---|---|---|
磁盘见证 |
|
|
若要将 Azure 共享磁盘用于磁盘见证,必须先创建该磁盘并装载它。 为此,请按照 Azure 共享磁盘故障转移群集实例指南中的装载磁盘部分中的步骤进行操作。 磁盘不必是高级磁盘。
装载磁盘后,将其添加到群集存储中,步骤如下:
- 打开故障转移群集管理器。
- 在左侧导航窗格上,选择“存储”下的“磁盘”。
- 在右侧导航窗格上,选择“操作”下的“添加磁盘”。
- 选择刚装载的 Azure 共享驱动器并记下名称,例如
Cluster Disk 3
。
添加磁盘作为群集存储后,使用 PowerShell 将其配置为磁盘见证:
现有的 Set-ClusterQuorum PowerShell 命令具有与云见证对应的新参数。
使用 PowerShell cmdlet Set-ClusterQuorum
时,使用文件共享的路径作为磁盘见证的参数:
Set-ClusterQuorum -NodeAndDiskMajority "Cluster Disk 3"
还可以使用故障转移群集管理器;遵循与云见证相同的步骤,但改为选择磁盘见证作为仲裁选项。
文件共享见证
文件共享见证是一个 SMB 文件共享,通常在运行 Windows Server 的文件服务器上配置。 它在 witness.log 文件中维护群集信息,但不存储群集数据库的副本。 在 Azure 中,你可以在单独的虚拟机上配置文件共享。
如果磁盘见证或云见证在你的环境中不可用或不受支持,则配置文件共享见证。
下表提供了有关仲裁文件共享见证的其他信息和注意事项:
见证类型 | 说明 | 要求和建议 |
---|---|---|
文件共享见证 |
|
以下是有关托管文件共享见证的文件服务器的其他注意事项:
|
创建文件共享并正确配置权限后,将文件共享装入群集节点。 可以执行与装载文件共享相同的常规步骤,如高级文件共享故障转移群集实例操作指南中的装载文件共享部分中所述。
正确配置并装载文件共享后,使用 PowerShell 添加文件共享作为仲裁见证资源:
Set-ClusterQuorum -FileShareWitness <UNC path to file share> -Credential $(Get-Credential)
系统将提示你输入对共享具有完全管理权限的本地(对于文件共享)非管理员帐户的帐户和密码。 群集会保持名称和密码的加密,并且任何人都无法访问。
你还可以使用故障转移群集管理器;遵循与云见证相同的步骤,但改为选择文件共享见证作为仲裁选项。
更改仲裁投票
可以更改参与 Windows Server 故障转移群集的节点的仲裁投票。
修改节点投票设置时,请遵循以下指导原则:
仲裁投票指导原则 |
---|
默认从没有投票的每个节点开始。 每个节点应该只有一个附带明确理由的投票。 |
为托管可用性组主副本的群集节点或者为故障转移群集实例的首选所有者启用投票。 |
为自动故障转移所有者启用投票。 在自动故障转移后可能托管主副本或 FCI 的每个节点应具有一个投票。 |
如果某个可用性组具有多个次要副本,则仅为具有自动故障转移的副本启用投票。 |
为辅助灾难恢复站点中的节点禁用投票。 如果主站点没有任何问题,则辅助站点中的节点不应该影响群集脱机决策。 |
具有奇数个投票,至少有三个仲裁投票。 根据需要,在双节点群集中添加一个仲裁见证,以额外增加一个投票。 |
故障转移后重新评估投票分配。 你不希望故障转移到不支持运行状况仲裁的群集配置。 |
后续步骤
若要了解更多信息,请参阅以下文章: