neste post pretendo transcrever a experiência da criação de um load balanced ha apache cluster with failover na minha escola (Escola Secundária Fernão de Magalhães - Chaves).
pois, e o que é que isto significa?
comecemos pelo início.
imaginem que temos apenas um servidor web. nesta situação podemos encontrar basicamente dois problemas:
para ultrapassar esta situação podemos começar por imaginar um sistema constituído por um load balancer (balanceador de cargas) e um conjunto de nós, o qual designaremos de apache cluster (cada nó representa um servidor web onde teremos o apache instalado).
o primeiro problema na solução com apenas um servidor web ficaria resolvido uma vez que o load balancer determinaria em cada instante a carga de cada nó e encaminharia o próximo pedido ao servidor menos ocupado.
quanto ao segundo problema as coisas continuariam feias se o load balancer avariasse (relativamente à avaria dos nós bastaria que um estivesse a funcionar para nunca se dar uma interrupção do serviço). para evitarmos isto vamos adicionar um novo load balancer à equação:
neste momento algumas questões se colocam:
é claro que estas questões representam problemas adicionais, que não abordari neste artigo (eventualmente noutro), mas que, num ambiente de produção, jamais poderão ser esquecidos.
no final do documento encontrarão um bom conjunto de recursos de onde a solução que utilizaremos foi retirada.
esta é uma das soluções, de entre as muitas abordagens possíveis a esta problemática, porventura aquela que melhor serve os nossos propósitos. se tiverem outra melhor, queiram partilhá-la, serei todo ouvidos. garantias? nenhumas! se esta solução não resultar para vocês, problema vosso.
vamos começar esta abordagem pela criação do apache cluster.
o sistema operativo que irei utilizar é o debian squeeze (versão estável do debian).
no nosso caso iremos ter um cluster constituído por dois nós (duas máquinas reais) cuja configuração poderá ser alterada para a inclusão de outros nós.
http://blog.non-a.net/2011/03/27/cluster_drbd
http://rackerhacker.com/2010/12/02/keep-web-servers-in-sync-with-drbd-a…
http://en.wikipedia.org/wiki/High-availability_cluster
http://www.clusterlabs.org/wiki/DRBD_MySQL_HowTo