歡迎來到 Microsoft Q&A!
感謝您提供詳細資訊。
根據您描述的情況,此問題通常是由於 RoCEv2 無損網路(Lossless Fabric)配置遺失 所導致。當主機 NIC 或連接的交換器連接埠未正確設定 Priority Flow Control (PFC) 時,SMB Direct (RDMA) 流量可能會回退至標準 TCP/IP 通訊方式,進而大幅降低 Storage Spaces Direct (S2D) 的資料重新同步效能。Azure Local 與 S2D 的相關建議均強調,RoCEv2 必須以端對端方式設定 Data Center Bridging (DCB)、PFC 及 Enhanced Transmission Selection (ETS),才能維持 RDMA 所需的無損網路環境。
以下提供幾項建議的檢查與修復步驟供您參考:
1. 驗證 RDMA 狀態
Get-NetAdapterRdma | ft Name, Enabled
Get-SmbMultichannelConnection
Get-SmbServerNetworkInterface | ft InterfaceIndex,RdmaCapable,IpAddress
支援 RDMA 的網路介面應顯示:Enabled = True
此外,SMB Multichannel 應顯示叢集節點之間已建立的 RDMA 通訊路徑。
2. 驗證目前的 PFC 與 ETS 設定
Get-NetAdapterQos
Get-NetQosFlowControl
Get-NetQosTrafficClass
在正常的 RoCEv2 部署中:
- 應針對 RDMA 流量類別啟用 PFC(通常使用 Priority 3)。
- ETS 流量類別應存在且運作正常。
- QoS 流量類別應顯示 SMB Direct/RDMA 的頻寬配置。
3. 重新啟用 PFC 與 ETS
Enable-NetQosFlowControl -Priority 3
New-NetQosTrafficClass "SMB" `
-Priority 3 `
-BandwidthPercentage 50 `
-Algorithm ETS
如果 NIC 上尚未啟用 QoS,請執行:
Enable-NetAdapterQos -Name "<RDMA-NIC>"
在大多數 建議的 RoCE 部署中,通常會使用 Priority 3 作為 SMB Direct 流量優先權,並透過 ETS 為 RDMA 通訊保留頻寬。
4. 驗證 NIC 運作狀態
Get-NetAdapterQos -Name "<RDMA-NIC>"
Get-NetAdapterRdma -Name "<RDMA-NIC>"
請確認以下項目:
- RDMA = Enabled
- PFC = Enabled
- ETS = Enabled
此外,也請確認 QoS 流量類別及 Flow Control 設定皆正確顯示。
5. 驗證交換器設定
請確認與主機相連的交換器連接埠已完成以下設定:
- 已啟用 DCB
- 已為 RDMA 優先權(通常為 CoS/Priority 3)啟用 PFC
- 所有儲存網路連接埠均採用一致的 ETS 設定
- 已透過 DCBX/LLDP 傳遞 PFC 與 ETS 相關資訊
RoCEv2 要求 NIC 與實體交換器兩端都必須以一致的方式設定 PFC 與 ETS。若兩端設定不一致,可能導致封包在未明顯報錯的情況下被丟棄,進而造成 RDMA 回退至 TCP/IP。
6. 驗證修復結果
重新套用設定後,執行:
Get-SmbMultichannelConnection
Get-NetAdapterStatistics
確認下列項目:
- RDMA 路徑已成功重新建立。
- 在儲存體活動期間,RDMA 計數器持續增加。
- SMB 流量已使用 SMB Direct。
- S2D 重新同步效能恢復至預期水準。
參考資料:
Deploy SMB Direct with RoCE Network Adapters | Microsoft Learn
Get-NetAdapterQos (NetAdapter) | Microsoft Learn
如果以上資訊對您有所幫助,歡迎按一下 Accept Answer。
感謝您使用 Microsoft Q&A!