Balanceamento de carga entre servidores


Quando se lê o titulo acima, pensa-se em métodos como o cluster de servidores. Mas o propósito deste texto não é ensinar ninguém a fazer uma implementação deste tipo de tecnologia ou de nenhuma tecnologia similar e sim discutirmos com o que nos deparamos freqüentemente, mas custamos a entender. Nem sempre a culpa da lentidão de rede é da própria rede, seus equipamentos ou muito menos dos servidores.
Nos deparamos com problemas de arquiteturas de redes que foram feitas em uma época onde os usuários não sabiam o poder de uma rede de computadores e muito menos como usar seus recursos e possibilidades. Com o advento da Internet e a massificação dessa cultura on-line, as pessoas trouxeram para dentro da empresa o costume de usar a rede e aprenderam como usá-la. Mas e os servidores?? O que eles têm a ver com essa história?? Bem, para as empresas onde o negócio principal está diretamente relacionado ao acesso de usuários, como ISPs, ASPs e afins, fazer o balanceamento de carga entre servidores, diversificá-los e planejá-los, levando-se em consideração a quantidade de acesso por segundo e aplicações que nele residem, faz parte do trabalho. Empresas que não trabalham com essa linha de negócios não é usual encontrarmos esse tipo de preocupação.
Quando analisamos um portal Internet encontramos aproximadamente uma centena de servidores para o mesmo conjunto de tarefas. Enquanto empresas de cerca de 3.000 micros em sua rede de produção contam, normalmente, com apenas uma dezena deles, não é raro que esses servidores tenham funções diferentes e capacidades diferentes. Quando encontramos servidores iguais, provavelmente, estão como forma de redundância e não balanceiam a sua carga. No momento da mudança da arquitetura de uma rede local para uma rede mais rápida, baseada em switchs e portas Fast Ethernet com o backbone em Gigabit Ethernet, nunca encontrei quem perguntasse ou soubesse qual a quantidade de acesso que um servidor recebia ou mesmo se a aplicação que nele contém suporta a quantidade de acesso.
O balanceamento de carga entre servidores faz parte de uma solução abrangente em uma explosiva e crescente utilização da rede e da Internet. Provendo um aumento na capacidade da rede, melhorando a performance, um consistente balanceamento de carga, mostra-se hoje, como parte integrante de todo o projeto de Web Hosting e e-commerce. Mas não se pode ficar com as idéias presas de que isso é só para provedores, devemos aproveitar as suas características e trazermos para dentro das empresas esse modo de usar a tecnologia para atendermos os clientes internos das empresas.
Quando não fazemos o balanceamento de carga entre servidores que possuem a mesma capacidade de resposta a um cliente, começamos a ter problemas pois um ou mais servidores podem responder a requisição feita e a comunicação fica prejudicada. Por isso devemos colocar o elemento que fará o balanceamento entre os servidores e os usuários e configurá-lo para isso, entretanto podemos colocar múltiplos servidores de um lado que, para os clientes, eles parecerão ser somente um endereço. O elemento de balanceamento terá um endereço, por onde os clientes tentarão fazer contato, chamado de Virtual Server (VS), que redirecionará o tráfego para um servidor do pool de servidores. Esse elemento deverá ser um software dedicado a fazer todo esse gerenciamento, ou poderá ser um equipamento de rede que combine performance do hardware e software para fazer o passagem dos pacotes e o balanceamento de carga em um só equipamento.
Devemos ressaltar três pontos principais para que uma implementação em um ambiente com balanceamento de carga nos servidores seja realizada com sucesso: o algoritmo usado para o balanceamento de carga, levando-se em consideração como é feito o balanceamento entre os servidores e quando um cliente fizer uma requisição para o endereço virtual (VS), todo o processo de escolha do servidor e resposta do servidor deve ocorrer de modo transparente e imperceptível para o usuário como se não existisse o balanceamento. O segundo ponto é o método usado para checar se os servidores estão vivos e funcionando, vital para que a comunicação não seja redirecionada para um servidor que acabou de ter uma falha. O terceiro ponto é o método usado para se ter certeza que um cliente acesso o mesmo servidor quando quiser.
A peça final em um ambiente com balanceamento de carga é a disponibilidade. Em um ambiente critico é necessário que dois ou mais equipamentos para o balanceamento de carga sejam instalados pois se um falhar o outro assume e o acesso à rede permanece inalterado. Isso pode ser feito com a implementação de VRRP ou algo similar para mantermos a confiabilidade e disponibilidade da rede.
Balanceamento de carga entre servidores é muito mais que um simples redirecionamento de tráfego dos clientes para múltiplos servidores. Para implementarmos corretamente, o equipamento que fará o balanceamento precisa ter características como checagem permanente da comunicação, checagem dos servidores e capacidade de redundância. Todos esses ítens são necessários para que suporte o crescente volume de tráfego das redes sem vir a se tornar um gargalo ou um ponto único de falha.
Ricardo Alem
ESSE - Enterasys Security Systems Engineer
Enterasys Networks do Brasil


http://www.enterasys.com/br/products/whitepapers/wp-server-loading-balance.html

Comentários

Mensagens populares