Tweetar 0 Recomendar
Seg, 14 de Julho de 2014 00:04 Fernando Bryan Frizzarin
Criando um cluster de balanceamento de carga para servidoresweb
Avaliação do Usuário: / 6 Pior Melhor AVALIAR
Todo mundo quer criar um site de sucesso e atrair infinitos usuários, oferecer produtos eserviços e ganhar muito dinheiro, mas ter uma quantidade muito grande de acesso pode fazercom que o servidor web não seja capaz de dar conta de todas as requisições de acesso quelhe são enviadas. Aí seu site de sucesso não estará disponível a 100% dos usuários quedesejam acessálo, muito desistirão e terão a impressão de que o serviço é ruim, pois ficaindisponível em momentos de tráfego intenso, aí lá se foi o sucesso!
Há várias maneiras de resolver esse problema, que também passa pela banda disponível,mas isso ficará para outro tutorial. Nesse vamos tratar de um jeito sem considerar fatoresexternos, principalmente de rede.
Uma das formas de tratar esse problema é criar um cluster de balanceamento de carga.Resumidamente, o cluster de balanceamento de carga é algum agente de software ouhardware recebe todas as requisições e repassa para um servidor, de um grupo deservidores, que estiver com o menor tráfego ou maior poder de processamento. Para ousuário todo esse processo é transparente, ele não faz a menor ideia de quem estáatendendo suas requisições.
Ok, sem mais blablabla e vamos criar nosso próprio cluster de Load Balance!
Vou considerar que você tem três máquinas virtuais com o Debian em instalação mínimadisponíveis em seu computador. Para ter uma ideia de como fazer isso leia Realizar umainstalação mínima do Debian em uma máquina virtual
Para a configuração de rede das máquinas virtuais usea em modo bridge (ponte) para que doseu computador você tenha acesso aos servidores web que serão feitos.
Verifique e anote o endereço IP de cada uma delas para que você possa acessálas depois.
Para ver o IP das suas máquinas virtuais use o comando:
Uma das máquinas virtuais será nosso elemento de balanceamento de carga e nas outrasduas iremos simular servidores web, que serão os elementos balenceados.
Primeiro certifiquese de que seu Debian está atualizado:
Selecione as duas máquinas que receberão o servidor web e instale o Apache:
Agora altere o arquivo index.html do diretório /var/www/ para que possamos identificar qualservidor que atende nossas requisições.
No meu caso irei alterar o cabeçalho da página, de It works! para colocar o nome do servidor,no meu caso: máquina01 em uma e máquina02 em outra.
O arquivo original de um dos servidores:
O arquivo alterado:
1. ifconfig
1.2.3.
apt‐get updateapt‐get dist‐upgradeapt‐get autoclean
1. apt‐get install apache2 php5
O resultado, acessando a máquina virtual que criei com o nome de MAQUINA02:
Também tenho minha MAQUINA01:
Ok, temos dois servidores WEB, isso terá algumas implicações, mas depois falo disso. Agoravamos focar em instalar o balanceador de cargas. Iremos usar o POUND para isso.
O pound é muito fácil de entender e de usar. Ele configura as máquinas (outros servidores)em um cluster e trabalha com conexões de entrada HTTP. Quando a conexão é aceita elemanda para uma das máquinas do grupo (cluster) para que seja atendida.
A instalação é simples:
Então vem a configuração criandose e editandose o arquivo /etc/pound.cfg. Que na versãooriginal é assim:
Vou dar um exemplo de configuração que atende aos meus testes, você pode adequar damaneira de resolva seus problemas.
Da configuração original alterei as seguintes linhas:
1. apt‐get install pound
Essa linha determina de quanto em quanto tempo, em segundos, o balanceador de cargasdeve verificar os servidores balanceados. No original o valor é 30.
Com esse bloco fazemos o seguinte:
O balanceador de cargas vai “ouvir” as requisições na porta 80 e no seu próprio IP. Essaconfiguração é interessante, pois atrás de um firewall pode haver redirecionamento de portas.
Em xHTTP não permitimos documentos com cabeçalhos PUT e DELETE, apenas GET ePOST. Isso evita alguns problemas de segurança.
Na série BackEnd especificamos quais serão os servidores web e em qual porta atenderão(80).
Em Session dizemos que o controle de sessão será feito por cookie, o nome do cookie seráloadbal_session e o tempo de vida será de 300 segundos.
Agora precisamos editar o arquivo /etc/default/pound e alterar a linha:
Originalmente a linha vem com o valor zero, fazemos isso para indicar que o pound tem novaconfiguração.
Para iniciar o serviço:
1. Alive 2
01.02.03.04.05.06.07.08.09.10.11.12.13.14.15.16.17.18.19.20.
ListenHTTPAddress 192.168.2.229Port 80xHTTP 0ServiceBackEndAddress 192.168.2.238Port 80EndBackEndAddress 192.168.2.164Port 80EndSessionType CookieID “loadbal_session”TTL 300EndEnd
End
1. startup=1
1. /etc/init.d/pound start
OK, para testar abra seu navegador e asse o IP do balanceador de cargas. Hora vocêacessará a página da máquina 01 e hora acessará a página da máquina 02. Ou seja, obalanceamento está acontecendo.
Mas note que temos um problema aí, no caso de um servidor deveríamos ver a mesmapágina, ou seja, os usuários devem acessar o mesmo site transparentemente em relação aoservidor.
Bom, isso é facílimo de resolver: coloque o seu site em um diretório compartilhado na rede efaça com que os servidores Apache acessem o seu site a partir deste local!
MOSTRAR OUTROS ARTIGOS DESTE AUTOR