Você está na página 1de 6

Autor: Guilherme Zanini de Sá

Campo Mourão, 2010

O que é e para que serve o balanceamento de carga?

Balanceamento de carga consiste em uma técnica para distribuição


de carga de trabalho uniformemente entre dois ou mais computadores,
enlaces de rede, UCPs, discos rígidos ou outros recursos. Intuito pelo qual
visa o aperfeiçoamento da utilização dos recursos, a maximização do
desempenho, a diminuição do tempo de resposta e ainda evitar sobrecarga.
Devido a redundância de múltiplos componentes a confiabilidade aumenta.

Quais as estratégias de balanceamento de carga para


sistemas distribuídos existentes atualmente?

Baseada no Cliente

Baseada no DNS

Baseada num Despachante

Baseada no Servidor

Como funciona o balanceamento de carga em uma rede de


computadores? E o balanceamento de carga em servidores Web?

Em forma de dispositivos baseados em rede, surgiu a segunda


geração do balanceamento de carga de finalidade específica, seguido dos
sistemas proprietários baseados em aplicativos, são os precursores dos
controladores de distribuição de aplicativos atuais.

Por se portarem de forma neutra em relação a aplicativos, esses


dispositivos podiam fornecer o balanceamento de carga usando técnicas
diretas de rede. Em suma, esses dispositivos ofereciam para o mundo
exterior um endereço de servidor virtual e, na tentativa de se conectar,
encaminhava a conexão ao servidor verdadeiro mais apropriado, f azendo
uma tradução de endereços de rede (NAT) bidirecional.
O conceito de nó, host, membro ou servidor é utilizado pela maioria
dos balanceadores de carga, alguns usam todos eles, com significados
diferentes. Não obstante há dói conceitos básicos que todo s eles tentam
expressar. Primeiramente, nó ou servidor, consiste a idéia do servidor
físico que recebe trafego do balanceador de carga, que equivale ao
endereço IP do servidor físico e, na falta de um balanceador, seria o
endereço para o qual o nome do se rvidor seria atribuído, conceito
conhecido como “host”.

O segundo conceito é de membro, bem mais definido do que um


servidor ou nó, visto a inclusão da porta TCP do aplicativo que recebe o
tráfego. Simplificando, um membro inclui a definição da porta do aplicativo,
além do endereço IP do servidor físico, conceito conhecido com “serviço”.

Para que o balanceador de carga interaja individualmente com os


aplicativos, ao invés com o hardware subjacente, deve -se fazer a distinção
entre o servidor físico e os serviços de aplicativos sendo executados.

A maioria das tecnologias de balanceamento de carga utiliza algum


conceito para representar o host, ou servidor físico, e um segundo conceito
para representar os serviços nele disponíveis.

É possível utilizar o IPTables para realizar o balanceamento


de carga em servidores?
O conteúdo deverá ser igual nos dois servidores , em prática, como
na demonstração abaixo:

1 - $IPTABLES -A PREROUTING -t nat -d 200.xxx.xxx.1 -j DNAT --


to 192.168.1.1-192.168.1.2

2 - $IPTABLES -A POSTROUTING -t nat -s 192.168.1.1 -j SNAT --to


200.xxx.xxx.1

3 - $IPTABLES -A POSTROUTING -t nat -s 192.168.1.2 -j SNAT --to


200.xxx.xxx.1

Repare que utilizei --to 192.168.1.1-192.168.1.2 (dois hosts),


poderia usar --to 192.168.1.1-192.168.1.10 (que significa que estarei
dispondo de um range de 10 hosts no load balance).

A distribuição de carga nos servidores pode ser monitorada através


da ferramenta MRTG, como mostram as figuras abaixo:

Note que as figuras são bem parecidas apenas com uma sutil
diferença na carga recebida pelos servidores.

Quais são os principais benefícios obtidos com o


balanceamento de carga em sistemas distribuídos, ou seja, mais
precisamente sob o ponto de vista de servidores Web?

Alta disponibilidade

Escalabilidade
Administração facilitada da aplicação

Alta disponibilidade pode ser definida como redundância. Se um


servidor falhar ou não puder atender uma requisição, então outro servidor
assumirá, da forma mais transparente o possível, o processamento da
requisição. Isso tende a eliminar os pontos de falha de uma aplicação.

Escalabilidade é a habilidade que uma aplicação tenha de suportar


um crescente número de usuários. Se uma aplicação leva 10 ms para
responder uma requisição, quanto tempo ela levará para responder 10.000
requisições concorrentes? Escalabilidade infinita permitiria que a aplicação
respondesse essa carga em 10 ms; no mundo real a resposta seria num
espaço de tempo indeterminado maior que 10 ms. Escalabilidade é uma
medida de vários fatores, incluindo o número de usuários simultâneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisição.

A administração facilitada do sistema é facilitada, no sentido de que


o cluster aparece como um único sistema para os usuários, aplicações e
para o resto da rede, facilitando o acesso e administração do sistema e dos
recursos de rede.

Suponha que você seja um gerente de TI de uma pequena


empresa que possui um servidor Web ut ilizado para armazenar
aplicações relacionadas aos sistemas de telefonia móvel (sistema de
pagamento, sistemas de consulta aos créditos de celular, etc). A
empresa tornou-se conhecida no mercado e inesperadamente o
servidor Web não consegue lidar com a alt a demanda de requisições.
Sendo você o responsável pela área de TI da empresa, como você
solucionaria o problema da incapacidade de atendimento do servidor
Web? É possível utilizar o balanceamento de carga neste caso? Caso
afirmativo, esboce de forma gráfica (usando a rede, servidores,
switchs, etc) como você apresentaria esta solução.
REFERENCIAS

Article (Viswanathan2001)
Viswanathan, V.
Load Balancing Web Applications
2001, 2

Article (Teruszkin2002)
Teruszkin, R.
Balanceamento de Carga em Servidores Web
2002

Article (Wikipedia2010)
Wikipédia, a. e. l.
Balanceamento de carga
2010

Article (Salchow2010)
Salchow, K.
Balanceamento de carga: Conceitos básicos
2010

Article (Wikipedia2010a)
Wikipedia
Load balancing (computing)
2010