Configurando Keepalived no Redhat 6 / 7

Neste post será apresentado como configurar o Keepalived no Redhat.

Keepalived é uma ferramenta que mantém a disponibilidade de um serviço através de um VIP. Nas versões antes do RHEL 7 existia um serviço chamado PIRANHA que realizava a mesma função , porém do RHEL7 em diante foi mantido o HAPROXY e Keepalived como ferramenta de balanceamento oficial.

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/7.0_Release_Notes/sect-Red_Hat_Enterprise_Linux-7.0_Release_Notes-Clustering-Keepalived_and_HAProxy_Replace_Piranha_as_Load_Balancer.html

OBS: Neste laboratório será apresentado como configurar o Keepalived através do pacote source, no RHEL / CentOS 7 é nativo do repositório os pacotes.

1) Ambiente :

10.0.0.100 – VIP
10.0.0.101 – SERVER-01 – RHEL 6.5
10.0.0.102 – SERVER-02 – RHEL 6.5

Em nosso cenário será criado um ambiente onde caso o servidor 1 falhe o servidor 2 irá assumir.

keepalived-01

2) Instalação dos pacotes necessários :

yum -y install kernel-headers kernel-devel openssl-devel

3) Instalando o Keepalived :

Baixando os pacotes e compilando o Keepalived

cd /opt/
wget -v http://www.keepalived.org/software/keepalived-1.2.19.tar.gz
tar -xvf keepalived-1.2.19.tar.gz
cd keepalived-1.2.19
./configure --with-kernel-dir=/lib/modules/$(uname -r)/build
make && make install

Criando os softlinks

 cd /etc/sysconfig
 ln -s /usr/local/etc/sysconfig/keepalived .
 cd /etc/rc3.d/
 ln -s /usr/local/etc/rc.d/init.d/keepalived S100keepalived
 cd /etc/init.d/
 ln -s /usr/local/etc/rc.d/init.d/keepalived .

Startando o serviço

service keepalived start

4) Criando o arquivo de configuração no SERVER-01

Este servidor será o master, conforme apresentado na configuração, os servidores estão se falando somente por senha

vim /etc/keepalived/keepalived.conf

vrrp_instance SERVER-01 {
        interface eth0 
        state MASTER
        virtual_router_id 51
        priority 101
        authentication {
            auth_type PASS
            auth_pass Add-Your-Password-Here
        }
        virtual_ipaddress {
                10.0.0.100/24
        }
}

5) Criando o arquivo de configuração no SERVER-02 :

No SERVER-02 estamos setando o priority como 100 , pois este será o servidor de backup.

vim /etc/keepalived/keepalived.conf

vrrp_instance SERVER-02 {
        interface eth0 
        state MASTER
        virtual_router_id 51
        priority 100
        authentication {
            auth_type PASS
            auth_pass Add-Your-Password-Here
        }
        virtual_ipaddress {
                10.0.0.100/24
        }
}

6) Testes Finais :

Iremos causar uma breve indisponibilidade para validar o funcionamento da solução.

keepalived-02

Quando eu reinicio o SERVER-01 conforme apresentado na imagem abaixo o SERVER-02 ele entra em MASTER STATE e o ip VIP é montado no SERVER-02:

keepalived-01

Quando o servidor SERVER-01 volta a responder na rede , o VIP é desmontado no SERVER-02 e o SERVER-01 passa a ser o MASTER e o SERVER-02 entra em BACKUP STATE :

keepalived-02

Referência :

http://www.keepalived.org/pdf/UserGuide.pdf