Calendário

Outubro 2010
STQQSSD
«Set Nov »
 123
45678910
11121314151617
18192021222324
25262728293031

Enquetes

O que precisa melhorar neste blog?

Ver os resultados

Loading ... Loading ...

Redundância Servidores - Heartbeat no LinuxRedundância Servidores –Heartbeat no Linux

Se o seu servidor parar,o que fazer? Por vezes os serviços rodados são críticos e não podem parar. A solução é ter dois servidores,sendo um deles de standby. Mas como configurar o heartbeat no linux para redundância de servidores?

Este artigo é inspirado no artigo original da Cloud Servers Knowledge Base,IP Failover –Setup and Installing Heartbeat.

Atenção,os comandos utilizados neste artigo assumem que a distribuição do Linux utilizada é baseada em Ubuntu ou Debian e usuário ‘root’!

Primeiramente,é necessário instalar o Heartbeat,recomenda-se que a distribuição utilizada esteja com todos os patches e updates. Para instalar basta emitir o comando:

apt-get install heartbeat

Seguidamente,editar os arquivos de configuração do heartbeat em /etc/heartbeat. Começaremos com o arquivo authkeys,onde serão configuradas as chaves de autorização:

vi /etc/heartbeat/authkeys

O conteúdo é basico,basta colocar uma senha ou palavra partilhada entre os servidores:

auth 1
1 sha1 YourSecretPassPhrase

A primeira linha denota o número de autorização,uma vez que é possível ter vários servidores ou ips configurados em caso de falha. A segunda linha é a senha ou chave de autorizaçao compartilhada. Este arquivo deve ser igual em ambos os servidores.

Seguidamente devemos alterar as permissões do arquivo,que não pode ser lido geral. Se não for alterado o Heartbeat falhará:

chmod 600 /etc/heartbeat/authkeys

O segundo arquivo a editar é o arquivo haresources:

vi /etc/heartbeat/haresources

O conteúdo é bem simples,e também como o anterior deve ser igual em ambos os servidores,contendo apenas o IP que será compartilhado (o IP público normalmente atríbuido ao Master/Servidor principal):

master 123.45.67.89/24

O terceiro arquivo a editar é o arquivo ha.cf,que é diferente no servidor Master e no Slave:

vi /etc/heartbeat/ha.cf

O conteúdo do arquivo no Master seria:

logfacility daemon
keepalive 2
deadtime 15
warntime 5
initdead 120
udpport 694
ucast eth1 192.168.0.2 # O endereço IP privado do servidor Slave.
auto_failback on
node master # O hostname do servidor Master.
node slave # O hostname do servidor Slave.
respawn hacluster /usr/lib/heartbeat/ipfail
use_logd yes

O conteúdo do arquivo no servidor Slave seria:

logfacility daemon
keepalive 2
deadtime 15
warntime 5
initdead 120
udpport 694
ucast eth1 172.0.0.1 # O endereço privado do servidor Master.
auto_failback on
node master # O nome de host do servidor Master.
node slave # O nome de host do servidor Slave.
respawn hacluster /usr/lib/heartbeat/ipfail
use_logd yes

Como se pode observar a diferença está apenas em uma linha. Após isso efetuar um restart ao serviço.

/etc/init.d/heartbeat restart

Para terminar é necessário permitir que o HAProxy efetue o bind ao endereço IP partilhado,adicionando a seguinte linha ao arquivo /etc/sysctl.conf:

net.ipv4.ip_nonlocal_bind=1

e executar o comando:

sysctl -p

Ok,a partir de agora temos a redundância funcionando! No entanto,podem persistir problemas com o hearbeat intermitente quando do inicio (arranque) de um servidor ou devido a um restart. Para previnir isso pode-se desabilitar configurações pré-existentes nos interfaces de rede.

Edite o arquivo /etc/network/interfaces e desabilite essas configurações:

# Comente as linhas abaixo (exemplo)
#auto eth0:1
#iface eth0:1 inet static
#address 1.2.3.4
#netmask 255.255.255.0
#gateway 1.2.3.1

Após isso,reinicie o serviço de networking através do comando:

/etc/init.d/networking restart

Agora sim,o serviço deverá estar totalmente funcional! Efetue um teste através do comando ping reiniciando e desligando os servidores para ver o heartbeat em funcionamento.

IP Failover –Setup and Installing Heartbeat

7 comments to Redundância Servidores –Heartbeat no Linux

  • Temos uma solução de HA para Linux em:

    http://saolabs.com/products/ha-server/

    abs,
    Tiago

    Like or Dislike:Thumb up 0 Thumb down 0

  • Muito bom.. vou testar. obrigado!!

    Like or Dislike:Thumb up 0 Thumb down 0

  • Nilson

    Muito obrigado por compartilhar do seu conhecimento com agente,vou fazer bom uso dele.Explicou muito bem,passo a passo bem detalhado. Obrigado!

    Like or Dislike:Thumb up 0 Thumb down 0

  • Davi de Barros

    O tutorial é muito bom,porém ainda não tive sucesso. Quando mato o heartbeat e apache no master,e vou acessar o ip do master,aparece o site do master e não do slave. Alguém pode me ajudar?

    Davi.

    Like or Dislike:Thumb up 0 Thumb down 0

  • Nuno

    Olá!
    Sei que este post já é um pouco antigo,mas vem de encontro à solução que procuro para a minha micro empresa.

    Antes de começar,queria fazer uma questão. Isto é possivel mesmo tendo apenas um IP publico e os servidores estando atrás de um router “do ISP”?
    Na configuração atual apenas tenho um servidor e as portas do router estão encaminhadas para esse servidor.
    Mas se esse falhar o ip interno do segundo servidor será outro,logo teria que mudar o encaminhamento no router. O router tem também a opção dmz.

    Like or Dislike:Thumb up 0 Thumb down 0

  • Nuno Sousa

    emmarques

    Desculpe,pode me ajudar um pouco mais.

    O cenario será o seguinte.
    Por exemplo.
    sistema operativo. Ubuntu Server 16.04.01LTS

    Maquina 1:Servidor Master:eth1:Ip:192.168.0.10
    Maquina 2:Servidor “standby”eth1:Ip:? deveria assumir o mesmo do master quando este falhar.

    Qual o software responsável para garantir que o servidor 2 é um clone do Master. Ou seja é rigorosamente igual. Tudo que alterar no primeiro o segundo copia.

    Like or Dislike:Thumb up 0 Thumb down 0

Deixar uma Resposta

  

  

  


*

You can use these HTML tags

<a href=""title=""><abbr title=""><acronym title=""><b><blockquote cite=""><cite><code><del datetime=""><em><i><q cite=""><strike><strong>