O que é e para que serve o balanceamento de carga

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, fazendo uma tradução de endereços de rede (NAT) bidirecional.

description

Apresenta algumas questões interessantes sobre no que consiste o balanceamento de carga em servidores web.

Transcript of O que é e para que serve o balanceamento de carga

Page 1: O que é e para que serve o balanceamento de carga

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, fazendo

uma tradução de endereços de rede (NAT) bidirecional.

Page 2: O que é e para que serve o balanceamento de carga

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 todos 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 servidor 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?

Page 3: O que é e para que serve o balanceamento de carga

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

Page 4: O que é e para que serve o balanceamento de carga

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 alta 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.

Page 5: O que é e para que serve o balanceamento de carga
Page 6: O que é e para que serve o balanceamento de carga

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