Pré-requisitos do sistema
No caso do
DRBD, iremos compilá-lo. Com isso prepararemos o sistema com os pacotes necessários para que possamos continuar.
Primeiramente instalaremos o
kernel-headers e
kernel-source, necessários para a compilação do DRBD.
# aptitude install linux-headers-2.6.25-2-686 linux-source-2.6.25
Em seguida desempacote o kernel-source:
# cd /usr/src
# tar xjvf linux-source-2.6.25.tar.bz2
Agora vamos instalar os pacotes adicionais, necessários para a compilação:
# aptitude install gcc g++ make kernel-package dpkg-dev gettext flex
Compilando...
Primeiramente vamos realizar o download do DRBD e desempacotá-lo.
# cd /usr/src
# wget -c http://oss.linbit.com/drbd/8.2/drbd-8.2.6.tar.gz
# tar xzvf drbd-8.2.6.tar.gz
Em seguida vamos preparar o kernel para que a compilação seja realizada:
# cd linux-source-2.6.25
# make mrproper
# cp /boot/config-2.6.25-2-686 .config
# make modules_prepare
# cd ..
Agora vamos compilar o DRBD:
# cd drbd-8.2.6/drbd
# make clean all
# make clean
# make KDIR=/usr/src/linux-source-2.6.25/
# cd ..
# make tools
# make install
# make install-tools
# make all install
E por fim, carregue o módulo do DRBD:
# modprobe drbd
Configuração do DRBD
Primeiramente precisamos configurar os nomes das máquinas utilizadas.
# vi /etc/hosts
127.0.0.1 localhost
172.16.1.241 master
172.16.1.242 slave
Em seguida vamos configurar o DRBD.
# vi /etc/drbd.conf
resource nome_do_recurso {
protocol C;
disk {
on-io-error detach;
}
net {
timeout 60;
connect-int 10;
ping-int 10;
}
syncer {
rate 100M;
#group 1;
}
on master {
device /dev/drbd2;
disk /dev/md2;
address 172.16.1.241:7788;
meta-disk internal;
}
on slave {
device /dev/drbd2;
disk /dev/md2;
address 172.16.1.242:7788;
meta-disk internal;
}
}
OBSERVAÇÃO: Não esqueça de comentar a linha referente a montagem do device /dev/md2 no /etc/fstab, lembrando que esse device está sendo utilizado em nosso exemplo, podendo variar em outras instalações.
IMPORTANTE: Antes de continuarmos precisamos parar o DRBD para criar os recursos isoladamente na máquinas, evitando a sincronização imediata dos mesmos, já que a sincronização deverá ser iniciada somente após os recursos estiverem devidamente formatados.
# /etc/init.d/drbd stop
A seguir criaremos o recurso DRBD (nome_do_recurso) e ativaremos e formataremos o device (/dev/drbd2).
# dd if=/dev/zero bs=1M count=1 of=/dev/md2
# sync
# drbdadm create-md nome_do_recurso
# drbdadm up all
# drbdadm -- -o primary nome_do_recurso
# mkfs.xfs /dev/drbd2
E por fim, inicializaremos o serviço DRBD.
# /etc/init.d/drbd start
Com isso o DRBD já está ativo, funcionando e já deve estar sincronizando os dados. Para verificar a sincronização, execute:
# watch -n1 cat /proc/drbd
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by root@master, 2008-08-20 13:29:43
2: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r---
ns:1138640 nr:0 dw:0 dr:1146720 al:0 bm:70 lo:1 pe:5 ua:253 ap:0 oos:967033512
[.>...................] sync'ed: 1.2% (944168/945480)M
finish: 15:37:02 speed: 16,960 (11,272) K/sec