更新 2/1/2018
- 此問題已在 Mellanox CX4 韌體和驅動程式的更新版本中修復
在使用 Dell EMC Microsoft Storage Spaces Direct Ready 節點搭配 Dell EMC PowerEdge R740xd 和 Mellanox CX4 LX 配接卡進行儲存流量實作的超融合叢集中,當叢集節點重新開機時,您可能會在 Windows 事件檢視器 (應用程式和服務記錄 -> Microsoft -> Windows -> SMB 用戶端 -> 連線能力) 中看到 SMB 用戶端錯誤 (事件 ID 30803)。
雖然在節點重新開機期間,這在容錯移轉叢集中是正常現象,但即使所有叢集節點運作正常,您有時仍可能會看到這些錯誤再次出現在叢集節點上。此行為是由於在重新開機的節點中為每個儲存介面建立 SMB 偵聽器失敗所導致。這些錯誤出現在群集中倖存的節點上,而不是重新開機的節點上。錯誤描述指示SMB用戶端嘗試連接到的伺服器,描述中的伺服器位址指示剛剛重新啟動的節點。
在群集節點的正常功能狀態下,節點重新開機后,運行 netstat –xan 應顯示與節點上每個存儲介面關聯的 IPv4 和 IPv6 偵聽器。下列 netstat.exe 輸出是在具有兩個儲存裝置配接卡的節點上收集。
使用中的 NetworkDirect 連線、偵聽器、共用端點
模式 IfIndex 類型 本機位址 外部位址PID
內核 4 連接 10.128.100.101:445 10.128.100.100:61476 0
內核 4 連接 10.128.100.101:445 10.128.100.100:62244 0
內核 4 連接 10.128.100.101:445 10.128.100.100:61988 0
內核 4 連接 10.128.100.101:445 10.128.100.100:62756 0
內核 4 連接 10.128.100.101:12541 10.128.100.100:445 0
內核 4 連接 10.128.100.101:12797 10.128.100.100:445 0
內核 4 連接 10.128.100.101:14077 10.128.100.100:445 0
內核 4 連接 10.128.100.101:14333 10.128.100.100:445 0
內核 14 連接 10.128.100.133:445 10.128.100.132:27454 0
內核 14 連接 10.128.100.133:445 10.128.100.132:27198 0
內核 14 連接 10.128.100.133:237510.128.100.132:445 0
內核 14 連接 10.128.100.133:62535 10.128.100.132:445 0
內核 14 連接 10.128.100.133:62791 10.128.100.132:445 0
內核 14 連接 10.128.100.133:64071 10.128.100.132:445 0
內核 14 連接 10.128.100.133:64327 10.128.100.132:445 0
內核 4 偵聽器 [fe80::4cae:cb05:4932:f226%4]:445 NA 0
內核 4 偵聽器 10.128.100.101:445 NA 0
內核 14 偵聽器 10.128.100.133:445 NA 0
內核 14 偵聽器 [fe80::5180:55b6:c0f0:ae8d%14]:445 NA 0
輸出清單 1 - 功能齊全的 SMB 堆疊
但是,當您開始在群集中看到SMB用戶端錯誤時,重新啟動的節點可能沒有與系統中每個存儲介面關聯的所有偵聽器。
使用中的 NetworkDirect 連線、偵聽器、共用端點
模式 IfIndex 類型 本機位址 外部位址PID
內核 4 連接 10.128.100.101:445 10.128.100.100:61476 0
內核 4 連接 10.128.100.101:445 10.128.100.100:62244 0
內核 4 連接 10.128.100.101:445 10.128.100.100:61988 0
內核 4 連接 10.128.100.101:445 10.128.100.100:62756 0
內核 4 連接 10.128.100.101:12541 10.128.100.100:445 0
內核 4 連接 10.128.100.101:12797 10.128.100.100:445 0
內核 4 連接 10.128.100.101:14077 10.128.100.100:445 0
內核 4 連接 10.128.100.101:14333 10.128.100.100:445 0
內核 14 連接 10.128.100.133:2375 10.128.100.132:445 0
內核 14 連接 10.128.100.133:62535 10.128.100.132:445 0
內核 14 連接 10.128.100.133:62791 10.128.100.132:445 0
內核 14 連接 10.128.100.133:64071 10.128.100.132:445 0
內核 14 連接 10.128.100.133:64327 10.128.100.132:445 0
內核 4 偵聽器 [fe80::4cae:cb05:4932:f226%4]:445 NA 0
內核 4 偵聽器 10.128.100.101:445 NA 0
輸出清單 2 - SMB 堆疊缺少偵聽器
因此,在上面的示例中,嘗試在介面索引 14 上連接的 SMB 用戶端最終將導致連接被拒絕消息和與 RDMA 相關的 SMB 用戶端錯誤(事件 ID 30803)
Dell EMC Microsoft Ready Node 網路架構建議每個叢集節點使用兩張儲存裝置配接卡,發生此問題時叢集功能不會中斷。此外,缺少偵聽器的適配器仍可用於發送 RDMA 流量。但是,由於其中一個存儲適配器上沒有偵聽器,因此無法使用 RDMA 執行寫入。此適配器回退到 使用 TCP 進行任何寫入或接收流量。這可能會導致寫入效能降低,視工作負載而定。發生此問題時,沒有資料遺失或功能限制。
這已在 Mellanox CX4 LX WinOF2 驅動程式版本 1.70 及更低版本中識別為錯誤。
可以通過在重新啟動沒有關聯SMB偵聽器的虛擬存儲適配器來重新創建SMB偵聽器。您可以依照下列步驟,識別要重新啟動的正確虛擬配接卡。
從 netstat -xan 輸出,您可以看到其中一個儲存裝置配接卡缺少接聽程式。您可以使用 Get-NetAdapter cmdlet 找到遺失配接卡的介面索引。
PS C:\>Get-NetAdapter
名稱 介面描述 ifIndex 狀態 MacAddress LinkSpeed
______________ __ ___________________ ____ ______vEthernet (Storage2) Hyper-V 虛擬乙太網路配接卡 #3 14 向上 00-15-5D-09-C4-0210 Gbps
vEthernet (Storage1) Hyper-V 虛擬乙太網路配接卡 #2 4 最高 00-15-5D-09-C4-0110 Gbps
vEthernet (Management) Hyper-V 虛擬乙太網路配接卡 10 最高 00-15-5D-09-C4-0010 Gbps
乙太網路遠端 NDIS 相容裝置 9 不存在 50-9A-4C-A7-F9-DF:0 bps
NIC2 Intel(R) 乙太網路 10G X710 rNDC 6 中斷連線 24-6E-96-52-CC-A410 Gbps
NIC4 Intel(R) I350 Gigabit 網路介面15 已中斷連線 24-6E-96-52-CC-C3 0 bps
NIC3 Intel(R) I350 Gigabit 網路連接...#2 8 已斷開連接 24-6E-96-52-CC-C2 0 bps
NIC1 Intel(R) 乙太網路 10G 4P X710/I350 rNDC 13 已中斷連線 24-6E-96-52-CC-A210 Gbps
插槽 1 連接埠 2 Mellanox ConnectX-4 Lx 乙太網路廣告...#2 2 向上 24-8A-07-59-4C-6910 Gbps
插槽 1 連接埠 1 Mellanox ConnectX-4 Lx 乙太網路介面卡 11 (最高 24-8A-07-59-4C-6810 Gbps)
通過查看 netstat –xan 輸出(如輸出清單 2 所示),您可以看到索引為 14 的介面沒有與之關聯的偵聽器。在 Get-NetAdapter cmdlet 中,您可以看到介面索引 14 是虛擬配接卡 vEthernet (Storage2)。
您現在可以重新啟動缺少偵聽器的介面。
Restart-NetAdapter –名稱「vEthernet (Storage2)」
此過程完成後,可以檢查 netstat –xan 以確保已創建偵聽器。This process may take a few minutes.創建偵聽器后,群集節點將開始通過 RDMA 正常通信,新的 SMB 用戶端錯誤將停止出現在事件查看器中。