管理网络 ATC

适用于:Azure Stack HCI 版本 22H2

本文介绍如何在部署网络 ATC 后对其进行管理。 网络 ATC 可简化 Azure Stack HCI 群集的部署和网络配置管理过程。 使用 Windows PowerShell 管理网络 ATC。

适用于:Windows Server 2025(预览版)

本文介绍如何在部署网络 ATC 后对其进行管理。 网络 ATC 可简化 Windows Server 群集的部署和网络配置管理过程。 使用 Windows PowerShell 管理网络 ATC。

添加服务器节点

可以向群集中添加节点。 群集中的每个节点都接收同一种意向,从而提高群集的可靠性。 新服务器节点必须满足使用网络 ATC 进行主机联网的要求和最佳做法部分中列出的所有要求。

可以向群集中添加节点。 群集中的每个节点都接收同一种意向,从而提高群集的可靠性。 新服务器节点必须满足使用网络 ATC 进行主机联网的要求和最佳做法部分中列出的所有要求。

在此任务中,你将向群集添加其他节点,并观察如何在群集中的所有节点之间强制实施一致的网络配置。

  1. 使用 Add-ClusterNode cmdlet 将更多(未配置)节点添加到群集。 此时只需要具备对群集的管理访问权限。 群集中每个节点的所有 pNIC 都应命名相同。

    Add-ClusterNode -Cluster CLUSTER01
    Get-ClusterNode
    
  2. 检查所有群集节点的状态。 需要在版本 21H2 中使用 -ClusterName 参数。 网络 ATC 将自动检测版本 22H2 和更高版本中的群集名称。

    Get-NetIntentStatus -ClusterName CLUSTER01
    
    Get-NetIntentStatus
    

    注意

    如果要添加到群集的其中一台服务器缺少其他服务器上存在的网络适配器,则 Get-NetIntentStatus 会报告错误 PhysicalAdapterNotFound

  3. 使用 Get-NetIntentStatus 检查所有节点的预配状态。 该 cmdlet 会报告两个节点的配置。 所需时间可能与原始节点预配时长接近。

    Get-NetIntentStatus -ClusterName CLUSTER01
    
    Get-NetIntentStatus
    

    还可以同时向群集中添加多个节点。

修改存储或管理系统的默认 VLAN

可以使用网络 ATC 指定的默认 VLAN,也可以使用特定于环境的值。 为此,请在 Add-NetIntent 上使用 -ManagementVLAN 和 -StorageVLANs 参数。

Add-NetIntent -Name MyIntent -ClusterName CLUSTER01 -StorageVLANs 101, 102 -ManagementVLAN 10
Add-NetIntent -Name MyIntent -StorageVLANs 101, 102 -ManagementVLAN 10

从意向中添加或删除网络适配器

此任务帮助你更新分配给意向的网络适配器。 如果群集中的物理适配器发生更改,可以使用 Update-NetIntentAdapter 更新相关意向。

本例安装了两个新的适配器 pNIC03 和 pNIC04,我们希望在名为“Cluster_Compute”的意向中使用它们。

  1. 在其中一个群集节点上,运行 Get-NetAdapter 以检查两个适配器是否都存在,并报告每个群集节点上的“正常运行”状态。

    Get-NetAdapter -Name pNIC03, pNIC04 -CimSession (Get-ClusterNode).Name | Select Name, PSComputerName
    
  2. 运行以下命令以更新意向,以包含新旧网络适配器。

     Update-NetIntentAdapter -Name Cluster_Compute -AdapterName pNIC01,pNIC02,pNIC03,pNIC04 -ClusterName CLUSTER01
    
    Update-NetIntentAdapter -Name Cluster_Compute -AdapterName pNIC01,pNIC02,pNIC03,pNIC04
    
  3. 检查网络适配器是否已成功添加到意向中。

        Get-NetIntent -Name Cluster_Compute -ClusterName CLUSTER01
    
        Get-NetIntent -Name Cluster_Compute 
    
    

全局替代和群集网络设置

适用于 Azure Stack HCI 版本 22H2 和更高版本。

全局替代和群集网络设置是网络 ATC 在版本 22H2(和更高版本)中引入的新功能。 网络 ATC 主要由两种全局替代组成:代理配置和群集网络功能。

群集网络功能

在本节中,我们将介绍随 22H2 版本一起发布的一组新的群集网络功能。 新的群集网络功能可以启用和优化群集网络命名,通过控制性能选项、带宽限制以及管理实时迁移来管理群集网络。

群集网络命名

说明:默认情况下,故障转移群集始终按如下所示命名唯一子网:“群集网络 1”、“群集网络 2”等。 这与网络的实际使用无关,因为群集无法知道你打算如何使用网络 - 直到现在!

通过网络 ATC 定义了你的配置后,我们现在来了解将如何使用子网,并且我们可以更恰当地命名群集网络。 例如,我们知道哪个子网用于管理:存储网络 1、存储网络 2(或其他网络,如果适用)。 因此,我们能够以更符合上下文的方式来命名网络。

在以下屏幕截图中,可以看到存储意向已应用于这一组适配器。 显示了管理员可能想要调查的另一个未知群集网络。

群集网络选择的屏幕截图。

实时迁移网络选择

此值启用或禁用基于意向的实时迁移群集网络选择逻辑。 默认已启用此逻辑 ($true),因此会根据提交的意向信息选择群集网络。 如果禁用了实时迁移网络选择,用户可以设置实时迁移网络,默认行为将还原为没有网络 ATC 时的预期行为。

启用虚拟机迁移:性能选择

此值启用或禁用基于意向的虚拟机实时迁移传输选择。 默认情况下会启用此逻辑,因此系统会自动确定最佳实时迁移传输,例如:SMB、压缩、TCP。

如果已禁用:

  • 实时迁移传输选择将使用 VirtualMachineMigrationPerformanceOption 替代值中指定的传输。
  • 如果未指定 VirtualMachineMigrationPerformanceOption 替代值,则网络 ATC 将恢复为网络 ATC 不存在时的行为。
  • 如果为 null,但配置了 VirtualMachineMigrationPerformanceOption,则将此选项配置为 $false 并使用 VirtualMachineMigrationPerformanceOption 替代中指定的选项
虚拟机迁移性能选项

网络 ATC 将实时迁移传输配置为 TCPIP、压缩或 SMB。 如果为 null,则系统会根据系统配置和功能计算最佳选项。

最大并发虚拟机迁移数

网络 ATC 将默认的并发虚拟机迁移数量设置为 1。 此属性的可能允许值范围为 1 到 10。

最大 SMB 迁移带宽

此值对 SMB 传输的实时迁移流量强制实施特定的带宽限制(以 Gbps 为单位),以防止消耗 SMB 流量类。 仅当实时迁移传输为 SMB 时,此值才可用。 将计算默认值。

自定义群集网络设置

群集网络功能通过其定义的默认值工作。 由于禁用群集网络功能不会导致方案不受支持的情况,因此网络 ATC 提供了一个 globaloverride 选项。 可以使用全局替代来调整属性并根据需要自定义群集网络功能属性。

若要使用网络 ATC 添加 GlobalOverride,请运行以下命令:

$clusterOverride = New-NetIntentGlobalClusterOverrides

“clusterOverride”变量具有以下属性:

群集替代对象的屏幕截图。

为替代设置任何属性后,可以使用以下命令将其添加为群集的 GlobalOverride:

Set-NetIntent -GlobalClusterOverrides $clusterOverride

若要验证是否成功部署了 clusterOverride,请运行以下命令:

Get-NetIntentStatus -Globaloverrides

若要删除 GlobalClusterOverride,请运行以下命令:

Remove-NetIntent -GlobalOverrides $clusterOverride

代理配置

代理与现有的 ATC 替代不同,因为它不与特定意图相关联。 事实上,我们支持在没有意向的情况下进行代理配置。 我们通过在 Add/Set/Get-NetIntent 上实现新的全局替代参数来最好地支持这种方案,类似于群集网络功能。

New-NetIntentGlobalProxyOverrides 命令用于创建类似于现有 QoS、RSS 和 SwitchConfig 替代的替代对象。 该命令有两个参数集:

默认参数集

ProxyServer:ProxyServer 参数将字符串作为输入,这些字符串表示用于处理 https 流量的代理服务器的 URL。 ProxyServer 是设置代理时必需的参数。

ProxyBypass:ProxyBypass 参数采用应绕过代理访问的站点列表。 若要绕过所有短名称主机,请使用 local

AutoDetect:AutoDetect 是一个 true 或 false 参数,指示是否应启用 Web 代理自动发现 (WPAD)。

AutoDetect 参数集

AutoConfigUrl:AutoConfigUrl 参数采用一个字符串作为输入,该字符串包含用于处理 http 和/或 https 流量的代理服务器的 URL。 对于这两个流量类,请使用分号分隔。 这是必需参数。

AutoDetect:与上面的 AutoDetect 参数类似,它是一个 true 或 false 参数,指示是否应启用 Web 代理自动发现 (WPAD)。

设置代理

可通过以下方式设置代理配置:

$ProxyOverride = New-NetIntentGlobalProxyOverrides -ProxyServer https://itg.contoso.com:3128 -ProxyBypass *.foo.com

使用 AutoConfigURL 开关,可通过以下方式设置代理配置:

$ProxyOverride = New-NetIntentGlobalProxyOverrides -AutoConfigUrl https://itg.contoso.com

可以如下所示为群集添加 GlobalProxyOverride:

Set-NetIntent -GlobalProxyOverride $ProxyOverride

如下所示删除群集的 GlobalProxyOverride:

Remove-NetIntent -GlobalOverride $ProxyOverride

最后,若要访问任何全局替代、代理或群集,可以运行以下命令:

$Obj1 = Get-NetIntent -GlobalOverride
$Obj1

更具体地讲,可以通过调用 $Obj1 的相应参数来分别访问代理和群集全局替代:

$Obj1.ProxyOverride
$Obj1.ClusterOverride

更新或重写网络设置

此任务帮助你替代已部署的默认配置。 此示例修改 SMB 直通的默认带宽预留量。

重要

建议使用基于 Azure 最佳做法的默认设置。

  1. 获取可能的替代 cmdlet 列表。 使用通配符查看可用选项:

    Get-Command -Noun NetIntent*Over* -Module NetworkATC
    
  2. 为 DCB 服务质量 (QoS) 配置创建替代对象:

    $QosOverride = New-NetIntentQosPolicyOverrides
    $QosOverride
    
  3. 修改 SMB 直通的带宽百分比:

    $QosOverride.BandwidthPercentage_SMB = 25
    $QosOverride
    

    注意

    仅显示替代的属性的值。

  4. 提交指定替代的意向请求:

    Set-NetIntent -Name Cluster_ComputeStorage -QosPolicyOverrides $QosOverride
    
  5. 等待预配状态完成:

    Get-NetIntentStatus -Name Cluster_ComputeStorage | Format-Table IntentName, Host, ProvisioningStatus, ConfigurationStatus
    
  6. 检查是否在所有群集节点上正确设置了替代。 在此示例中,SMB_Direct 流量类替代为带宽百分比 25%:

    Get-NetQosTrafficClass -Cimsession (Get-ClusterNode).Name | Select PSComputerName, Name, Priority, Bandwidth
    

在 VM 中测试网络 ATC

在 VM 中运行 Azure Stack HCI 对于测试环境很有用。 为此,请将适配器属性替代添加到禁用 NetworkDirect 适配器属性的意向中:

$AdapterOverride = New-NetIntentAdapterPropertyOverrides
$AdapterOverride.NetworkDirect = 0
Add-NetIntent -Name MyIntent -AdapterName vmNIC01, vmNIC02 -Management -Compute -Storage -AdapterPropertyOverrides $AdapterOverride

注意

确保每个 VM 上有多个虚拟 CPU。

删除意向

有时你可能想要删除所有意向并重新开始,例如,测试不同的配置。 虽然可以使用 Remove-NetIntent cmdlet 删除意向,但这样做不会清理为意向创建的虚拟交换机和 DCB/NetQoS 配置。 网络 ATC 强调不要破坏系统上的内容,这通常是一件好事,但也意味着你必须执行一些手动步骤才能重新开始。

若要删除所有网络意向并删除网络 ATC 为这些意向创建的虚拟交换机和 NetQoS 配置,请在群集中的某台服务器(是哪台并不重要)本地运行的 PowerShell 会话中运行以下脚本。

$clusname = Get-Cluster
$clusternodes = Get-ClusterNode    
$intents = Get-NetIntent -ClusterName $clusname

foreach ($intent in $intents)
{
    Remove-NetIntent -Name $intent.IntentName -ClusterName $clusname
}

foreach ($intent in $intents)
{
    foreach ($clusternode in $clusternodes)
    {
        Remove-VMSwitch -Name "*$($intent.IntentName)*" -ComputerName $clusternode -ErrorAction SilentlyContinue -Force
    }
}

foreach ($clusternode in $clusternodes)
{    
    New-CimSession -ComputerName $clusternode -Name $clusternode
    $CimSession = Get-CimSession
    Get-NetQosTrafficClass -CimSession $CimSession | Remove-NetQosTrafficClass -CimSession $CimSession
    Get-NetQosPolicy -CimSession $CimSession | Remove-NetQosPolicy -Confirm:$false -CimSession $CimSession
    Get-NetQosFlowControl -CimSession $CimSession | Disable-NetQosFlowControl -CimSession $CimSession
    Get-CimSession | Remove-CimSession
}

若要删除每节点部署的配置,请在每个节点上复制并粘贴以下命令,以删除所有现有意向及其对应的 vSwitch:

$intents = Get-NetIntent
foreach ($intent in $intents)
{
    Remove-NetIntent -Name $intent.IntentName
    Remove-VMSwitch -Name "*$($intent.IntentName)*" -ErrorAction SilentlyContinue -Force
}

Get-NetQosTrafficClass | Remove-NetQosTrafficClass
Get-NetQosPolicy | Remove-NetQosPolicy -Confirm:$false
Get-NetQosFlowControl | Disable-NetQosFlowControl

部署后任务

网络 ATC 部署后要完成的任务取决于所使用的 Azure Stack HCI 版本。 对于 Azure Stack HCI 21H2 群集:

  • 向存储适配器添加 IP 地址:在存储 VLAN 上使用 DHCP,或使用 NetIPAdress cmdlet 设置静态 IP 地址。 不能使用为无法从 DHCP 服务器获取地址的适配器提供的自动专用 IP 寻址 (APIPA) 地址。

  • 设置 SMB 带宽限制:如果实时迁移使用 SMB 直通 (RDMA),请配置带宽限制,以确保实时迁移不会消耗存储空间直通和故障转移群集使用的所有带宽。

  • 拉伸群集配置:若要将 Stretch S2D 添加到网络 ATC 托管系统,必须在网络 ATC 实现指定的意向后,手动添加适当的配置(包括 vNIC 等)。

现在,可以使用 Azure Stack HCI 22H2 中的网络 ATC 部署存储适配器的自动 IP 寻址、SMB 带宽限制和 Stretch 配置。 有关详细信息,请参阅:

现在,可以使用 Azure Stack HCI 22H2 中的网络 ATC 部署存储适配器的自动 IP 寻址、SMB 带宽限制和 Stretch 配置。 有关详细信息,请参阅:

验证自动修正

网络 ATC 可确保部署的配置在所有群集节点上保持不变。 在此可选部分中,将修改配置(无需替代)模拟意外的配置更改,并观察如何通过修正错误配置的属性来提高系统的可靠性。

  1. 检查适配器的现有 MTU (JumboPacket) 值:

    Get-NetAdapterAdvancedProperty -Name pNIC01, pNIC02, vSMB* -RegistryKeyword *JumboPacket -Cimsession (Get-ClusterNode).Name
    
  2. 在不指定替代的情况下修改其中一个物理适配器的 MTU。 这会模拟必须修正的意外更改或“配置偏移”。

    Set-NetAdapterAdvancedProperty -Name pNIC01 -RegistryKeyword *JumboPacket -RegistryValue 4088
    
  3. 验证适配器的现有 MTU (JumboPacket) 值是否已修改:

    Get-NetAdapterAdvancedProperty -Name pNIC01, pNIC02, vSMB* -RegistryKeyword *JumboPacket -Cimsession (Get-ClusterNode).Name
    
  4. 重试配置。 执行此步骤只是为了加快修正。 网络 ATC 将自动修正此配置。

    Set-NetIntentRetryState -ClusterName CLUSTER01 -Name Cluster_ComputeStorage -NodeName Node01
    
  5. 验证一致性检查是否已完成:

    Get-NetIntentStatus -ClusterName CLUSTER01 -Name Cluster_ComputeStorage
    
  6. 验证适配器的 MTU (JumboPacket) 值是否返回到预期值:

    Get-NetAdapterAdvancedProperty -Name pNIC01, pNIC02, vSMB* -RegistryKeyword *JumboPacket -Cimsession (Get-ClusterNode).Name
    

后续步骤