共用方式為


管理網路 ATC

適用於:Azure 本機版本 22H2

重要

Azure Stack HCI 現在是 Azure 本機的一部分。 產品檔案重新命名正在進行中。 不過,舊版的 Azure Stack HCI,例如 22H2 會繼續參考 Azure Stack HCI,而且不會反映名稱變更。 深入了解

本文討論如何在部署網路 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 和 -StorageVLAN 參數。

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 來檢查兩個適配卡是否存在,並報告每個叢集節點上 『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 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 主要包含兩種全域覆寫:Proxy 組態和叢集網路功能。

叢集網路功能

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

叢集網路命名

描述:根據預設,故障轉移叢集一律會命名唯一的子網:“Cluster Network 1”、“Cluster Network 2”等等。 這與網路的實際使用無關,因為叢集無法知道您打算如何使用網路, 直到現在!

一旦您透過網路 ATC 定義組態,我們現在就能瞭解子網的使用方式,而且我們可以更適當地命名叢集網路。 例如,我們知道哪一個子網用於管理、記憶體網路 1、記憶體網路 2(依故適用)。 因此,我們可以更內容地命名網路。

在下列螢幕快照中,您可以看到記憶體意圖已套用至這組適配卡。 另一個未知的叢集網路會顯示系統管理員可能想要調查的叢集網路。

叢集網路選取項目的螢幕快照。

即時移轉網路選取

此值會啟用或停用意圖型即時移轉叢集網路選取邏輯。 根據預設,這會啟用 ($true),並導致根據提交的意圖資訊選取叢集網路。 如果停用 [即時移轉網络選取],用戶可以設定即時移轉網路,而預設行為會還原成您在缺少網路 ATC 時預期的情況。

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

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

如果停用:

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

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

並行虛擬機移轉上限

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

SMB 移轉頻寬上限

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

自訂叢集網路設定

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

若要使用網路 ATC 新增 GlobalOverride:

$clusterOverride = New-NetIntentGlobalClusterOverrides

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

叢集覆寫對象的螢幕快照。

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

Set-NetIntent -GlobalClusterOverrides $clusterOverride

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

Get-NetIntentStatus -Globaloverrides

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

Remove-NetIntent -GlobalOverrides $clusterOverride

Proxy 組態

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

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

預設參數集

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

ProxyBypass:ProxyBypass 參數會透過略過 Proxy 來取得應該瀏覽的網站清單。 若要略過所有簡短名稱主機,請使用 local

AutoDetect: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. 檢查覆寫是否已在所有叢集節點上正確設定。 在此範例中,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 等)。

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

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

驗證自動補救

網路 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
    

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

下一步