Atualização 01/02/2018
- Esse problema foi corrigido em uma versão atualizada do firmware e do driver do Mellanox CX4
Em um cluster hiperconvergente implementado usando os Dell EMC Microsoft Storage Spaces Direct Ready Nodes com adaptadores Dell EMC PowerEdge R740xd e Mellanox CX4 LX para tráfego de armazenamento, você pode ver erros de cliente SMB (ID de evento 30803) no visualizador de eventos do Windows (logs de aplicativos e serviços -> Microsoft -> Windows -> cliente SMB -> conectividade) quando um nó de cluster é reinicializado.
Embora isso seja normal em um cluster de failover durante uma reinicialização do nó, você pode ocasionalmente ver esses erros reaparecerem nos nós do cluster em um intervalo regular, mesmo depois que todos os nós do cluster estiverem totalmente funcionais. Esse comportamento é devido a uma falha na criação das escutas SMB para cada interface de armazenamento no nó que foi reiniciado. Esses erros são exibidos nos nós sobreviventes do cluster e não no nó que foi reiniciado. A descrição do erro indica o servidor ao qual o client SMB está tentando se conectar e o endereço do servidor na descrição indica o nó que acabou de ser reiniciado.
Em um estado funcional normal dos nós do cluster, após uma reinicialização do nó, a execução do netstat –xan deve mostrar uma escuta IPv4 e IPv6 associada a cada interface de armazenamento no nó. O seguinte resultado do netstat.exe foi coletado em um nó com dois adaptadores de armazenamento.
Conexões ativas NetworkDirect, ouvintes, SharedEndpoints
Modo IfIndex Type Local Address Foreign AddressPID
Kernel 4 Conexão 10.128.100.101:445 10.128.100.100:61476 0
Kernel 4 Conexão 10.128.100.101:445 10.128.100.100:62244 0
Kernel 4 Conexão 10.128.100.101:445 10.128.100.100:61988 0
Kernel 4 Conexão 10.128.100.101:445 10.128.100.100:62756 0
Kernel 4 Conexão 10.128.100.101:12541 10.128.100.100:445 0
Kernel 4 Conexão 10.128.100.101:12797 10.128.100.100:445 0
Kernel 4 Conexão 10.128.100.101:14077 10.128.100.100:445 0
Kernel 4 Conexão 10.128.100.101:14333 10.128.100.100:445 0
Kernel 14 Conexão 10.128.100.133:445 10.128.100.132:27454 0
Kernel 14 Conexão 10.128.100.133:445 10.128.100.132:27198 0
Kernel 14 Conexão 10.128.100.133:237510.128.100.132:445 0
Kernel 14 Conexão 10.128.100.133:62535 10.128.100.132:445 0
Kernel 14 Conexão 10.128.100.133:62791 10.128.100.132:445 0
Kernel 14 Conexão 10.128.100.133:64071 10.128.100.132:445 0
Kernel 14 Conexão 10.128.100.133:64327 10.128.100.132:445 0
Kernel 4 Listener [fe80::4cae:cb05:4932:f226%4]:445 NA 0
Kernel 4 Listener 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
Listagem de saída 1 - Pilha SMB totalmente funcional
No entanto, quando você começar a ver os erros de client SMB no cluster, o nó que reinicializou pode não ter todos os ouvintes associados a todas as interfaces de armazenamento no sistema.
Conexões ativas NetworkDirect, ouvintes, SharedEndpoints
Modo IfIndex Type Local Address Foreign AddressPID
Kernel 4 Conexão 10.128.100.101:445 10.128.100.100:61476 0
Kernel 4 Conexão 10.128.100.101:445 10.128.100.100:62244 0
Kernel 4 Conexão 10.128.100.101:445 10.128.100.100:61988 0
Kernel 4 Conexão 10.128.100.101:445 10.128.100.100:62756 0
Kernel 4 Conexão 10.128.100.101:12541 10.128.100.100:445 0
Kernel 4 Conexão 10.128.100.101:12797 10.128.100.100:445 0
Kernel 4 Conexão 10.128.100.101:14077 10.128.100.100:445 0
Kernel 4 Conexão 10.128.100.101:14333 10.128.100.100:445 0
Kernel 14 Conexão 10.128.100.133:2375 10.128.100.132:445 0
Kernel 14 Conexão 10.128.100.133:62535 10.128.100.132:445 0
Kernel 14 Conexão 10.128.100.133:62791 10.128.100.132:445 0
Kernel 14 Conexão 10.128.100.133:64071 10.128.100.132:445 0
Kernel 14 Conexão 10.128.100.133:64327 10.128.100.132:445 0
Kernel 4 Listener [fe80::4cae:cb05:4932:f226%4]:445 NA 0
Kernel 4 Listener 10.128.100.101:445 NA 0
Listagem de saída 2 - Pilha SMB sem um listener
Portanto, no exemplo acima, a tentativa do client SMB de conexão no índice de interface 14 resultará em mensagens de recusa de conexão e em erros de client SMB (ID do evento 30803) relacionados ao RDMA
A arquitetura de rede do Dell EMC Microsoft Ready Node recomenda dois adaptadores de armazenamento por cada nó de cluster, para que não haja disrupção na funcionalidade do cluster quando esse problema ocorrer. Além disso, o adaptador que não tem um listener ainda pode ser usado para enviar tráfego RDMA. No entanto, como não há escuta em um dos adaptadores de armazenamento, as gravações usando RDMA não podem ser executadas. Este adaptador volta a usar TCP para qualquer gravação ou tráfego de recepção. Isso pode resultar em desempenho de gravação mais baixo, dependendo da carga de trabalho. Não há perda de dados ou limitações de funcionalidade quando esse problema ocorre.
Isso foi identificado como um bug nas versões 1.70 e anteriores do driver Mellanox CX4 LX WinOF2.
A escuta do SMB pode ser recriada reiniciando o adaptador de armazenamento virtual que não tem escuta do SMB associada após uma reinicialização. Você pode identificar o adaptador virtual certo a ser reiniciado seguindo as etapas descritas abaixo.
Na saída netstat -xan, você pode ver que há um ouvinte ausente para um dos adaptadores de armazenamento. O índice de interface para o adaptador ausente pode ser encontrado usando o cmdlet Get-NetAdapter.
PS C:\> Get-NetAdapter
Nome InterfaceDescription ifIndex Status MacAddress LinkSpeed
______________ __ ___________________ ____ ______vEthernet (Storage2) Adaptador Ethernet Virtual Hyper-V #3 14 até 00-15-5D-09-C4-0210 Gbps
vEthernet (Storage1) Adaptador Ethernet Virtual Hyper-V #2 4 até 00-15-5D-09-C4-0110 Gbps
vEthernet (gerenciamento) Adaptador Ethernet virtual Hyper-V 10 até 00-15-5D-09-C4-0010 Gbps
Dispositivo compatível com NDIS remoto Ethernet 9 não presente 50-9A-4C-A7-F9-DF 0 bps
NIC2 Intel(R) Ethernet 10G X710 rNDC 6 desconectado 24-6E-96-52-CC-A410 Gbps
Conexão de rede gigabit Intel(R) I350 NIC4... 15 24-6E-96-52-CC-C3 0 bps desconectado
Conexão de rede Gigabit Intel(R) I350 NIC3... #2 8 Desconectado 24-6E-96-52-CC-C2 0 bps
NIC1 Intel(R) Ethernet 10G 4P X710/I350 rNDC 13 desconectado 24-6E-96-52-CC-A210 Gbps
SLOT 1 Porta 2 Mellanox ConnectX-4 Lx Ethernet Ad... #2 2 até 24-8A-07-59-4C-6910 Gbps
SLOT 1 Porta 1 Mellanox ConnectX-4 Lx Ethernet Adapter 11 até 24-8A-07-59-4C-6810 Gbps
Ao observar a saída netstat –xan (mostrada na Listagem de saída 2), você pode ver que a interface com o índice 14 não tem nenhum ouvinte associado a ela. No cmdlet Get-NetAdapter, você pode ver que o índice de interface 14 é o adaptador virtual vEthernet (Storage2).
Agora você pode reiniciar a interface com o ouvinte ausente.
Restart-NetAdapter –Name 'vEthernet (Storage2)'
Depois que esse processo for concluído, você poderá verificar netstat –xan para garantir que o listener seja criado. This process may take a few minutes. Depois que a escuta for criada, os nós do cluster começarão a se comunicar normalmente por RDMA e novos erros de client SMB deixarão de aparecer no visualizador de eventos.