[GTER] Balanceamento de carga - BIND 9

Rubens Kuhl Jr. rubensk at gmail.com
Thu Mar 31 01:39:19 -03 2005


>    Exato. Rodei, rodei, rodei e cheguei no LVS
> (www.linuxvirtualserver.org). Nele dá pra você balancear pacotes UDP
> (nem todas as soluções funcionam com ele). O problema é que do jeito

Qual a questão com UDP ? É stateless, me parece até mais simples. Veja
que só o tráfego inbound ao cluster precisa ser balanceado; o tráfego
de pergunta e resposta dos recursivos para o mundo deve ser feito em
outro IP/porta que não seja do cluster, para que as respostas sejam
dirigidas ao recursivo que fez as perguntas.

> que ele foi implementado, se muitas requisições forem feitas de um
> host (em intervalo de tempo mínimo), o diretor (Director) só repassará
> os pacotes para um servidor (Real Server). Resolvi esse "pequeno
> problema" me metendo a fuçar no código do LVS no Kernel 2.6. Achei um
> patch (ops - one-packet scheduling -, acho que de um dos autores. Tem
> referência na página do projeto) e adaptei para o 2.6 (diacho, tive
> que fazer praticamente outro porque mudou muuuita coisa).

Já submeteu de volta aos mantenedores ? 

>    A performance dos "trabalhores", juntos, é fantástica. As perdas
> mostraram-se, em testes simples (usando queryperf), muito pequenas.
>    Outro grande problema que encontrei foi quanto às atualizações de
> zona (imagina, o DNS é não-recursivo - zonas master e zonas slave - e
> recursivo). Foi uma mistureba de script perl + rsync + ssh + rndc +
> mecanismos de locking. Acho que consegui resolver isso de forma
> simples. Tentei usar algum FS distribuido mas é impraticável tamanho
> trabalho por tão pouca informação.

Me parece que vc tinha um DNS autoritativo com número de zonas
suficientemente grande para justificar sincronismo automático da
configuração e não apenas das zonas em si.
Esse é um problema que seria melhor resolvido com algo baseado em
banco de dados (tipo PowerDNS com MySQL)... mas que em geral não
poderia ser também recursivo.

> 
> > Vale lembrar que antes de colocar um MAC multicast/broadcast numa rede
> > switched, é bom verificar se é possível limitar esse flood às portas
> > do cluster (configuração manual ou IGMP), ou deixar essas portas numa
> > VLAN separada.
> >
> 
>    Essa parte eu não entendi muito bem. Poderia me ajudar a entender?
> A gente utilizou o "Direct Routing" pra não criar um gargalo no
> director.

No mecanismo de balanceamento ativo-ativo distribuído, as máquinas
todas tem um mesmo IP e um mesmo endereço MAC. Para que elas recebam
sempre todos os pacotes e possam então selecionar tráfego, algum
desses cenários acaba acontecendo:
1) A conexão é por hub, que naturalmente faz broadcast para todas as portas
2) A conexão é por switch, o endereço MAC é multicast e foi
configurado hard-coded nas portas das máquinas do cluster, ou
aprendido por IGMP. Apenas as máquinas do cluster recebem esses
pacotes.
3) A conexão é por switch, o endereço MAC é broadcast e todas as
máquinas na mesma VLAN recebem todos os pacotes.



Rubens



More information about the gter mailing list