管理網路 ATC

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

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

新增伺服器節點

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

在這項工作中,您會將其他節點新增至叢集,並觀察如何在叢集中的所有節點上強制執行一致的網路設定。

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

    Add-ClusterNode -Cluster HCI01
    Get-ClusterNode
    
  2. 檢查所有叢集節點的狀態。 您必須在 21H2 版中使用 -ClusterName 參數。 網路 ATC 會自動偵測 22H2 版和更新版本的叢集名稱。

    Get-NetIntentStatus -ClusterName HCI01
    

    注意

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

  3. 使用 Get-NetIntentStatus 檢查所有節點的佈建狀態。 此 Cmdlet 會回報兩個節點的設定。 這可能需要一段時間才能布建為原始節點。

    Get-NetIntentStatus -ClusterName HCI01
    

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

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

您可以使用網路 ATC 指定的預設 VLAN,或使用您環境特定的值。 若要這樣做,請使用 Add-NetIntent 上的 -ManagementVLAN 和 -StorageVLAN 參數。

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
    

全域覆寫和叢集網路設定

適用于 Azure Stack HCI 版本 22H2 和更新版本。

全域覆寫和叢集網路設定是網路 ATC 在 22H2 (版和更新版本中引進的新功能,) 。 網路 ATC 主要包含兩種全域覆寫:Proxy 設定和叢集網路功能。

叢集網路功能

在本節中,我們將探討一組使用 22H2 版本發行的新叢集網路功能。 新的叢集網路功能可啟用和優化叢集網路命名、藉由控制效能選項、頻寬限制和管理即時移轉來管理叢集網路。

叢集網路命名

描述:根據預設,容錯移轉叢集一律會命名唯一的子網,如下所示:「叢集網路 1」、「叢集網路 2」等等。 這不會連線到網路的實際使用,因為叢集無法知道您打算如何使用網路的方式, 直到現在為止!

一旦您透過網路 ATC 定義組態,我們現在會瞭解子網的使用方式,並可更適當地命名叢集網路。 例如,我們知道哪一個子網用於管理、儲存體網路 1、儲存體網路 2 (等等,如果適用的話) 。 因此,我們可以將網路命名為更內容相關。

在下列螢幕擷取畫面中,您可以看到儲存意圖已套用至這組介面卡。 另一個未知的叢集網路會顯示系統管理員可能想要調查的叢集網路。

叢集網路選取專案的螢幕擷取畫面。

即時移轉網路選取專案

此值會啟用或停用意圖型即時移轉叢集網路選取邏輯。 根據預設,這會啟用 ($true) ,並根據提交的意圖資訊來選取叢集網路。 如果已停用即時移轉網路選取,則使用者可以設定即時移轉網路,而預設行為會還原為缺少網路 ATC 時所預期的行為。

啟用虛擬機器移轉:效能選取

此值會啟用或停用虛擬機器即時移轉傳輸的意圖型選取。 根據預設,這會啟用,並導致系統自動判斷最佳的即時移轉傳輸,例如:SMB、壓縮、TCP。

如果停用:

  • 即時移轉傳輸選取專案會使用 VirtualMachineMigrationPerformanceOption 覆寫值中指定的傳輸。
  • 如果未指定 VirtualMachineMigrationPerformanceOption 覆寫值,Network ATC 會在網路 ATC 不存在時還原為行為。
  • 如果為 null,但已設定 VirtualMachineMigrationPerformanceOption,請將此選項設定為$false並使用 VirtualMachineMigrationPerformanceOption 覆寫中指定的選項
虛擬機器移轉效能選項

網路 ATC 會將即時移轉傳輸設定為 TCPIP、壓縮或 SMB。 如果為 null,系統會根據系統組態和功能來計算最佳選項。

並行虛擬機器移轉上限

網路 ATC 會將並行虛擬機器移轉的預設數目設定為一個。 此屬性的可能允許值範圍是 1 到 10。

SMB 移轉頻寬上限

此值會在 SMB 傳輸的即時移轉流量上強制執行特定頻寬限制, (Gbps) ,以防止使用 SMB 流量類別。 只有在即時移轉傳輸為 SMB 時,才能使用此值。 預設值是計算的。

自訂叢集網路設定

叢集網路功能可透過其定義的預設值運作。 由於停用叢集網路功能不會讓您進入不支援的案例中,因此網路 ATC 有 globaloverride 的選項。 您可以使用全域覆寫來調整屬性,並根據您的需求自訂叢集網路功能屬性。

若要使用網路 ATC 新增 GlobalOverride:

$clusterOverride = New-NetIntentGlobalClusterOverrides

'clusterOverride' 變數具有下列屬性:

叢集覆寫物件的螢幕擷取畫面。

設定覆寫的任何屬性之後,您可以使用下列命令,將其新增為叢集的 GlobalOverride:

Set-NetIntent -GlobalClusterOverrides $clusterOverride

若要確認叢集部署成功Override,請執行:

Get-NetIntentStatus -Globaloverrides

若要移除 GlobalClusterOverride,請執行下列命令:

Remove-NetIntent -GlobalOverrides $clusterOverride

Proxy 組態

Proxy 與現有的 ATC 覆寫不同,因為它不會系結至特定意圖。 事實上,當沒有任何意圖時,我們支援 Proxy 組態。 我們藉由在 Add/Set/Get-NetIntent 上實作新的全域覆寫參數,以支援此案例,類似于叢集網路功能。

命令 New-NetIntentGlobalProxyOverrides 是用來建立類似現有 QoS、RSS 和 SwitchConfig 覆寫的覆寫物件。 此命令會有兩個參數集:

預設參數集

ProxyServer:ProxyServer 參數會接受字串作為輸入,代表要用於 HTTPs 流量之 Proxy 伺服器的 URL。 設定 Proxy 時,ProxyServer 是必要參數。

ProxyBypass:ProxyBypass 參數會採用略過 Proxy 時應造訪的網站清單。 若要略過所有簡短名稱主機,請使用 local

自動偵測:AutoDetect 是 true 或 false 參數,指定是否應啟用 Web Proxy 自動探索 (WPAD) 。

AutoDetect 參數集:

AutoConfigUrl:AutoConfigUrl 參數會採用具有 Proxy 伺服器的 URL 作為輸入的字串,以用於 HTTP 和/或 HTTPs 流量。 針對這兩個流量類別,請使用分號來分隔。 這是必要參數。

AutoDetect:類似于上述的 AutoDetect 參數,這是 true 或 false 參數,指定是否應啟用 Web Proxy 自動探索 (WPAD) 。

設定 Proxy

您可以透過下列方式來設定 Proxy 組態:

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

AutoConfigURL您可以使用 參數,以下列方式設定 Proxy 組態:

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

您可以為叢集新增 GlobalProxyOverride,如下所示:

Set-NetIntent -GlobalProxyOverride $ProxyOverride

若要移除叢集的 GlobalProxyOverride,如下所示:

Remove-NetIntent -GlobalOverride $ProxyOverride

最後,若要存取任何全域覆寫 Proxy 或叢集,您可以執行下列命令:

$Obj1 = Get-NetIntent -GlobalOverride
$Obj1

更具體來說,您可以藉由呼叫其各自的參數, $Obj1 分別存取 Proxy 和叢集全域覆寫:

$Obj1.ProxyOverride
$Obj1.ClusterOverride

更新或覆寫網路設定

此工作可協助您覆寫已部署的預設組態。 此範例會修改 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 部署完成的工作取決於所使用的 Azure Stack HCI 版本。 針對 Azure Stack HCI 21H2 叢集:

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

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

  • 延展式叢集設定: 若要將 Stretch S2D 新增至網路 ATC 受控系統,您必須在網路 ATC 實作指定的意圖之後,手動新增適當的設定 (包括 vNIC 等。) 。

現在可以使用 Azure Stack HCI 22H2 中的網路 ATC 來部署儲存體介面卡、SMB 頻寬限制和延展設定的自動 IP 定址。 如需詳細資訊,請參閱:

驗證自動補救

網路 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 HCI01 -Name Cluster_ComputeStorage -NodeName Node01
    
  5. 確認已完成一致性檢查:

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

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

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

下一步