Alta disponibilidade com IP compartilhado - UCARP
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.
Parte 2: Introdução
Primeiramente vamos entender como o UCARP funciona.
Temos o seguinte cenário:
Todos os clientes se conectam no IP Virtual.
O UCARP irá fazer a comunicação dos 2 nós através do IP virtual, um será definido como master e outro como slave.
É tudo relativamente simples, basta definir os parâmetros nos dois nós e agendar algum tipo de sincronia. Este tipo de cluster é indicado para gateways e protocolos simples como servidores WEB. Não por limitação do programa, mas sim pela complexidade que outros serviços exigem.
Vamos entender como tudo acontece:
Máquina_1 recebe conexões pelo IP virtual (VIP) através do seu MAC address. Quando ela parar de responder, a Máquina_2 executa um script que irá assumir seu VIP e fazer um ARP poisoning, obrigando a todos da sua rede a atualizarem sua tabela ARP. Isso ocorre em frações de segundo.
ATENÇÃO: Alguns switches não suportam este tipo de técnica e acabam "ficando loucos" com isso - isso porque o switch acredita que o mesmo IP/MAC está em duas portas distintas. Uma boa idéia é limpar a tabela ARP deles (via telnet, pelo script) antes da Máquina_2 assumir o VIP.
Temos o seguinte cenário:
- Máquina A (nó 1) -> 192.168.0.1 (master);
- Máquina B (nó 2) -> 192.168.0.2 (slave);
- IP virtual compartilhado -> 192.168.0.10.
Todos os clientes se conectam no IP Virtual.
O UCARP irá fazer a comunicação dos 2 nós através do IP virtual, um será definido como master e outro como slave.
É tudo relativamente simples, basta definir os parâmetros nos dois nós e agendar algum tipo de sincronia. Este tipo de cluster é indicado para gateways e protocolos simples como servidores WEB. Não por limitação do programa, mas sim pela complexidade que outros serviços exigem.
Vamos entender como tudo acontece:
Máquina_1 recebe conexões pelo IP virtual (VIP) através do seu MAC address. Quando ela parar de responder, a Máquina_2 executa um script que irá assumir seu VIP e fazer um ARP poisoning, obrigando a todos da sua rede a atualizarem sua tabela ARP. Isso ocorre em frações de segundo.
ATENÇÃO: Alguns switches não suportam este tipo de técnica e acabam "ficando loucos" com isso - isso porque o switch acredita que o mesmo IP/MAC está em duas portas distintas. Uma boa idéia é limpar a tabela ARP deles (via telnet, pelo script) antes da Máquina_2 assumir o VIP.
Meus parabéns Allan, mais um excelente artigo pra variar!
[]'s