共用方式為


管理網路自動交通管制

適用於:Windows Server 2025;Azure Local 2311.2 和更新版本

本文討論如何在部署網路 ATC 之後管理它。 網路 ATC 可簡化 Windows Server 和 Azure 本機叢集的部署和網路組態管理。 您可以使用 Windows PowerShell 來管理網路 ATC。

新增伺服器節點

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

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

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

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

    Get-NetIntentStatus
    

    Note

    如果您新增至叢集的其中一部伺服器缺少在其他伺服器上具備的網路配接器,則 Get-NetIntentStatus 會報告錯誤 PhysicalAdapterNotFound

  3. 使用 Get-NetIntentStatus 檢查所有節點的布建狀態。 Cmdlet 會報告這兩個節點的組態。 這可能需要與原始節點相似的時間來部署。

    Get-NetIntentStatus
    

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

修改記憶體或管理系統的預設 VLAN

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

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
    
  3. 檢查是否已成功將網路適配器新增至Intent。

        Get-NetIntent -Name Cluster_Compute 
    
    

全域覆寫和叢集網路設定

網路 ATC 主要包含兩種全域覆寫:Proxy 組態和叢集網路功能。

叢集網路功能

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

叢集網路命名

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

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

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

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

實時遷移網路選擇

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

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

此數值可開啟或關閉基於意圖的虛擬機即時遷移傳輸選擇。 根據預設,這會啟用,並導致系統自動判斷最佳的即時移轉傳輸,例如:SMB、壓縮、TCP。

如果停用:

  • 動態移轉傳輸選擇會使用 VirtualMachineMigrationPerformanceOption 覆寫值中指定的傳輸方式。
  • 如果未指定 VirtualMachineMigrationPerformanceOption 覆寫值,網路 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 組態:

$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

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

$Obj1 = Get-NetIntent -GlobalOverride
$Obj1

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

$Obj1.ProxyOverride
$Obj1.ClusterOverride

更新或覆寫網路設定

此任務可協助您覆蓋已部署的預設配置。 此範例會修改SMB直接存取的預設頻寬保留。

Important

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

  1. 取得可能的覆寫指令清單。 我們使用通配符來查看可用的選項:

    Get-Command -Noun NetIntent*Over* -Module NetworkATC
    
  2. 為 DCB QoS 組態建立覆寫物件:

    $QosOverride = New-NetIntentQosPolicyOverrides
    $QosOverride
    
  3. 修改 SMB 直接傳輸的頻寬百分比:

    $QosOverride.BandwidthPercentage_SMB = 25
    $QosOverride
    

    Note

    只有您覆寫的屬性的值會被顯示。

  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

在虛擬機器內執行 Azure 本地服務適用於測試環境。 若要這樣做,請在您的意圖中新增一個覆寫屬性來停用 NetworkDirect 配接器屬性。

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

Note

請確定每個 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 等)。

儲存適配器的自動 IP 定址、SMB 頻寬限制和延展設置現在可以在 Azure Local 中使用 Network 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 示範

後續步驟