管理網路 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. 檢查所有叢集節點的狀態。 您必須在 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 和 -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
    

全域覆寫和叢集網路設定

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

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

叢集網路功能

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

以下是叢集網路功能網路 ATC 設定及其預設值的表格:

叢集網路命名

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

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

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

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

即時移轉網路選取專案

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

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

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

如果停用:

  • 即時移轉傳輸選取專案會使用 VirtualMachineMigrationPerformanceOption 覆寫值中指定的傳輸。
  • 如果未指定 VirtualMachineMigrationPerformanceOption 覆寫值,網路 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-NetIntentProxyOverride命令將用來建立類似現有 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-NetIntentProxyOverride -ProxyServer https://itg.contoso.com:3128 -ProxyBypass = *.foo.com

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

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

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

Set-NetIntent -GlobalProxyOverride $ProxyOverride

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

Remove-NetIntent -GlobalOverride $ProxyOverride

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

$Obj1 = Get-NetIntent -GlobalOverride
$Obj1

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

$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 部署之後完成,包含下列項目:

  • 將 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 -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 示範

下一步