MySQL + DRBD + Heartbeat

Neste tutorial irei mostrar como deixar o banco de dados MySQL em alta disponibilidade, usando o DRBD e o Heartbeat

1. Verifique aqui a instalação do DRBD.

DAQUI EM DIANTE DEVE SER FEITO NOS DOIS SERVIDORES

2. Instale o MySQL Server, Apache, PHP e PhpMyAdmin (apache, php e phpmyadmin serão usados para testes):

apt-get install mysql-server-5.5 mysql-server-core-5.5 apache2 php5 phpmyadmin

2.1. Pare o serviço mysql

service mysql stop

2.2. Copie os arquivos da pasta /var/lib/mysql/ para a pasta /ha

cp -a /var/lib/mysql/ /ha/

2.3. Edite o arquivo /etc/mysql/my.cnf e modifique:

datadir /var/lib/mysql

para

datadir /ha/mysql

e

bind-address = 127.0.0.1

para

bind-address = 192.168.2.254

3. Instale o Heartbeat

apt-get install heartbeat

3.1. Acesse o diretório 

1
2
3
4
5
cd /etc/ha.d/
echo "auth 1" > authkeys
echo "1 md5 123456" >> authkeys
chmod 600 /etc/ha.d/authkeys
echo "servidor IPaddr::192.168.2.254/24/eth0 drbddisk::r0 Filesystem::/dev/drbd0::/ha::ext4 mysql" > haresources

3.4. Crie o arquivo ha.cf e adicione o conteúdo abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
node servidor1
node servidor2
bcast eth0
debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 2
deadtime 30
warntime 10
initdead 90
baud 19200
udpport 694
auto_failback off
compression bz2
compression_threshold 2

3.5. Mude o /etc/fstab e adicione a linha abaixo para que a partição seja montada automaticamente

echo "/dev/drbd0 /ha ext4 _netdev,defaults 0 0" >> /etc/fstab

3.6. Inicie o Heartbeat

/etc/init.d/heartbeat start

4. Testando
Verifique no servidor1 com o comando
ifconfig se foi criada uma interface virtual eth0:0 com o ip 192.168.2.254, caso sim, tente acessar o phpmyadmin pelo navegador: http://192.168.2.254/phpmyadmin, use o usuário e senha criados na instalação do mysql, crie um tabela, faça logout  e volte ao servidor1 e digite: service heartbeat stop, vá ao servidor2 e digite ifconfig, se aparecer uma interface virtual com o mesmo ip de cima, acesse http://192.168.2.254/phpmyadmin. Se a tabela criada anteriormente estiver aparecendo, quer dizer que a parada funfou
!

Erros ou sugestões, deixe nos comentários.

Até a próxima

3 comments for “MySQL + DRBD + Heartbeat

  1. Edgar
    26 de maio de 2013 at 21:53

    Testei aqui funciono tudo perfeito .Mas se caso eu quiser fazer tudo isso e usar RAID 1 para alta disponibilidade como ficaria ?

    • Isac Ferreira
      27 de maio de 2013 at 07:55

      Edgar, ao usar o DRBD, você já está usando RAID 1.

      Sds,

  2. Filipe
    22 de agosto de 2014 at 00:03

    Bacana seu tutorial porem acho que deveria ser mais detalhista e começar do zero até o final.. porque ai atenderia um amplo número de pessoas… mais mto bom !

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *