Como uma pequena configuração de carga balanceada baseada em Linux deve ser organizada?

2

Recentemente, herdei um pequeno servidor da Web baseado em carga com base em Linux configurado. Infelizmente, nunca foi completamente colocado online, então estou trabalhando para isso.

A configuração básica é:

  • Balanceador de carga baseado em LVS. Também atua como um NAT simples para os servidores da Web.
  • Dois servidores da web Apache / PHP5.
  • servidor de banco de dados MySQL.

O servidor de banco de dados está dentro do firewall da empresa principal, enquanto os outros três estão na DMZ. O balanceamento de carga básico funciona, mas tive problemas para persistir conexões com o LVS e como o armazenamento de sessão para PHP5 está usando arquivos locais, perdemos sessões. Eu poderia ser capaz de obter LVS para persistir sessões, mas desde que as conexões são geralmente para um grande número de clientes NATed por trás do mesmo firewall com atrasos por vezes longos entre as solicitações, acho que poderia ser uma proposta perdedora. Decidi, em vez disso, mudar para o memcached para armazenamento de sessão, pois ele será rápido de configurar.

A minha pergunta com isto é onde deve o serviço memcached viver? Eu não posso adicionar outro servidor para que ele tenha que viver com o balanceador de carga ou com o servidor de banco de dados. No momento, estou inclinado a colocá-lo no servidor de banco de dados, já que ele não tem conexões externas, mas estou preocupado que os dois possam entrar em conflito de alguma forma. Existe uma prática recomendada para esse tipo de situação? Ou alguma outra orientação?

    
por Michael Johnson 20.10.2009 / 08:45

2 respostas

2

Se eu fosse você, salvaria a memória no servidor de banco de dados do banco de dados. Para resiliência, eu instalaria o memcached em ambos os seus servidores web. Um pequeno problema com o uso do memcached para sessões é que reiniciar seu memcached irá destruir suas sessões. Você pode olhar para algo como memcachedb, que persiste objetos.

    
por 20.10.2009 / 10:25
-1

Eu colocaria no balanceador de carga. Por três razões:

  1. Essa máquina provavelmente não está utilizando muita CPU / RAM no momento (se esse não for o caso, você precisará repensar).
  2. Se o balanceador de carga ficar inativo, as sessões não serão boas para você de qualquer maneira.
  3. As sessões têm um pouco mais de uma associação lógica com conexões do que com bancos de dados.
por 20.10.2009 / 10:31