Preparando o ambiente
Alguns ajustes devem ser feitos para que o cluster funcione perfeitamente. Devemos criar ou alterar algumas configurações, sempre lembrando que tudo deve ser criado igual nos dois servidores.
# mkdir /storage
# mkdir /database
# mkdir /logs
# vi /etc/hosts
Configure o arquivo hosts como na figura acima.
Configurando DRBD
Antes de configurar o DRBD vamos conferir se as partições estão corretas. Digite:
# fdisk -l
Conferindo:
- /dev/sda2 - partição usada para metadados do DRBD;
- /dev/sdb1 - partição que será usada pelo dispositivo /dev/drbd0 que montar /storage;
- /dev/sdc1 - partição que será usada pelo dispositivo /dev/drbd1 que montar /database.
Agora vamos configurar o nosso
drbd.conf:
# vi /etc/drbd.conf
# <<Configuração do DRBD>>
# [Configuração do Disco /storage]
resource r0 {
protocol C;
incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f";
startup { wfc-timeout 0; degr-wfc-timeout 120; }
disk { on-io-error detach; }
syncer {
rate 50M;
group 1;
}
on torrenorte {
device /dev/drbd0;
disk /dev/sdb1;
address 10.27.1.101:7791;
meta-disk /dev/sda2[0];
}
on torresul {
device /dev/drbd0;
disk /dev/sdb1;
address 10.27.1.102:7791;
meta-disk /dev/sda2[0];
}
}
# [Configuração do Disco /database]
resource r1 {
protocol C;
incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f";
startup { wfc-timeout 0; degr-wfc-timeout 120; }
disk { on-io-error detach; }
syncer {
rate 50M;
group 1;
}
on torrenorte {
device /dev/drbd1;
disk /dev/sdc1;
address 10.27.1.101:7792;
meta-disk /dev/sda2[1];
}
on torresul {
device /dev/drbd1;
disk /dev/sdc1;
address 10.27.1.102:7792;
meta-disk /dev/sda2[1];
}
}
Terminando de editar o drbd.conf, vamos copiá-lo para o outro servidor digitando o comando:
# scp /etc/drbd.conf 10.27.1.102:/etc/
Vá até o servidor torresul e confira se o drbd.conf está correto. Inicie o drbd nos dois servidores utilizando o comando:
# service drbd start
Assim que iniciar, digite o comando:
# cat /proc/drbd
Se estiver certo deve aparecer como na figura abaixo, onde 0 é o drbd0 e 1 é drbd1. O status inicial vai iniciar como Secondary/Secondary e Inconsistent.
Agora precisamos setar a primeira replicação. Como nosso servidor torrenorte vai ser o drbd0 primário e o torresul secundário e no servidor torresul o drbd1 será o primário e o torrenorte o secundário, então devemos setar isso através dos comandos:
Servidor torrenorte:
# drbdsetup /dev/drbd0 primary --do-what-I-say
Servidor torresul:
# drbdsetup /dev/drbd1 primary --do-what-I-say
Em seguida digite o comando:
# watch -n 1 cat /proc/drbd
em cada servidor. Neste ponto será mostrado o processo de replicação entre os servidores, como na figura abaixo:
Na figura acima o drbd0 está primário/secundário e o drbd1 secundário/primário. Assim que terminar a replicação veja que o status dos discos estarão consistentes como na figura abaixo:
O próximo passo é formatar a partição drbd:
Servidor torrenorte:
# mkfs.xfs -f /dev/drbd0
Servidor torresul:
# mkfs.xfs -f /dev/drbd1
Vamos fazer alguns testes manuais para checar se nosso drbd está correto. No servidor torrenorte monte o disco drbd0 em /storage.
Servidor torrenorte:
# mount /dev/drbd0 /storage
Servidor torresul:
# mount /dev/drbd1 /database
Em seguida digite "df -h" nos dois servidores para ver se está corretamente configurado, como na figura abaixo:
Torrenorte
Torresul
Para comprovarmos se está replicando, crie um arquivo de teste em cada servidor digitando:
Servidor torrenorte:
# touch /storage/teste1
Servidor torresul:
# touch /database/teste2
Com arquivo criado, vamos transferir o disco /storage para o servidor torresul e o disco /database para o torrenorte. Primeiro temos que desmontar os discos.
Servidor torrenorte:
# umount /storage
# drbdadm secondary r0
Servidor torresul:
# umount /database
# drbdadm secondary r1
Com tudo desmontado digite "cat /proc/drbd" e o status nos dois servidores tem que estar como Secondary/ Secondary. Veja na figura abaixo:
Vamos inverter as coisas montado /storage em torresul e /database em torrenorte. Digite a sequência de comandos:
Servidor torrenorte:
# drbdadm primary r1
# mount /dev/drbd1 /database
Servidor torresul:
# drbdadm primary r0
# mount /dev/drbd0 /storage
Em seguida digite "df -h" nos dois servidores para verificar a inversão, como na figura abaixo:
Torrenorte
Torresul
Verifique se os arquivos criados foram replicados:
Servidor torrenorte:
# ls -l /database
Servidor torresul:
# ls -l /storage
DRBD pronto e funcional! Agora precisamos configurar o
heartbeat, pois ele será responsável em montar e desmontar os discos do DRBD de forma automatizada. Antes de prosseguir, desmonte as partições /database e /storage nos servidores e volte o estado dos dois para Secondary / Secondary. O jeito mais rápido é, após desmontar os discos, parar o serviço de drbd nos dois servidores digitando:
# service drbd stop
Logo em seguida digite:
# service drbd start
Por padrão o serviço iniciar como Secondary / Secondary.