验证 Azure Stack HCI 群集

适用于:Azure Stack HCI 版本 22H2 和 21H2;Windows Server 2022,Windows Server 2019。

Important

Azure Stack HCI 现在是 Azure 本地的一部分。 但是,较旧版本的 Azure Stack HCI(例如 22H2)将继续引用 Azure Stack HCI,并且不会反映名称更改。 了解详细信息

警告

本文中提供的部署说明适用于较旧版本,Azure Stack HCI 版本 22H2。 对于新部署,建议使用最新的正式版Azure Local,请参阅“关于Azure Local部署”。

验证 DCB 不再是在 Azure Stack HCI 上设置或测试主机网络配置的建议工具。 建议使用网络 ATC 为 Azure Stack HCI 配置主机网络设置。 在 Azure Stack HCI 上,Network ATC 始终优先于验证 DCB。

尽管Windows Admin Center中的“创建群集”向导执行某些验证来创建具有所选硬件的工作群集,但群集验证会执行其他检查,以确保群集在生产环境中正常工作。 本操作说明文章重点介绍群集验证的重要性,以及何时在 Azure Stack HCI 群集上运行它。

建议对以下主要方案执行群集验证:

  • 部署服务器群集后,运行 Validate-DCB 工具来测试网络。
  • 更新服务器群集后,根据方案运行这两个验证选项来排查群集问题。
  • 使用存储副本设置复制后,通过检查某些特定事件并运行几个命令来验证复制是否正常进行。
  • 创建服务器群集后,请先运行 Validate-DCB 工具,然后将其放入生产环境。

什么是群集验证?

群集验证旨在捕获群集进入生产环境之前的硬件或配置问题。 群集验证有助于确保要部署的 Azure Stack HCI 解决方案真正可靠。 还可以在配置的故障转移群集上使用群集验证作为诊断工具。

特定验证方案

本部分介绍还需要验证或有用的方案。

  • 在配置群集之前进行验证:

    • 准备成为故障转移群集的一组服务器: 这是最简单的验证方案。 硬件组件(系统、网络和存储)已连接,但系统尚未作为群集运行。 在这种情况下运行测试不会影响可用性。

    • 服务器 VM: 对于群集中的虚拟化服务器,请像对任何其他新群集一样运行群集验证。 无论你具备以下哪种情况,运行此功能的要求都相同:

      • 故障转移发生在两台物理计算机之间的“主机群集”。
      • 在同一物理计算机上的来宾操作系统之间发生故障转移的“来宾群集”。
  • 在群集配置完成并投入使用后进行验证:

    • 将服务器添加到群集之前: 将服务器添加到群集时,强烈建议验证群集。 运行群集验证时,请同时指定现有群集成员和新服务器。

    • 添加驱动器时: 将其他驱动器添加到群集时(与替换失败的驱动器或创建依赖于现有驱动器的虚拟磁盘或卷不同)时,请运行群集验证以确认新存储能够正常运行。

    • 进行影响固件或驱动程序的更改时: 如果升级或更改影响固件或驱动程序的群集,则必须运行群集验证,以确认硬件、固件、驱动程序和软件的新组合是否支持故障转移群集功能。

    • 从备份还原系统后: 从备份还原系统后,请运行群集验证,确认系统作为群集的一部分正常运行。

验证网络

Microsoft Validate-DCB工具旨在验证群集上的数据中心桥接(DCB)配置。 为此,该工具采用预期的配置作为输入,然后测试群集中的每个服务器。 本部分介绍如何安装和运行 Validate-DCB 工具、查看结果并解决该工具识别的网络错误。

注释

Microsoft建议使用网络 ATC 部署和管理配置,这消除了 Validate-DCB 工具检查的大部分配置难题。 若要详细了解网络 ATC(提供基于意向的主机网络部署方法),请参阅 使用网络 ATC 简化主机网络

在网络上,通过聚合以太网(RoCE)进行远程直接内存访问(RDMA)需要 DCB 技术使网络结构无损失。 使用 iWARP 时,DCB 是可选的。 然而,配置 DCB 可能很复杂,而且以下各个方面都需要进行精确配置:

  • 群集中的每个服务器
  • RDMA 流量在网络结构中经过的每个网络端口

Prerequisites

  • 要验证的服务器群集的网络设置信息,包括:
    • 主机或服务器群集名称
    • 虚拟交换机名称
    • 网络适配器名称
    • 优先级流控制(PFC)和增强传输选择(ETS)设置
  • 从 Microsoft Windows PowerShell 中下载工具模块的 Internet 连接。

安装和运行 Validate-DCB 工具

安装并运行 Validate-DCB 工具:

  1. 在管理电脑上,以管理员身份打开Windows PowerShell 会话,然后使用以下命令安装该工具。

    Install-Module Validate-DCB
    
  2. 接受使用 NuGet 提供程序并访问存储库以安装该工具的请求。

  3. PowerShell 连接到Microsoft网络以下载该工具后,键入Validate-DCB并按 Enter 启动工具向导。

    注释

    如果无法运行 Validate-DCB 工具脚本,可能需要调整 PowerShell 执行策略。 使用 Get-ExecutionPolicy cmdlet 查看当前的脚本执行策略设置。 有关在 PowerShell 中设置执行策略的信息,请参阅 “关于执行策略”。

  4. 在“欢迎使用 Validate-DCB 配置向导”页上,选择“ 下一步”。

  5. 在“群集和节点”页上,键入要验证的服务器群集的名称,选择“ 解析 ”以在页面上列出它,然后选择“ 下一步”。

    Validate-DCB 配置向导的“群集和节点”页

  6. 在“适配器”页上:

    1. 选中 附加的 vSwitch 复选框并键入 vSwitch 的名称。
    2. 适配器名称下,键入每个物理 NIC 的名称、 主机 vNIC 名称、每个虚拟 NIC(vNIC)的名称以及 VLAN 下,每个适配器使用的 VLAN ID。
    3. 展开 RDMA 类型 下拉列表框,然后选择相应的协议: RoCEiWARP。 此外,将 Jumbo Frames 设置为网络的适当值,然后选择“ 下一步”。

    Validate-DCB 配置向导的“适配器”页

    注释

  7. 在“数据中心桥接”页上,修改值以匹配组织的优先级策略名称和带宽预留设置,然后选择“下一步”。

    Validate-DCB 配置向导中的数据中心桥接页面

    注释

    在向导的上一页中选择 RDMA over RoCE,要求所有 NIC 和交换机端口都启用 DCB,以确保网络可靠性。

  8. 在“保存和部署”页上的“ 配置文件路径 ”框中,使用 .ps1 扩展名将配置文件保存到稍后可根据需要再次使用它的位置,然后选择“ 导出 ”开始运行 Validate-DCB 工具。

    • 可以选择通过完成页面的“部署到节点”部分来部署配置文件,其中包括使用Azure 自动化帐户部署配置,然后对其进行验证。 请参阅“创建Azure 自动化帐户以开始使用Azure 自动化。

    Validate-DCB 配置向导的“保存和部署”页

查看结果并修复错误

Validate-DCB 工具以两种单位输出结果:

  1. [Global Unit] 结果中列出了运行模态测试的先决条件和要求。
  2. [模式单位] 结果提供有关每个群集主机配置和最佳做法的反馈。

此示例通过显示失败计数为 0,展示了单个服务器对所有先决条件和模态单元测试进行扫描的成功结果。

Validate-DCB 全局单元和模式单元测试结果

以下步骤演示如何识别 vNIC SMB02 中的 Jumbo 数据包错误并修复此错误:

  1. Validate-DCB 工具的扫描结果显示失败计数错误为 1。

    Validate-DCB 工具扫描结果,显示 Failed Count 错误值为 1

  2. 向前滚动查看结果时,可以看到一条以红色显示的错误信息,表明主机 S046036 上 vNIC SMB02 的 Jumbo Packet 设置为默认大小 1514,但应设置为 9014。

    Validate-DCB 工具扫描结果显示巨型数据包大小设置错误

  3. 查看主机 S046036 上 vNIC SMB02 的 高级属性可以看到,Jumbo Packet 设置为默认值 Disabled

    服务器主机 Hyper-V 高级属性 Jumbo 数据包设置

  4. 修复错误需要启用 Jumbo 数据包功能并将其大小更改为 9014 字节。 在主机 S046036 上再次运行扫描会返回 0 的失败计数,从而确认了这一更改。

    Validate-DCB 扫描结果,确认服务器主机的 Jumbo 数据包设置已修复

若要详细了解如何解决 Validate-DCB 工具标识的错误,请参阅以下视频。

还可以脱机安装该工具。 对于脱机系统,请使用 Save-Module -Name Validate-DCB -Path c:\temp\Validate-DCB,然后将 c:\temp\Validate-DCB 中的模块移动到您的脱机系统。 有关详细信息,请观看以下视频。

验证群集

使用以下步骤验证Windows Admin Center中现有群集中的服务器。

  1. 在Windows Admin Center的“所有连接”下,选择要验证的 Azure Stack HCI 群集,然后选择“连接”。

    群集管理器仪表板显示有关群集的概述信息。

  2. 群集管理器仪表板上的 “工具”下,选择“ 服务器”。

  3. 在“ 清单 ”页上,选择群集中的服务器,然后展开 “更多 ”子菜单,然后选择“ 验证群集”。

  4. 在“ 验证群集 ”弹出窗口中,选择“ ”。

    验证群集弹出窗口

  5. 凭据安全服务提供程序(CredSSP) 弹出窗口中,选择“ ”。

  6. 提供凭据以启用 CredSSP ,然后选择“ 继续”。
    群集验证在后台运行,并在完成时提供通知,此时可以查看验证报告,如下一部分所述。

注释

验证群集服务器后,出于安全原因需要禁用 CredSSP。

禁用 CredSSP

成功验证服务器群集后,需要在每台服务器上禁用凭据安全支持提供程序(CredSSP)协议,以实现安全目的。 有关详细信息,请参阅 CVE-2018-0886

  1. 在Windows Admin Center的“所有连接”下,选择群集中的第一台服务器,然后选择“连接”。

  2. 在“ 概述 ”页上,选择“ 禁用 CredSSP”,然后在“ 禁用 CredSSP ”弹出窗口上,选择“ ”。

    步骤 2 的结果删除服务器概述页面顶部的红色 CredSSP ENABLED 横幅,并禁用其他服务器上的 CredSSP。

查看验证报告

现在,你已准备好查看群集验证报告。

可通过多种方式访问验证报告:

  • 在“ 清单 ”页上,展开“ 更多 ”子菜单,然后选择“ 查看验证报告”。

  • Windows Admin Center右上角,选择“通知铃”图标以显示“通知”窗格。 选择“群集已成功通过验证”通知,然后选择“转到故障转移群集验证报告”。

注释

服务器群集验证过程可能需要一些时间才能完成。 在进程运行时,请勿切换到Windows Admin Center中的另一个工具。 在 “通知 ”窗格中, “验证群集 ”通知下方的状态栏指示完成该过程。

使用 PowerShell 验证群集

还可以使用 Windows PowerShell 在服务器群集上运行验证测试并查看结果。 可以在设置群集之前和之后运行测试。

若要对服务器群集运行验证测试,请在管理电脑上运行 Get-ClusterTest-Cluster<服务器群集名称> PowerShell cmdlet,或者仅直接在该群集上运行 Test-Cluster cmdlet:

$Cluster = Get-Cluster -Name 'server-cluster1'
Test-Cluster -InputObject $Cluster -Verbose

有关更多示例和使用情况信息,请参阅 测试群集 参考文档。

Test-NetStack 是一种基于 PowerShell 的测试工具 GitHub,可用于对网络执行 ICMP、TCP 和 RDMA 流量测试,并确定潜在的网络构造和主机配置错误或操作不稳定。 使用 Test-NetStack 通过测试原生、合成和硬件卸载 (RDMA) 网络数据路径,验证网络数据路径并检查是否存在连接性、数据包碎片、低吞吐量和拥塞问题。

验证存储副本的复制

如果你正在使用存储副本在拉伸群集或群集间复制卷,则可以使用多个事件和 cmdlet 来查看复制状态。

在以下方案中,我们通过为两个站点创建复制组(RG)来配置存储副本,然后为 Site1(Server1、Server2)中的源服务器节点和目标(复制)服务器节点(Server3、Server4)指定数据卷和日志卷。

若要确定 Site1 中 Server1 的复制进度,请运行 Get-WinEvent 命令并检查事件 5015、5002、5004、1237、5001 和 2200:

Get-WinEvent -ComputerName Server1 -ProviderName Microsoft-Windows-StorageReplica -max 20

对于 Site2 中的 Server3,运行以下 Get-WinEvent 命令,以查看显示复制伙伴关系已创建的存储副本事件。 此事件会显示复制的字节数和所用的时间。 例如:

Get-WinEvent -ComputerName Server3 -ProviderName Microsoft-Windows-StorageReplica | Where-Object {$_.ID -eq "1215"} | FL

对于 Site2 中的 Server3,请运行 Get-WinEvent 命令并检查事件 5009、1237、5001、5015、5005 和 2200 以了解处理进度。 该序列中不应有关于错误的警告。 会有很多 1237 事件——这些事件表明有进展。

Get-WinEvent -ComputerName Server3 -ProviderName Microsoft-Windows-StorageReplica | FL

或者,副本的目标服务器组会始终显示剩余待复制的字节数,并且可以通过 PowerShell 使用 Get-SRGroup 进行查询。 例如:

(Get-SRGroup).Replicas | Select-Object numofbytesremaining

对于 Site2 中的 node Server3,运行以下命令并检查事件 5009、1237、5001、5015、5005 和 2200 以了解复制进度。 不应有错误警告。 但是,将有许多“1237”事件 - 这些事件只是指示进度。

Get-WinEvent -ComputerName Server3 -ProviderName Microsoft-Windows-StorageReplica | FL

作为不会终止的进度脚本:

while($true) {
$v = (Get-SRGroup -Name "Replication2").replicas | Select-Object numofbytesremaining
[System.Console]::Write("Number of bytes remaining: {0}`r", $v.numofbytesremaining)
Start-Sleep -s 5
}

若要在拉伸群集中获取复制状态,请使用 Get-SRGroupGet-SRPartnership

Get-SRGroup -Cluster ClusterS1
Get-SRPartnership -Cluster ClusterS1
(Get-SRGroup).replicas -Cluster ClusterS1

在站点之间确认数据复制成功后,可以创建 VM 和其他工作负荷。

另见