Eu tenho 2 servidores virtuais no Softlayer, ambos rodando HAProxy. Estou tentando configurar o failover com keepalived. Cada servidor possui um IP privado e um IP público, e eles estão na mesma VLAN. Eu tentei muitas configurações diferentes para keepalived, mas parando o HAProxy no mestre, ele não faz o failover para o BACKUP.
Eu li que multicast não era suportado, então mudei minhas configurações para unicast. As configurações agora, no backup/master são basicamente essas:
vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
}
vrrp_instance VI_1 {
debug 2
interface eth1
state MASTER
virtual_router_id 51
priority 101
unicast_src_ip 1.2.3.4 # My IP
unicast_peer {
5.6.7.8 # peer IP
}
track_script {
chk_haproxy
}
}
Onde MYIP é o endereço IP público do servidor no qual o arquivo conf está e PEERIP é o endereço IP público do par. Ainda não está funcionando. Parando o HAProxy no mestre, ele não faz failover para o backup.
Gostaria de saber se alguém configurou o HAProxy com failover no Softlayer e como eles fizeram isso?
Eu consegui configurar isso, e aqui está como eu fiz:
Criei um endereço IP global usando o painel de controle do SoftLayer.
Eu tenho Debian 7 em ambos os servidores virtuais HAProxy. Adicionei o endereço IP global à interface eth1 em ambos os servidores.
Aqui estão as configurações do HAProxy usadas em ambos os servidores:
Aqui estão as configurações Keepalived no servidor MASTER:
Aqui estão as configurações Keepalived no servidor BACKUP:
Como dito acima, estou executando o Debian 7. Como pode ser visto nas configurações do keepalived, tenho um script notify_master. Aqui está tudo o que é necessário para executar o script:
Agora que todas as dependências estão definidas, o script deve funcionar. Aqui está o script, que salvei como
/usr/bin/reroute_global
:Você precisaria alterar API_USERNAME/KEY para corresponder às suas credenciais de API. O script obtém o primeiro IP global de seus endereços IP globais do SoftLayer e redireciona o IP global para o sistema. No caso de failover, o BACKUP se torna MASTER e executa o script, que roteia o endereço IP global para si mesmo.
teste
curl http://<global_IP>
service haproxy stop
Na cópia de segurança:
tail -f /var/log/syslog
. Você deve ver algo assim:curl http://<global_IP>
(deve funcionar se o failover funcionar)