Balanceamento de carga: diferenças entre revisões
m Revertidas a edição de 83.246.89.10 (2k) |
|||
Linha 1: | Linha 1: | ||
Todo o [[hardware]] tem o seu limite, e muitas vezes o mesmo serviço tem que ser repartido por várias máquinas, sob pena de se tornar congestionado. Estas soluções podem-se especializar em pequenos grupos sobre os quais se faz um balanceamento de carga: utilização do [[Unidade Central de Processamento|CPU]], de armazenamento, ou de rede. Qualquer uma delas introduz o conceito de ''[[cluster|clustering]]'', ou ''server farm'', já que o balanceamento será, provavelmente, feito para vários [[servidor]]es. |
|||
==Balanceamento de armazenamento (''storage'')== |
|||
O balanceamento do suporte de armazenamento permite distribuir o acesso a [[sistema de ficheiros|sistemas de ficheiros]] por vários [[Disco_rígido|discos]] ([[software]]/[[hardware]] [[RAID]]), pelo que derivam ganhos óbvios em [[tempos acesso]]. Estas soluções podem ser dedicadas ou existir em cada um dos servidores do [[cluster]]. |
|||
===Soluções=== |
|||
* [[RAID]] |
|||
* ''[[Storage Area Network]]'' |
|||
[[Image:Balanceamento_de_carga_(NAT).jpg|thumb|Figura 1 - Balanceamento de carga (NAT).]] |
|||
[[Image:Balanceamento_de_carga_(DR).jpg|thumb|Figura 2 - Balanceamento de carga (''Direct Routing'').]] |
|||
==Balanceamento de [[rede de computadores|rede]]== |
|||
O balanceamento da utilização da rede passa sobretudo por reencaminhar o tráfego por caminhos alternativos a fim de descongestionar os acessos aos servidores. Este balanceamento pode ocorrer a qualquer nível da camada OSI. |
|||
A '''Figura 1''' sugere a existência de um mecanismo/dispositivo responsável pelo balanceamento ('''director'''). Na verdade, ele pode existir sob várias formas, dependendo do(s) serviço(s) que se pretende balancear. Este director serve também de interface entre o [[cluster|cluster de servidores]] e os clientes do(s) serviço(s) - tudo o que os clientes conhecem é o endereço semi-público deste [[servidor]]. Esta abordagem (clássica) é algo limitada, em termos de [[escalabilidade]], ao número de [[trama]]s que o director consegue redireccionar, principalmente devido à velocidade dos ''[[barramento|buses]]'' das [[placa de rede|placas de rede]]. Existem, no entanto, outras soluções mais complexas que tiram melhor partido das características do protocolo [[TCP/IP]] em conjunto com ''routing'' especializado ('''[[NAT]]''', '''[[IP Tunneling]]''', '''Direct Routing'''). |
|||
===Exemplo=== |
|||
Um exemplo de um site a utilizar técnicas de balanceamento de carga é a própria [[Wikimedia Foundation]] e os seus projectos. Em Junho de 2004, a carga era balanceada usando uma combinação de: |
|||
* [[Round robin]] [[Domain Name System|DNS]], que distribui os pedidos uniformemente para um dos três [[servidor de cache|servidores de cache]] [[Squid]]; |
|||
* Estes servidores de ''cache'' usam os tempos de resposta para distribuir os pedidos para cada um dos sete servidores de páginas. Em média, os servidores Squid já têm em ''cache'' páginas suficientes para satisfazer 75% dos pedidos sem sequer consultar os servidores de páginas; |
|||
* Os scripts [[PHP]] que formam a aplicação distribuem a carga para um de vários servidores de [[Banco de dados|base de dados]] dependendo do tipo do pedido, com as atualizações indo para um servidor primário e as consultas para um ou mais servidores secundários. |
|||
===Soluções (software)=== |
===Soluções (software)=== |
||
Existem soluções que operam exclusivamente em apenas algumas camadas (níveis) do [[Modelo OSI]]: |
Existem soluções que operam exclusivamente em apenas algumas camadas (níveis) do [[Modelo OSI]]: |
||
* Nível 4: [http://www.linuxvirtualserver.org/ Linux Virtual Server] |
* Nível 4: [http://www.linuxvirtualserver.org/ Linux Virtual Server] |
||
* Nível 5/6/7: [http://www.zeus.com/products/zlb/ Zeus Load Balancer] |
* Nível 5/6/7: [http://www.zeus.com/products/zlb/ Zeus Load Balancer] |
||
==Balanceamento de [[Unidade Central de Processamento|CPU]]== |
|||
Este tipo de balanceamento é efectuado pelos [[Sistema de processamento distribuído|sistemas de processamento distribuído]] e consiste, basicamente, em dividir a carga total de processamento pelos vários [[processador]]es no sistema (sejam eles locais ou remotos). |
|||
===Soluções (software)=== |
|||
* [http://www.beowulf.org/ Beowulf] |
|||
* [http://www.openmosix.org/ openMosix] |
|||
* [http://www.openssi.org/ openSSI] |
|||
* [http://oscar.sourceforge.net/ OSCAR] |
|||
=={{Ver também}}== |
|||
{{Commons|Load balancing}} |
|||
* [[Sistema de processamento distribuído]] |
|||
* [[Sistemas distribuídos]] |
|||
=={{Ligações externas}}== |
|||
* [http://www.linux-ha.org/ Linux High Availability Project] |
|||
[[Categoria:Computação distribuída]] |
|||
[[de:Server Load Balancing]] |
|||
[[el:Load balancing (computing)]] |
|||
[[en:Load balancing (computing)]] |
|||
[[es:Balance de carga]] |
|||
[[fr:Répartition de charge]] |
|||
[[ja:サーバーロードバランス]] |
|||
[[nl:Load balancing]] |
|||
[[pl:Równoważenie obciążenia]] |
|||
[[ru:Балансировка нагрузки]] |
Revisão das 08h02min de 27 de agosto de 2008
Todo o hardware tem o seu limite, e muitas vezes o mesmo serviço tem que ser repartido por várias máquinas, sob pena de se tornar congestionado. Estas soluções podem-se especializar em pequenos grupos sobre os quais se faz um balanceamento de carga: utilização do CPU, de armazenamento, ou de rede. Qualquer uma delas introduz o conceito de clustering, ou server farm, já que o balanceamento será, provavelmente, feito para vários servidores.
Balanceamento de armazenamento (storage)
O balanceamento do suporte de armazenamento permite distribuir o acesso a sistemas de ficheiros por vários discos (software/hardware RAID), pelo que derivam ganhos óbvios em tempos acesso. Estas soluções podem ser dedicadas ou existir em cada um dos servidores do cluster.
Soluções
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/3e/Balanceamento_de_carga_%28NAT%29.jpg/220px-Balanceamento_de_carga_%28NAT%29.jpg)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/5/56/Balanceamento_de_carga_%28DR%29.jpg/220px-Balanceamento_de_carga_%28DR%29.jpg)
Balanceamento de rede
O balanceamento da utilização da rede passa sobretudo por reencaminhar o tráfego por caminhos alternativos a fim de descongestionar os acessos aos servidores. Este balanceamento pode ocorrer a qualquer nível da camada OSI.
A Figura 1 sugere a existência de um mecanismo/dispositivo responsável pelo balanceamento (director). Na verdade, ele pode existir sob várias formas, dependendo do(s) serviço(s) que se pretende balancear. Este director serve também de interface entre o cluster de servidores e os clientes do(s) serviço(s) - tudo o que os clientes conhecem é o endereço semi-público deste servidor. Esta abordagem (clássica) é algo limitada, em termos de escalabilidade, ao número de tramas que o director consegue redireccionar, principalmente devido à velocidade dos buses das placas de rede. Existem, no entanto, outras soluções mais complexas que tiram melhor partido das características do protocolo TCP/IP em conjunto com routing especializado (NAT, IP Tunneling, Direct Routing).
Exemplo
Um exemplo de um site a utilizar técnicas de balanceamento de carga é a própria Wikimedia Foundation e os seus projectos. Em Junho de 2004, a carga era balanceada usando uma combinação de:
- Round robin DNS, que distribui os pedidos uniformemente para um dos três servidores de cache Squid;
- Estes servidores de cache usam os tempos de resposta para distribuir os pedidos para cada um dos sete servidores de páginas. Em média, os servidores Squid já têm em cache páginas suficientes para satisfazer 75% dos pedidos sem sequer consultar os servidores de páginas;
- Os scripts PHP que formam a aplicação distribuem a carga para um de vários servidores de base de dados dependendo do tipo do pedido, com as atualizações indo para um servidor primário e as consultas para um ou mais servidores secundários.
Soluções (software)
Existem soluções que operam exclusivamente em apenas algumas camadas (níveis) do Modelo OSI:
- Nível 4: Linux Virtual Server
- Nível 5/6/7: Zeus Load Balancer
Balanceamento de CPU
Este tipo de balanceamento é efectuado pelos sistemas de processamento distribuído e consiste, basicamente, em dividir a carga total de processamento pelos vários processadores no sistema (sejam eles locais ou remotos).