7
Tweetar 0 Recomendar Seg, 14 de Julho de 2014 00:04 Fernando Bryan Frizzarin Criando um cluster de balanceamento de carga para servidores web Avaliação do Usuário: /6 Pior Melhor AVALIAR Todo mundo quer criar um site de sucesso e atrair infinitos usuários, oferecer produtos e serviços e ganhar muito dinheiro, mas ter uma quantidade muito grande de acesso pode fazer com que o servidor web não seja capaz de dar conta de todas as requisições de acesso que lhe são enviadas. Aí seu site de sucesso não estará disponível a 100% dos usuários que desejam acessálo, muito desistirão e terão a impressão de que o serviço é ruim, pois fica indisponí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 fatores externos, 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 ou hardware recebe todas as requisições e repassa para um servidor, de um grupo de servidores, que estiver com o menor tráfego ou maior poder de processamento. Para o usuá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ínima disponíveis em seu computador. Para ter uma ideia de como fazer isso leia Realizar uma instalaçã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 do seu 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:

Sd Guia Cluster Lb

Embed Size (px)

DESCRIPTION

Cluster de alto desempenho

Citation preview

Page 1: Sd Guia Cluster Lb

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 bla­bla­bla 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 use­a 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:

Page 2: Sd Guia Cluster Lb

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 certifique­se 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

Page 3: Sd Guia Cluster Lb

O resultado, acessando a máquina virtual que criei com o nome de MAQUINA02:

Também tenho minha MAQUINA01:

Page 4: Sd Guia Cluster Lb

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 criando­se e editando­se 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

Page 5: Sd Guia Cluster Lb

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

Page 6: Sd Guia Cluster Lb

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!