Continuando con el tutorial de servidores de alta disponibilidad, a continuación expondré como configuré la partición en red en el sistema Heartbeat. Antes de continuar si no lo has hecho ya deberías configurar Heartbeat. Continuaremos usando la misma nomenclatura en los servidores.
El primer paso va a ser instalar DRBD en las 2 máquinas:
apt-get install drbd0.7-module-source drbd0.7-utils
Con module assistant compilamos el módulo DRBD en Debian:
module-assistant prepare m-a auto-install drbd0.7-module-source
En /etc/drbd.conf configuramos las particiones que van a estar sincronizadas en los dos servidores, este fichero debe ser idéntico en las dos máquinas:
resource data {
protocol C;
startup {
degr-wfc-timeout 120; # 2 minutes.
}
disk {
on-io-error detach;
}
net {
}
syncer {
rate 10M;
group 1;
al-extents 257;
}
on asteriskPBX {
device /dev/drbd0;
disk /dev/hdc6;
address 192.168.1.8:7788;
meta-disk internal;
}
on asteriskPBX2 {
device /dev/drbd0;
disk /dev/hda10;
address 192.168.1.7:7788;
meta-disk internal;
}Después de configurarlo en la primera lo copiamos a la segunda:
scp /etc/drbd.conf root@asteriskPBX2:/etc/
Reiniciamos ambas máquinas, y la primera que arranque nos pedirá si queremos que actúe como principal y le respondemos que sí.
Cuando el DRBD de las 2 máquinas esté conectado esto lo podemos ver en /proc/drbd:
cat /proc/drbd
version: 0.7.21 (api:79/proto:74)
SVN Revision: 2326 build by root@asteriskPBX, 2007-12-21 09:05:16
0: cs:Connected st:Primary/Secondary ld:Consistent
ns:82970 nr:612 dw:83582 dr:17714 al:0 bm:103 lo:0 pe:0 ua:0 ap:0Pasamos a sincronizar los discos, usamos el parámetro --do-what-I-say para no perder los datos la primera vez que sincronicemos ya que forzamos el primario a sincronizarse con el secundario y este hace lo mismo a la inversa con lo cual perderíamos los datos.
drbdsetup /dev/drbd0 primary --do-what-I-say
En el servidor principal creamos un directorio como punto de montaje y montamos el sistema de ficheros:
mkdir /data mount /dev/drbd0 /data
Le copiamos los datos que queramos tener en ambas máquinas (podemos copiar directorios y crear enlaces simbólicos), y procedemos a desmontarlo y lo dejaremos como secundario:
umount /data drbdsetup /dev/drbd0 secondary
Ahora nos vamos al servidor "espejo" y procedemos a crear un punto de montaje y comprobamos que el contenido es el mismo que en el servidor principal, aprovechamos para crear enlaces simbólicos si es necesario:
mkdir /data mount /dev/drbd0 /data
Hechas las comprobaciones desmontamos el disco y lo dejamos ya en secundario:
umount /data drbdsetup /dev/drbd0 secondary
Nos volvemos al servidor principal, lo dejamos como primario y montamos el disco :
drbdsetup /dev/drbd0 primary mount /dev/drbd0 /data
Ahora procederemos a integrar DRBD en Heartbeat, la partición que está sincronizada solo puede estar montada en uno de los dos servidores a la vez para ello Heartbeat tiene que indicarle a DRBD cual de los dos nodos es el que esta activo, para ello vamos a nuestro fichero /etc/ha.d/haresources y modificamos la linea para añadir el servicio drbd (esto en las dos máquinas y en una sola línea):
asteriskPBX drbddisk::data Filesystem::/dev/drbd0::/data::ext3 IPaddr2::192.168.1.10/24/eth0 apache2 mysql
Reiniciamos Heartbeat en ambas máquinas y listo:
sudo /etc/init.d/heartbeat restart
Esto ha sido todo.