Por que um bloqueio de servidor derrubaria outros servidores da rede?

9

Temos algumas dúzias de servidores Proxmox (o Proxmox é executado no Debian) e, aproximadamente uma vez por mês, um deles terá um kernel em pânico e será bloqueado. A pior parte desses bloqueios é que, quando um servidor está em um switch separado do cluster master, todos os outros servidores Proxmox nesse switch deixarão de responder até que possamos encontrar o servidor que realmente travou e reiniciá-lo.

Quando informamos esse problema no fórum Proxmox, fomos aconselhados a fazer o upgrade para o Proxmox 3.1 e estamos no processo de fazer isso nos últimos meses. Infelizmente, um dos servidores que migramos para o Proxmox 3.1 trancou com um kernel panic na sexta-feira, e novamente todos os servidores Proxmox que estavam no mesmo switch estavam inacessíveis na rede até que pudéssemos localizar o servidor com falha e reinicializá-lo.

Bem, quase todos os servidores Proxmox no switch ... Achei interessante que os servidores Proxmox no mesmo switch que ainda estavam na versão 1.9 do Proxmox não foram afetados.

Aqui está uma captura de tela do console do servidor com falha:

Quando o servidor foi bloqueado, o restante dos servidores no mesmo switch que também estava executando o Proxmox 3.1 ficou inacessível e estava emitindo o seguinte:

e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
...etc...

uname -a saída do servidor bloqueado:

Linux ------ 2.6.32-23-pve #1 SMP Tue Aug 6 07:04:06 CEST 2013 x86_64 GNU/Linux

pveversion -v output (abreviado):

proxmox-ve-2.6.32: 3.1-109 (running kernel: 2.6.32-23-pve)
pve-manager: 3.1-3 (running version: 3.1-3/dc0e9b0e)
pve-kernel-2.6.32-23-pve: 2.6.32-109

Duas perguntas:

  1. Alguma pista do que estaria causando o kernel panic (veja a imagem acima)?

  2. Por que outros servidores no mesmo switch e versão do Proxmox seriam retirados da rede até que o servidor bloqueado fosse reinicializado? (Observação: havia outros servidores no mesmo switch que estavam executando a versão 1.9 anterior do Proxmox que não foram afetados. Além disso, nenhum outro servidor Proxmox no mesmo cluster 3.1 foi afetado e não estava no mesmo comutador).

Agradecemos antecipadamente por qualquer conselho.

    
por Curtis 27.01.2014 / 23:48

2 respostas

2

Tenho quase certeza de que seu problema não é causado por apenas um fator, mas sim por uma combinação de fatores. O que esses fatores individuais são não é certo, mas provavelmente um fator é a interface de rede ou o driver e outro fator é encontrado no próprio switch. Por isso, é bem provável que o problema só possa ser reproduzido com essa marca específica de switch combinada com essa marca específica de interface de rede.

Você parece ser o gatilho para o problema é algo acontecendo em um servidor individual que, então, tem um kernel panic que tem efeitos que de alguma forma conseguem se propagar através do switch. Isso parece provável, mas eu diria que é quase provável que o gatilho esteja em outro lugar.

Pode ser que algo esteja acontecendo no switch ou na interface de rede, o que causa simultaneamente o problema de kernel panic e link no switch. Em outras palavras, mesmo que o kernel não tenha tido um kernel panic, o trigger pode muito bem ter derrubado a conectividade no switch.

Alguém tem que perguntar, o que poderia acontecer no servidor individual, o que poderia ter esse efeito nos outros servidores. Não deveria ser possível, então a explicação tem que envolver uma falha em algum lugar do sistema.

Se fosse apenas o link entre o servidor com falha e o comutador que ficou inativo ou ficou instável, isso não deverá afetar o estado do link para os outros servidores. Se isso acontecer, isso contaria como uma falha no switch. E no sentido horário, os outros servidores devem ver um tráfego um pouco menor quando o servidor com falha perder a conectividade, o que não pode explicar por que eles veem o problema que eles fazem.

Isso me leva a acreditar que uma falha de design no switch é provável.

No entanto, um problema de link não é a primeira explicação que alguém procuraria ao tentar explicar como um problema em um servidor poderia causar problemas a outros servidores no comutador. Uma tempestade de transmissão seria uma explicação mais óbvia. Mas poderia haver um link entre um servidor com um pânico no kernel e uma tempestade de transmissão?

O multicast e os pacotes destinados a endereços MAC desconhecidos são mais ou menos tratados da mesma forma que os broadcasts, portanto, uma tempestade desses pacotes também contaria. O servidor paniced poderia estar tentando enviar um crashdump pela rede para um endereço MAC não reconhecido pelo switch?

Se esse é o gatilho, então algo está errado nos outros servidores. Porque uma tempestade de pacotes não deve causar esse tipo de erro na interface de rede. Reset adapter unexpectedly não soa como uma tempestade de pacotes (que deve causar apenas uma queda no desempenho, mas nenhum erro como tal), e não soa como um problema de link (que deveria resultar em mensagens sobre links sendo desativados, mas não erro que você está vendo).

Portanto, é provável que exista alguma falha no hardware ou no driver da interface de rede, que é acionado pelo comutador.

Algumas sugestões que podem fornecer pistas adicionais:

  1. Você pode conectar algum outro equipamento ao switch e ver o tráfego que vê no switch quando o problema é exibido (eu prevejo que ele fica tranquilo ou você vê uma inundação).
  2. Seria possível substituir a interface de rede em um dos servidores com uma marca diferente usando um driver diferente para ver como o resultado é diferente?
  3. É possível substituir um dos switches por uma marca diferente? Espero que a substituição do comutador garanta que o problema não afeta mais vários servidores. O que é mais interessante saber é se isso também impede que o pânico do kernel aconteça.
por 06.04.2014 / 18:03
1

Parece-me um erro no driver ethernet ou no hardware / firmware, sendo um sinal vermelho:

e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly
e1000e 0000:00:19.0: eth0: Reset adapter unexpectedly

Eu já vi isso antes e ele pode deixar o servidor offline. Não me lembro exatamente se estava nas placas intel ethernet, mas acredito que sim. Pode até estar relacionado a um bug nas próprias placas de rede. Lembro-me de ler algo sobre determinadas placas intel ethernet com esses problemas. Mas eu perdi o link do artigo.

Eu imagino que o gatilho para isso depende parcialmente do driver (versão) sendo usado, o fato de uma versão mais antiga do software funcionar ok parece confirmar isso. Você diz que o fornecedor usa seu próprio kernel personalizado, tente atualizar o módulo do driver ethernet que está sendo usado para seu hardware ethernet específico. Qualquer um de seu fornecedor ou um da árvore de fontes oficiais do kernel.

Procure também ligar seu hardware ethernet, normalmente um servidor teria duas portas ethernet, onboard e / ou add on card (s). Dessa forma, se uma placa ethernet estiver tendo esse problema, a outra irá atender. Eu uso a palavra "cartão", mas se aplica a qualquer hardware ethernet, é claro.

Também substituir o hardware ethernet pode consertá-lo. Substitua ou adicione uma placa ethernet mais recente (intel) e use-a. Provavelmente, se o problema está no hardware / firmware, uma placa mais nova tem uma correção (ou mais antiga?).

    
por 21.03.2014 / 21:58