添加或删除 Azure Stack HCI 群集的服务器

适用于:Azure Stack HCI 版本 22H2 和 21H2

可以在 Azure Stack HCI 的群集中轻松地添加或删除服务器。 请记住,在 CPU 类型、内存、驱动器数量以及驱动器的类型和大小方面,每个新的物理服务器必须与群集中的其他服务器严格匹配。

无论何时添加或删除服务器,都还必须在之后执行群集验证,以确保群集正常运行。 这同时适用于非拉伸和拉伸群集。

准备阶段

第一步是从原始 OEM 获取新的 HCI 硬件。 添加要在群集中使用的新服务器硬件时,请始终参考 OEM 提供的文档。

  1. 将新的物理服务器置于机架中并进行正确的布线。
  2. 启用物理交换机端口,并根据情况调整访问控制列表 (ACL) 和 VLAN ID。
  3. 按照 OEM 说明在基板管理控制器 (BMC) 中配置正确的 IP 地址,并应用所有 BIOS 设置。
  4. 使用 OEM 提供的工具,将当前的固件基线应用于所有组件。
  5. 运行 OEM 验证测试以确保与现有群集服务器的硬件同质性。
  6. 在新服务器上安装 Azure Stack HCI 操作系统。 有关详细信息,请参阅部署 Azure Stack HCI
  7. 将服务器加入群集域。

将服务器添加到群集

使用 Windows 管理中心将服务器加入群集。

“添加服务器”屏幕

  1. 在“Windows 管理中心”中,从顶部下拉箭头中选择“群集管理器”。
  2. 在“群集连接”下,选择该群集。
  3. 在“工具”下,选择“服务器”。
  4. 在“服务器”下,选择“库存”选项卡。
  5. 在“库存”选项卡上,选择“添加”。
  6. 在“服务器名称”中,输入要添加的服务器的完全限定域名,单击“添加”,然后再次单击底部的“添加”。
  7. 验证服务器是否已成功添加到群集。

如果该节点已添加到某一个服务器,请参阅这些手动步骤来重新配置存储空间直通。

注意

如果为群集中服务器启用了 Arc,则新服务器将在下一次运行计划程序(每小时运行)期间自动启用 Arc。

将服务器添加到已启用 SDN 的群集

如果已将软件定义的网络 (SDN) 部署到要向其添加新服务器的群集上,Windows Admin Center 将不会自动将新服务器添加到 SDN 环境。 必须使用 SDN Express 脚本将新服务器添加到群集的 SDN 基础结构。

运行脚本之前,请确保创建虚拟交换机,并将服务器成功添加到群集。 此外,请确保服务器已暂停,以便工作负载无法移动到该服务器。

  1. 从 SDN GitHub 存储库下载最新版本的 SDN Express PowerShell 脚本

  2. 在新添加的服务器上运行以下 PowerShell cmdlet:

    Import-Module SDNExpressModule.PSM1 -verbose
    $NCURI = "Insert NC URI"
    $creds = Get-Credential
    Add-SDNExpressHost -RestName $NCURI -VirtualSwitchName "Insert vSwitch Name" -ComputerName "Insert Name" -HostPASubnetPrefix "Example: 172.23.0.1/24" -Credential $creds
    

    其中:

    • NCURI 是采用以下格式的网络控制器 REST API:"https://<name of the Network Controller REST API>"。 例如:https://mync.contoso.local"
    • ComputerName 是要添加的服务器的完全限定的域名 (FQDN)
    • HostPASubnetPrefix 是提供商地址 (PA) 网络的地址前缀

将服务器添加到 Arc VM 托管群集

若要将服务器添加到 Arc VM 托管群集,必须在将新服务器添加到群集后在其上启用 Arc VM 管理。

按照以下步骤将服务器添加到 Azure Arc VM 托管群集:

  1. 若要将服务器添加到 Arc VM 托管群集,请运行以下命令:

    Add-ClusterNode -Cluster Cluster1 -Name $nodeName
    
  2. 若要在新添加的服务器上启用 Arc VM 管理,请运行以下命令:

    New-MocPhysicalNode -nodeName $nodeName
    

从群集中删除服务器

请记住,删除服务器时,也会删除与该服务器关联的所有虚拟机 (VM)、驱动器和工作负载。

有关删除群集的详细信息,请参阅删除群集

卸载 VM 扩展

在从群集中删除服务器之前,必须从已启用 Azure Arc 的服务器中卸载任何 VM 扩展,否则,如果以后再次添加该服务器,可能会在安装扩展时出现问题。

使用 Azure 门户Azure CLIAzure PowerShell 删除 VM 扩展。

使用 PowerShell 删除服务器

使用 PowerShell 从群集中删除服务器:

  1. 在要删除的服务器上运行 Disable-AzureStackHCIArcIntegration
  2. 在管理 PC 或群集中的另一台服务器运行 Remove-ClusterNode -Name <ServerName>

使用 Windows Admin Center 删除服务器

使用 Windows Admin Center 从群集中删除服务器的步骤类似于向群集添加服务器的步骤。

“删除服务器”对话框

  1. 在“Windows 管理中心”中,从顶部下拉箭头中选择“群集管理器”。
  2. 在“群集连接”下,选择该群集。
  3. 在“工具”下,选择“服务器”。
  4. 在“服务器”下,选择“库存”选项卡。
  5. 在“库存”选项卡上,选择要删除的服务器,然后选择“删除”。
  6. 若要同时从存储池中删除任何服务器驱动器,请启用该复选框。
  7. 验证服务器是否已成功从群集中删除。

每当在群集中添加或删除服务器时,请确保随后运行群集验证测试。

从 Arc VM 托管群集中删除服务器

若要从 Arc VM 托管群集中删除服务器,必须先在服务器上禁用 Arc VM 管理,然后才能将其从群集中删除。

按照以下步骤从 Arc VM 托管群集中删除服务器:

  1. 若要在要删除的服务器上禁用 Arc VM 管理,请运行以下命令:

    Remove-MocPhysicalNode -nodeName $nodeName
    
  2. 若要从群集中删除服务器,请运行以下命令:

    Remove-ClusterNode -Cluster Cluster1 -Name $nodeName
    

向拉伸群集添加服务器对

拉伸群集要求每个站点中有相同数量的服务器节点和相同数量的驱动器。 向拉伸群集添加服务器对时,会立即将其驱动器添加到拉伸群集中两个站点的存储池中。 如果每个站点上的存储池的大小与添加时的大小不同,系统会将其拒绝。 这是因为存储池的大小在两个站点中必须相同。

使用 Windows PowerShell 向拉伸群集添加服务器或从中删除服务器。 使用 ClusterFaultDomainXMLClusterFaultDomainXML cmdlet 时,你首先修改站点(容错域)信息,然后再添加服务器。

然后,你可以使用 Add-ClusterNode cmdlet 同时向每个站点添加服务器对,还可以同时添加每台新服务器的驱动器。

通常,你可以从远程计算机(而不是群集中的服务器)管理群集。 此远程计算机称为管理计算机。

注意

从某一管理计算机运行 PowerShell 命令时,请将 -Cluster 参数与你管理的群集的名称配合使用。

好了,让我们开始吧:

  1. 使用以下 PowerShell cmdlet 确定群集的状态:

    返回群集中活动服务器的列表:

    Get-ClusterNode
    

    返回群集存储池的统计信息:

    Get-StoragePool pool*
    

    列出哪些服务器位于哪个站点(容错域):

    Get-ClusterFaultDomain
    
  2. 在记事本或其他文本编辑器中打开 Sites.xml 文件:

    Get-ClusterFaultDomainXML | out-file sites.xml
    
    notepad
    
  3. 在你的管理电脑本地导航到 Sites.xml 文件所在的位置,打开该文件。 Sites.xml 文件类似于以下内容:

    <Topology>
        <Site Name="Site1" Description="" Location="">
            <Node Name="Server1" Description="" Location="">
            <Node Name="Server2" Description="" Location="">
        </Site>
        <Site Name="Site2" Description="" Location="">
            <Node Name="Server3" Description="" Location="">
            <Node Name="Server4" Description="" Location="">
        </Site>
    <Topology>
    
  4. 使用此示例,你可以向每个站点添加服务器(Server5Server6),如下所示:

    <Topology>
        <Site Name="Site1" Description="" Location="">
            <Node Name="Server1" Description="" Location="">
            <Node Name="Server2" Description="" Location="">
            <Node Name="Server5" Description="" Location="">
        </Site>
        <Site Name="Site2" Description="" Location="">
            <Node Name="Server3" Description="" Location="">
            <Node Name="Server4" Description="" Location="">
            <Node Name="Server6" Description="" Location="">
        </Site>
    <Topology>
    
  5. 修改当前站点(容错域)信息。 第一个命令设置一个变量来获取 Sites.xml 文件的内容并输出该内容。 第二个命令根据变量 $XML 来设置修改。

    $XML = Get-Content .\sites.xml | out-string
    Set-ClusterFaultDomainXML -xml $XML
    
  6. 验证你所做的修改是否正确:

    Get-ClusterFaultDomain
    
  7. 使用 Add-ClusterNode cmdlet 向群集添加服务器对:

    Add-ClusterNode -Name Server5,Server6
    

成功添加服务器后,关联的驱动器会自动添加到每个站点的存储池。 最后,运行状况服务会创建一个存储作业来包括新的驱动器。

从拉伸群集中删除服务器对

在从群集中删除服务器对之前,必须从已启用 Azure Arc 的服务器中卸载任何 VM 扩展,否则,如果以后再次添加该服务器,可能会在安装扩展时出现问题。

使用 Azure 门户Azure CLIAzure PowerShell 删除 VM 扩展。

从拉伸群集中删除服务器对类似于添加服务器对的过程,但使用的是 Remove-ClusterNode cmdlet。

  1. 使用以下 PowerShell cmdlet 确定群集的状态:

    返回群集中活动服务器的列表:

    Get-ClusterNode
    

    返回群集存储池的统计信息:

    Get-StoragePool pool*
    

    列出哪些服务器位于哪个站点(容错域):

    Get-ClusterFaultDomain
    
  2. 在记事本或其他文本编辑器中打开 Sites.xml 文件:

    Get-ClusterFaultDomainXML | out-file sites.xml
    
    notepad
    
  3. 使用前面的示例,在 Sites.xml 文件中删除 <Node Name="Server5" Description="" Location=""> 和每个站点的 <Node Name="Server6" Description="" Location=""> XML 条目。

  4. 使用以下两个 cmdlet 修改当前站点(容错域)信息:

    $XML = Get-Content .\sites.xml | out-string
    Set-ClusterFaultDomainXML -xml $XML
    
  5. 验证你所做的修改是否正确:

    Get-ClusterFaultDomain
    
  6. 在要删除的服务器(Server5 和 Server6)上运行以下 cmdlet 以禁用 Azure Arc 集成:

    Disable-AzureStackHCIArcIntegration
    
  7. 使用 Remove-ClusterNode cmdlet 从群集中删除服务器对:

    Remove-ClusterNode -Name Server5,Server6
    

成功删除服务器后,关联的驱动器会自动从站点池中删除。 最后,运行状况服务会创建一个存储作业来删除这些驱动器。

后续步骤

  • 添加或删除服务器后,应当验证群集。 有关详细信息,请参阅验证群集