Agora que fizemos as regras das bordas, vamos para a configuração do CARP nos servidores Web. Aqui a ideia é a seguinte.
Vamos compartilhar os IPs 192.168.1.9 e 192.168.1.10 nos dois servidores, onde cada um será master/backup do outro.
Como utilizamos o source-hash para fazer o balanceamento, vamos imaginar que o cliente A esteja acessando o nosso servidor Web01 (que tem como IP master o 192.168.1.9). Caso seja necessário fazer qualquer manutenção nesse servidor, nós derrubamos a interface de carp que tem esse IP e automaticamente o cliente A começa a acessar nosso site pelo servidor Web02 (já que agora ele também tem o IP 192.168.1.9 como master).
A configuração em nosso primeiro servidor ficará assim:
# cat /etc/hostname.rl0
inet 192.168.1.2 255.255.255.0 NONE
!ifconfig carp0 create
!ifconfig carp0 192.168.1.9 netmask 255.255.255.0 vhid 10 pass _simmons_ advskew 1 carpdev rl0
!ifconfig carp1 create
!ifconfig carp1 192.168.1.10 netmask 255.255.255.0 vhid 20 pass _simmons_ advskew 100 carpdev rl0
Já a configuração no servidor de backup será assim:
# cat /etc/hostname.rl0
inet 192.168.1.3 255.255.255.0 NONE
!ifconfig carp0 create
!ifconfig carp0 192.168.1.9 netmask 255.255.255.0 vhid 10 pass _simmons_ advskew 100 carpdev rl0
!ifconfig carp1 create
!ifconfig carp1 192.168.1.10 netmask 255.255.255.0 vhid 20 pass _simmons_ advskew 1 carpdev rl0
Abaixo segue um desenho explicando melhor o conceito de failover.
Conclusão
Com essa solução podemos fazer qualquer manutenção tanto em nossas máquinas de borda, quanto em nossos servidores Web sem que haja downtime. E o melhor, em gastar nenhum centavo.
Isso mostra que com um pouco de estudo e algumas pesquisas podemos montar arquiteturas tão robustas quanto as que exigem equipamentos de grande porte para esse tipo de configuração.
Referências
[]'s
André Michi