Aggiornamento 01/02/2018
- Questo problema è stato risolto in una versione aggiornata del firmware e del driver Mellanox CX4
In un cluster iperconvergente implementato utilizzando Dell EMC Microsoft Storage Spaces Direct Ready Nodes con adattatori Dell EMC PowerEdge R740xd e Mellanox CX4 LX per il traffico di storage, è possibile che vengano visualizzati errori del client SMB (ID evento 30803) nel visualizzatore eventi di Windows (registri di applicazioni e servizi -> Microsoft -> Windows -> client SMB -> Connettività) quando un nodo del cluster viene riavviato.
Sebbene ciò sia normale in un cluster di failover durante il riavvio di un nodo, è possibile che questi errori vengano occasionalmente visualizzati nuovamente sui nodi del cluster a intervalli regolari anche dopo che tutti i nodi del cluster sono completamente funzionanti. Questo comportamento è dovuto a un errore nella creazione dei listener SMB per ogni interfaccia di storage nel nodo riavviato. Questi errori vengono visualizzati sui nodi rimanenti del cluster e non sul nodo riavviato. La descrizione dell'errore indica il server a cui il client SMB sta tentando di connettersi e l'indirizzo del server nella descrizione indica il nodo appena riavviato.
In uno stato funzionale normale dei nodi del cluster, dopo il riavvio di un nodo, l'esecuzione di netstat –xan dovrebbe mostrare un listener IPv4 e IPv6 associato a ogni interfaccia di storage sul nodo. Il seguente output di netstat.exe è stato raccolto su un nodo con due schede di storage.
Connessioni NetworkDirect attive, listener, SharedEndpoints
Modalità IfIndex Tipo Indirizzo locale Indirizzo esternoPID
Connessione Kernel 4 10.128.100.101:445 10.128.100.100:61476 0
Connessione Kernel 4 10.128.100.101:445 10.128.100.100:62244 0
Connessione Kernel 4 10.128.100.101:445 10.128.100.100:61988 0
Connessione Kernel 4 10.128.100.101:445 10.128.100.100:62756 0
Connessione Kernel 4 10.128.100.101:12541 10.128.100.100:445 0
Connessione Kernel 4 10.128.100.101:12797 10.128.100.100:445 0
Connessione Kernel 4 10.128.100.101:14077 10.128.100.100:445 0
Connessione Kernel 4 10.128.100.101:14333 10.128.100.100:445 0
Kernel 14 Connessione 10.128.100.133:445 10.128.100.132:27454 0
Kernel 14 Connessione 10.128.100.133:445 10.128.100.132:27198 0
Kernel 14 Connessione 10.128.100.133:237510.128.100.132:445 0
Kernel 14 Connessione 10.128.100.133:62535 10.128.100.132:445 0
Kernel 14 Connessione 10.128.100.133:62791 10.128.100.132:445 0
Kernel 14 Connessione 10.128.100.133:64071 10.128.100.132:445 0
Kernel 14 Connessione 10.128.100.133:64327 10.128.100.132:445 0
Listener del kernel 4 [fe80::4cae:cb05:4932:f226%4]:445 NA 0
Listener del kernel 4 10.128.100.101:445 NA 0
Kernel 14 Listener 10.128.100.133:445 NA 0
Kernel 14 Listener [fe80::5180:55b6:c0f0:ae8d%14]:445 NA 0
Output 1 - Stack SMB completamente funzionale
Tuttavia, quando si iniziano a visualizzare gli errori del client SMB nel cluster, il nodo riavviato potrebbe non avere tutti i listener associati a ogni interfaccia di storage nel sistema.
Connessioni NetworkDirect attive, listener, SharedEndpoints
Modalità IfIndex Tipo Indirizzo locale Indirizzo esternoPID
Connessione Kernel 4 10.128.100.101:445 10.128.100.100:61476 0
Connessione Kernel 4 10.128.100.101:445 10.128.100.100:62244 0
Connessione Kernel 4 10.128.100.101:445 10.128.100.100:61988 0
Connessione Kernel 4 10.128.100.101:445 10.128.100.100:62756 0
Connessione Kernel 4 10.128.100.101:12541 10.128.100.100:445 0
Connessione Kernel 4 10.128.100.101:12797 10.128.100.100:445 0
Connessione Kernel 4 10.128.100.101:14077 10.128.100.100:445 0
Connessione Kernel 4 10.128.100.101:14333 10.128.100.100:445 0
Kernel 14 Connessione 10.128.100.133:2375 10.128.100.132:445 0
Kernel 14 Connessione 10.128.100.133:62535 10.128.100.132:445 0
Kernel 14 Connessione 10.128.100.133:62791 10.128.100.132:445 0
Kernel 14 Connessione 10.128.100.133:64071 10.128.100.132:445 0
Kernel 14 Connessione 10.128.100.133:64327 10.128.100.132:445 0
Listener del kernel 4 [fe80::4cae:cb05:4932:f226%4]:445 NA 0
Listener del kernel 4 10.128.100.101:445 NA 0
Output 2 - Stack SMB mancante di un listener
Pertanto, nell'esempio precedente, il client SMB che tenta di connettersi sull'indice dell'interfaccia 14 alla fine genera messaggi di connessione rifiutata ed errori del client SMB (ID evento 30803) correlati a RDMA
L'architettura di rete Dell EMC Microsoft Ready Node consiglia due schede di storage per ogni nodo del cluster, non si verificherà alcuna interruzione della funzionalità del cluster quando si verifica questo problema. Inoltre, l'adattatore a cui manca un listener può comunque essere utilizzato per inviare il traffico RDMA. Tuttavia, poiché non è presente alcun listener su una delle schede di storage, non è possibile eseguire scritture utilizzando RDMA. Questo adapter esegue il fallback utilizzando TCP per qualsiasi scrittura o ricezione del traffico. Ciò potrebbe comportare prestazioni di scrittura inferiori a seconda del carico di lavoro. Quando si verifica questo problema, non vi è alcuna perdita di dati o limitazioni di funzionalità.
Questo problema è stato identificato come un bug nel driver Mellanox CX4 LX WinOF2 versione 1.70 e precedenti.
Il listener SMB può essere ricreato riavviando la scheda di storage virtuale che non dispone di un listener SMB associato dopo un riavvio. È possibile identificare la scheda virtuale giusta da riavviare seguendo la procedura descritta di seguito.
Dall'output di netstat -xan è possibile vedere che manca un listener per una delle schede di storage. È possibile trovare l'indice dell'interfaccia per l'adattatore mancante utilizzando il cmdlet Get-NetAdapter.
PS C:\> Get-NetAdapter
Nome InterfaceDescrizione ifIndex Stato MacIndirizzo LinkSpeed
______________ __ ___________________ ____ ______vEthernet (Storage2) Hyper-V Virtual Ethernet Adapter #3 14 up 00-15-5D-09-C4-0210 Gbps
vEthernet (Storage1) Hyper-V Virtual Ethernet Adapter #2 4 up 00-15-5D-09-C4-0110 Gbps
vEthernet (gestione)Hyper-V Virtual Ethernet Adapter da 10 fino a 00-15-5D-09-C4-0010 Gbps
Dispositivo Ethernet remoto compatibile con NDIS 9 Non presente 50-9A-4C-A7-F9-DF 0 bps
NIC2 Intel(R) Ethernet 10G X710 rNDC 6 Disconnesso 24-6E-96-52-CC-A410 Gbps
NIC4 Intel(R) I350 Gigabit Network Connec... 15 Disconnesso 24-6E-96-52-CC-C3 0 bps
NIC3 Intel(R) I350 Gigabit Network Conn... #2 8 Disconnesso 24-6E-96-52-CC-C2 0 bps
NIC1 Intel(R) Ethernet 10G 4P X710/I350 rNDC 13 Disconnesso 24-6E-96-52-CC-A210 Gbps
SLOT 1 Porta 2 Mellanox ConnectX-4 Lx Ethernet Ad... #2 2 Fino a 24-8A-07-59-4C-6910 Gbps
SLOT 1 Porta 1 Adattatore Ethernet Mellanox ConnectX-4 Lx 11 fino a 24-8A-07-59-4C-6810 Gbps
Osservando l'output netstat –xan (mostrato nell'Output Listing 2), è possibile notare che l'interfaccia con l'indice 14 non ha alcun listener associato. Dal cmdlet Get-NetAdapter è possibile notare che l'indice dell'interfaccia 14 è la scheda virtuale vEthernet (Storage2).
È ora possibile riavviare l'interfaccia con il listener mancante.
Restart-NetAdapter –Name 'vEthernet (Storage2)'
Una volta completato questo processo, è possibile controllare netstat –xan per assicurarsi che il listener sia stato creato. This process may take a few minutes. Una volta creato il listener, i nodi del cluster inizieranno a comunicare normalmente su RDMA e i nuovi errori del client SMB smetteranno di essere visualizzati nel visualizzatore eventi.