Este artigo visa mostrar como implementar uma solução um pouco mais simples de Alta Disponibilidade no estilo ativo/passivo com qualidade. A idéia é simples, temos duas máquinas, cada uma com seu próprio IP e ambas compartilhando um terceiro IP. Quando a máquina master cair, a slave assume o controle sobre o IP compartilhado.
Conhecimentos prévios: Bons conhecimentos sobre *nix e
ótimos conhecimentos sobre TCP/IP.
UCARP vem de Userland CARP (Common Address Redundancy
Protocol), que é um protocolo que serve para duas máquinas
compartilharem o mesmo IP, uma alternativa ao VRRP (Virtual
Router Redundancy Protocol). Este "userland" significa que
ele funciona em modo usuário - o que facilita o processo de
implementação por não precisar aplicar nenhum patch ao kernel.
Este artigo abordará a implementação de um cluster do tipo
ativo/passivo.
[2] Comentário enviado por allangood em 22/02/2005 - 11:25h
Obrigado Fábio. Está é a intenção, escrever coisas úteis! :)
Espero que mais pessoas também gostem e usem no seu dia-a-dia.
Esta solução já me rendeu boas noites de sono! :)
[3] Comentário enviado por pingofdeath em 22/03/2005 - 17:44h
Caro Allan,
Estamos com um projeto de formatura (do curso de telemática) e não sabemos nem por onde começar....O projeto é sobre Servidor web de alta disponibilidade rodando no Fedora Core 3 ....Será q vc pode nos ajudar.... mande um e-mail pra mim ag_pereiras@yahoo.com.br....blz..agradecemos a sua colaboração...
[4] Comentário enviado por Good_speed em 13/04/2006 - 08:01h
Oi Allan,
Cara quero dar meus parabéns pelo seu artigo sobre (Alta disponibilidade com IP compartilhado – UCARP) ficou uma blz. Gostaria da sua ajuda p/ a seguinte situação, tenho 02 servidores com 02 placa de redes cada, e gostaria que as 02 placas trabalhasse com o mesmo sistema, pois pelo q entendei seu artigo ele só funciona em maquina que tem so uma placa de rede, será que funciona com duas com ips diferentes?
[5] Comentário enviado por rsmartins em 25/07/2006 - 09:15h
Pessoal ....
Testei o UCARP no Debian Sarge e no Fedora 3 e funcionou tranquilo ...
Porém estou precisando usá-lo no Fedora 5, qnd eu "starto" o ucarp não vejo nenhum processo rodando .... "ps aux | grep ucarp" e o IP compartilhado nçao eh setado ....
[7] Comentário enviado por allangood em 03/04/2007 - 10:44h
Olá Vinicius (unimedvr),
Este procedimento funciona com qualquer serviço, mas cada um tem um grau de complexidade. No caso do e-mail você precisará solucionar os seguinte problema:
Em caso de queda, os arquivos da máquina "master" devem passar para a "slave" ou os usuários não terão acesso a seus e-mails antigos.
Uma boa solução para isso é usar o DRBD (http://www.drbd.org) para fazer um espelhamento de HD em um disco remoto ou caso deseje algo mais robusto, usar o GFS ou OCFS2 para fazer um cluster do tipo ativo/ativo, desta forma 2 ou mais máquinas conseguem escrever em um mesmo disco ao mesmo tempo.
Este programa (ucarp) é para coisas bem simples, como um servidor web, para coisas mais complexas, aconselho usar o HeartBeat ou ultra monkey.
[11] Comentário enviado por allangood em 09/08/2007 - 10:25h
Ok, vamos lá.
Um checklist rápido:
- As duas estão rodando o ucarp?
- As duas possuem os scripts configurados?
- As duas compartilham a mesma senha?
- Ao subir o daemon (ucarp) foi definido quem seria o master?
[12] Comentário enviado por whonix em 09/08/2007 - 10:39h
as duas estão rodando ucarp - ok
os scripts estão configurados conforme o tutorial - ok
nas duas tem um usuario com a mesma senha, inclusive o root - ok
o ucarp só ta subindo quando eu executo o .sh com as linhas descritas no tutorial.
mais como eu defino o master? pela opção -P?
[13] Comentário enviado por allangood em 09/08/2007 - 10:49h
A senha que me referi é do ucarp "-p password".
Algumas coisas mudaram desde que escrevi este tutorial.
Você deve colocar a opção -P em todos os nós e definir quem é o master com a opção "-b" seguida de um número. O menor número é o master.
Exemplo:
[17] Comentário enviado por allangood em 15/08/2007 - 12:15h
Olá Osvaldo,
Parece que você está enfrentando o problema do ARP.
Pela sua topologia (pelo que puder ver) você precisa colocar o IP do cluster (IP Virtual - VIP) na interface de loopback de todos os nós do cluster:
# ip addr del 10.1.1.1/32 dev lo
E coloque isso no seu /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[18] Comentário enviado por baleis em 04/05/2009 - 13:16h
Allan, como posso configurar para varios ip virtuais, ou seja tenho no firewall 13 ip da rede 200.x.x.x/240 em eth0 que devem ser assumidos na outra maquina caso uma delas falhe ?
Obrigado
[19] Comentário enviado por drakula em 03/06/2009 - 21:58h
não sabia que tinham portado o CARP dos BSD pra linux, valeu o artigo é bem mais simples e mais eficiente usar CARP do que DRDB valeu, podiam portar a padronização também ehehheheh
[20] Comentário enviado por yurirohr em 24/07/2009 - 11:57h
Ola, estou com um problema e gostaria de saber se alguem pode me ajudar. Utilizo OpenSUSE 11 instalei o pacote RPM do Ucarp com o comando rpm -ihv, naum apareceu nenhum erro, porem naum localizo no sysctl -a nada do carp, o carp até funciona porém a função preempt naum, gostaria de saber se alguem já viu alguma coisa parecida...
[21] Comentário enviado por Tacioandrade em 14/07/2012 - 09:54h
Cara ótimo artigo, muito bom mesmo. Só tenho uma duvida. No meu caso nos scripts de vip-up.sh e vip-down.sh eu posso colocar qualquer tipo de comando, como por exemplo subir um sgbd ou algo do tipo?
Pergunto isso pois penso em usar a ideia para montar um Cluster de alta disponibilidade para um SGBD.