Desistência de rede temporária para o Xen DomU

1

Temos um servidor CentOS executando um cluster de virtuais. Ocasionalmente, a rede interna do cluster desaparece por um minuto ou mais ... e depois volta. O problema está de alguma forma relacionado ao tráfego de rede real, mas não é um problema de carregamento simples. (O sistema geralmente é levemente carregado e o problema ocorre independentemente da carga real.)

A configuração:

  • CentOS 5.6 no Dom0, vários CentOS no DomU
  • Hardware - um Dell R710 com uma NIC BroadCom NextXpress 2 (suspiro)
    • usando os drivers mais recentes da NIC da BroadCom
  • Xen configurado para usar ponte de rede e ponte vif
  • Alguns ajustes de iptable para rotear uma porta não relacionada para um dos virtuais.

O sistema tem um endereço IP visível externamente e o Dom0 executa um httpd do Apache configurado com vários hosts virtuais, cada um dos quais inverte os proxies para servidores da Web em execução nos virtuais. (Os virtuais precisam ser NAT, principalmente porque não temos endereços IP públicos alocados suficientes.)

Os sintomas:

  • Funciona bem na maior parte do tempo.
  • Quando alguém tenta carregar um arquivo grande em um virtual, a rede interna sai ... para todos os virtuais:
    • O http do Dom0 vê um tempo limite de rede falando com o servidor backend no virtual e relata um 502.
    • Uma conexão ssh previamente estabelecida do Dom0 para qualquer um dos congelamentos do DomU.
    • Nosso monitoramento mostra falhas de ping para tráfego entre virtuais.
    • Os consoles Xen para as DomUs não congelam.
    • Não há mensagens de log em nenhum arquivo de log que eu possa ver, no Dom0 ou no DomU ... além dos logs do Dom0 httpd.
    • Após um minuto, o problema desaparece sozinho.

Isso é 100% reproduzível.

O que tentamos:

  • Download, construção e instalação do driver BNX2 mais recente no Dom0
  • Desativando o MSI na NIC - adicionando "opções bnx2 disable_msi = 1" ao /etc/modprobe.conf
  • Desativando o descarregamento de segmentação tcp - "ethtool -K eth0 tso off".
  • Sacrificando um galo preto à meia-noite.

Eu gastei todas as minhas opções além de mudar para o KVM ... ou abater mais galos.

Alguma sugestão?

    
por Stephen C 15.08.2011 / 02:57

4 respostas

1

Finalmente encontramos o problema. Acabou sendo causado por um problema em nossa configuração de rede virtual. Por alguma razão que eu não consigo mais lembrar exatamente, o tráfego de rede para aquele download em particular estava dando um loop extra através das redes virtuais. Quando um usuário tentou fazer upload de um arquivo grande, o download estava vinculando todos os buffers de rede do kernel disponíveis. Isso estava fazendo com que toda a rede congelasse ... até que algo expirasse e tudo fosse desfeito.

Sinto muito que isso seja um pouco vago, mas pode oferecer algumas dicas para pessoas que enfrentam um problema semelhante.

    
por 05.09.2012 / 16:44
0

Talvez exista um número limitado de encadeamentos de rede para conectar os virtuais ao host, e o upload de arquivos grandes consome todos eles eventualmente e o restante deles perde o sinal. Eu não tenho outros palpites. Desculpe.

    
por 15.08.2011 / 04:23
0

Você pode dar uma olhada na configuração de overcommitment e / ou swap de memória. Se a opção for "ajustada ao máximo", o upload de um arquivo grande poderá ser o gatilho para o gerenciamento desses recursos, levando à indisponibilidade até que o gerenciamento seja concluído.

    
por 15.08.2011 / 10:21
0

Tem certeza de que não tem conflitos de endereço MAC?

Este é apenas um palpite, mas acontece facilmente quando se copia arquivos de configuração do Xen domU, mas esquece de mudar o MAC para ser único em cada domU e interface. Eu vi isso causar estranhos problemas de rede onde toda a conectividade foi perdida por exatamente 60 segundos ocasionalmente.

    
por 22.08.2011 / 12:07