Estou executando um servidor de arquivos Solaris 11 x86. A parte do servidor de arquivos é o ZFS + Samba. Está funcionando há três ou quatro anos sem grandes problemas.
Os compartilhamentos do Samba começam visíveis para outros PCs na rede. Eu posso ler a partir do servidor de arquivos de forma confiável. Eu posso pingar o servidor. Eu posso pingar outros PCs do servidor. Eu posso pingar o gateway padrão do servidor.
A partir de algumas semanas atrás, quando tento gravar no servidor de arquivos, os compartilhamentos desaparecem após alguns segundos (ou talvez depois de algumas centenas de megabytes). A questão é aparentemente com a rede. O servidor ainda está vivo, no entanto. Se eu conectar um mouse, teclado e monitor, ainda posso interagir com o servidor.
Não parece que o problema seja com os discos rígidos ou com o Samba. Tentei:
- zpool status
- fmadm com defeito
- svcadm restart samba
Sem erros. Nenhum dispositivo defeituoso. O samba não parece ser o problema.
Após o problema acontecer, não consigo mais executar ping no gateway padrão do servidor de arquivos. Não consigo mais pingar outras máquinas do servidor de arquivos. Não consigo fazer ping no servidor de outras máquinas.
Etapas de depuração de rede
Eu tentei:
- ifconfig skge0 inoperante / ifconfig skge0 up.
- Ligue e desligue o comutador no qual a caixa Solaris está conectada
- Ligar e desligar o roteador no qual a caixa do Solaris está conectada
A caixa Solaris parece achar que ainda está conectada à rede. Redefinir a caixa Solaris (init 6) trará os compartilhamentos de volta, mas somente até eu tentar escrevê-los novamente.
Eu tentei netstat -rn antes e depois do problema. Tudo parece bem normal. Abaixo está "depois":
Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ---------- ---------
default 10.1.10.1 UG 27 456 skge0
10.1.10.0 10.1.10.254 U 6 2536350 skge0
127.0.0.1 127.0.0.1 UH 2 252 lo0
Routing Table: IPv6
Destination/Mask Gateway Flags Ref Use If
--------------------------- --------------------------- ----- --- ------- -----
::1 ::1 UH 2 4 lo0
"Antes" tem 27 em vez de 17 na coluna "Ref" da primeira entrada. "After" tem números ligeiramente maiores para "Use" - provavelmente normal.
Eu testei o netstat -an antes e depois do problema também. Este pode ter mais de uma pista. Existem várias conexões UDP presentes antes do problema que desaparecem.
Antes:
UDP: IPv4
Local Address Remote Address State
-------------------- -------------------- ----------
--truncated entries that are present in both before/after--
10.1.10.254.40504 10.1.10.1.53 Connected
10.1.10.254.39900 10.1.10.1.53 Connected
10.1.10.254.40129 10.1.10.1.53 Connected
10.1.10.254.37892 10.1.10.1.53 Connected
10.1.10.254.61658 10.1.10.1.53 Connected
Depois, essas cinco entradas acabaram, mas uma nova está presente:
UDP: IPv4
Local Address Remote Address State
-------------------- -------------------- ----------
--Again, truncated--
10.1.10.254.53920 10.1.10.1.53 Connected
Não consigo encontrar nenhuma informação sobre o que a porta 53920 é usada. No lado do gateway, a porta 53 parece ser usada para DNS - não tenho certeza se isso é uma pista ou não. Não parece muito útil
Abaixo da porção TCP, há um monte de entradas que são "ESTABELECIDAS" antes que foram eliminadas em após ou foram transferidas para TIME_WAIT ou FIN_WAIT_1. Isso parece jiver com o que eu já sei.
Há apenas uma referência ao IP do computador que usei para travar a rede:
Antes:
TCP: IPv4
Local Address Remote Address Swind Send-Q Rwind Recv-Q State
-------------------- -------------------- ----- ------ ----- ------ -----------
10.1.10.254.445 10.1.10.132.53487 64512 0 128480 0 ESTABLISHED
Depois:
TCP: IPv4
Local Address Remote Address Swind Send-Q Rwind Recv-Q State
-------------------- -------------------- ----- ------ ----- ------ -----------
10.1.10.254.445 10.1.10.132.53487 64256 0 128480 0 ESTABLISHED
A única diferença está na coluna Swind (enviar janela?). É estranho que o estado ainda esteja listado como estabelecido.
Eu fiz o netstat - um experimento novamente
A única diferença antes e depois estava relacionada ao endereço IP do computador que usei para travar o compartilhamento.
Antes:
TCP: IPv4
Local Address Remote Address Swind Send-Q Rwind Recv-Q State
-------------------- -------------------- ----- ------ ----- ------ -----------
10.1.10.254.445 10.1.10.132.53613 380416 0 128480 0 ESTABLISHED
Depois:
10.1.10.254.445 10.1.10.132.53613 65280 0 128480 0 ESTABLISHED
Mais uma vez, a única diferença está na coluna Swind - o número ficou menor.
Cheguei ao final do que sei sobre esse tipo de coisa. O netstat parece estar me dizendo o que eu já sei. Antes de comprar outra placa de rede e apenas tentar, ou reinstalar o Solaris, não tenho ideia. Alguém pode me dar pistas sobre o próximo passo aqui?
Editar
Estou comprando outra placa de rede e apenas tentando. Vai demorar cerca de uma semana para chegar aqui, então vou continuar cutucando isso enquanto isso.