管理網路 ATC

適用於:Azure Stack HCI 21H2 版

本文探討在部署網路 ATC 後管理的方式。 網路 ATC 簡化了 Azure Stack HCI 叢集的部署和網路組態管理。 您可以使用 Windows PowerShell 來管理網路 ATC。

新增伺服器節點

您可以將節點新增至叢集。 叢集中的每個節點會接收相同的意圖,以改善叢集的可靠性。 新的伺服器節點必須符合使用網路 ATC 進行主機網路的<需求與最佳做法>一節所列出的所有需求。

在此工作中,您會將額外的節點新增至叢集並觀察在叢集的所有節點上如何強制執行一致的網路組態。

  1. 使用 Add-ClusterNode Cmdlet 將額外的 (未設定) 節點新增至叢集。 您目前僅需要叢集的管理存取權。 叢集中的每個節點應都有相同名稱的 pNIC。

    Add-ClusterNode -Cluster HCI01
    Get-ClusterNode
    
  2. 使用 -ClusterName 參數檢查所有叢集節點上的狀態。

    Get-NetIntentStatus -ClusterName HCI01
    

    注意

    如果所要新增的其中一個伺服器缺少存在於其他伺服器的網路介面卡,則 Get-NetIntentStatus 會回報錯誤 PhysicalAdapterNotFound

  3. 使用 Get-NetIntentStatus 檢查所有節點的佈建狀態。 此 Cmdlet 會回報兩個節點的設定。 請注意,如同原始節點,這可能也需要相似的時間來佈建。

    Get-NetIntentStatus -ClusterName HCI01
    

您也可以一次將多個節點新增至叢集。

修改儲存裝置或管理系統的 VLAN

您可以使用網路 ATC 指定的預設 VLAN,或使用您環境特定的值。 若要執行此動作,請使用 Add-NetIntent 上的 -ManagementVLAN 和 -StorageVLANs 參數

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

從意圖新增或移除網路介面卡

此工作將協助您更新指派給意圖的網路介面卡。 如果您對叢集中的實體介面卡變更,則可使用 Update-NetIntentAdapter 更新相關的意圖。

在此範例中,我們已安裝 pNIC03 和 pNIC04 的兩個新介面卡,並要在名為 'Cluster_Compute' 的意圖中使用。

  1. 在其中一個叢集節點上,執行 Get-NetAdapter 檢查兩個介面卡是否存在,以及每個叢集節點是否回報 'UP' 的狀態。

    Get-NetAdapter -Name pNIC03, pNIC04 -CimSession (Get-ClusterNode).Name | Select Name, PSComputerName
    
  2. 執行下列命令,更新意圖以包含舊和新的網路介面卡。

     Update-NetIntentAdapter -Name Cluster_Compute -AdapterName pNIC01,pNIC02,pNIC03,pNIC04 -ClusterName HCI01
    
  3. 檢查是否已成功將網路介面卡新增至意圖。

    Get-NetIntent -Name Cluster_Compute -ClusterName HCI01
    

更新或覆寫網路設定

此工作將協助您覆寫已部署的預設設定。 此範例會修改 SMB 直接傳輸的預設頻寬保留。

重要

我們建議使用預設設定,其是以 Microsoft 最佳做法為基礎。

  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. 檢查所有叢集節點上已正確設定覆寫。 在此範例中,已使用頻寬百分比 25% 覆寫 SMB_Direct 流量類別:

    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 針對這些意圖所建立的虛擬交換器和 NetNoS 設定,請在 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 部署之後完成,包含下列項目:

  • 將 DHCP 或靜態 IP 位址新增至儲存裝置介面卡:在儲存裝置 VLAN 上使用 DHCP,或使用 NetIPAdress Cmdlet 設定靜態 IP 位址。 若自動私人 IP 定址 (APIPA) 位址已指定給無法從 DHCP 伺服器取得位址的介面卡,則您無法使用。

  • 設定 SMB 頻寬限制:如果即時移轉使用 SMB 直接傳輸 (RDMA),請設定頻寬限制以確保即時移轉不會用盡儲存空間直接存取和容錯移轉叢集所使用的所有頻寬。

  • 延展式叢集設定:若要將 Stretch S2D 新增至 ATC 管理系統,則您必須在 ATC 已實作指定的意圖後,手動新增適當的設定 (包含 vNIC 等)。 此外也存在下列限制:

    • 叢集中的所有節點必須使用相同的意圖。
    • 針對儲存體複本,沒有提供自動佈建。

驗證自動補救

網路 ATC 確保部署的設定在所有叢集節點上皆保持相同。 在此選擇性章節中,我們將修改模擬意外設定變更的設定 (無需覆寫),並透過補救設定錯誤的屬性來觀察改善系統的可靠性程度。

  1. 檢查介面卡的現有 MTU (JumboPacket) 值:

    Get-NetAdapterAdvancedProperty -Name pNIC01, pNIC02, vSMB* -RegistryKeyword *JumboPacket -Cimsession (Get-ClusterNode).Name
    
  2. 修改其中一個實體介面卡的 MTU,而不須指定覆寫。 這會模擬意外的變更或必須補救的「設定飄移」。

    Set-NetAdapterAdvancedProperty -Name pNIC01 -RegistryKeyword *JumboPacket -RegistryKeyword *JumboPacket -RegistryValue 4088
    
  3. 確認已修改介面卡的現有 MTU (JumboPacket) 值:

    Get-NetAdapterAdvancedProperty -Name pNIC01, pNIC02, vSMB* -RegistryKeyword *JumboPacket -Cimsession (Get-ClusterNode).Name
    
  4. 重試設定。 執行此步驟僅會加速補救。 網路 ATC 將自動補救此設定。

    Set-NetIntentRetryState -ClusterName HCI01 -Name Cluster_ComputeStorage
    
  5. 確認已完成一致性檢查:

    Get-NetIntentStatus -ClusterName HCI01 -Name Cluster_ComputeStorage
    
  6. 確認介面卡的 MTU (JumboPacket) 值已回到預期的值:

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

如需更多驗證範例,請參閱網路 ATC 示範

後續步驟