DRBD: RAID1 en red entre varios equipos

DRBD es un software que permite hacer réplica de los datos de una partición entre varias máquinas. Es decir, que si tengo una partición del mismo tamaño en dos máquinas, con DRBD puedo hacer una réplica del contenido de esta partición de forma automática, para que en el caso de que una máquina falle, tenga todo el contenido de esa partición accesible desde la otra máquina. Es como un RAID1, pero entre distintas máquinas.

Habitualmente, esta partición de la que se hace mirror, solamente está montada en una de las máquinas porque se utiliza un sistema de ficheros tradicional: ext3, raiserfs, xfs, … De esta forma, solo una de las máquinas puede acceder a los datos, la que tiene la partición montada. Sirve para montar un sistema de cluster en modo activo/pasivo, y que una de las máquinas tenga todos los datos hasta que falle, y en ese momento se puede acceder desde la otra máquina.

Pero también se puede configurar para que ambas máquinas tengan acceso a la partición en espejo, y en este caso habría que montar un sistema de ficheros para acceso en clúster, como GFS o OCFS. De esta forma podemos montar un clúster activo/activo donde ambas máquinas tienen acceso simultáneo al recurso de datos.

Instalación

Para la versión 0.7 (la que había en Debian Lenny), hay que hacer lo siguiente:

Es necesario instalar las drbd-utils:

# apt-get install drbd0.7-utils

Y el módulo de kernel:

# apt-get install drbd0.7-module-source
# apt-get install dpatch
# cd /usr/src
# tar -zxf drbd0.7.tar.gz
# cd /usr/src/modules/drbd
# module-assistant prepare
# module-assistant automatic-install drbd0.7-module-source
(Navigate the module package creation procedure as logically as
possible; details for this procedure are not provided.)
# cd /usr/src
# dpkg -i drbd0.7-module-2.4.27-2-7_0.7.10-3+2.4.27-8_i386.deb

Configuración

Configurar el propio servicio en ambas máquinas (/etc/drbd.conf), por ejemplo así:

# Definicion recurso
resource r0 {
protocol C;
disk {
on-io-error panic;
}
syncer {
rate 50M; # Note: 'M' is MegaBytes, not MegaBits
}

on maquinaA.dominio.tld {
address 192.168.20.1:7789;
device /dev/drbd0;
disk /dev/sda8;
meta-disk internal;
}
on maquinaB.dominio.tld {
address 192.168.20.2:7789;
device /dev/drbd0;
disk /dev/sda8;
meta-disk internal;
}
}

Después, arrancar el servicio en ambos nodos:

# /etc/init.d/drbd start

Ejecutar lo siguiente en el nodo que queremos que sea el primario:

# drbdsetup /dev/drbd0 primary --do-what-I-say

Y cuando termine lo anterior (solo en el primario):

# drbdadm primary r0
# mkfs.ext3 /dev/drbd0

Después, ya se puede configurar el metadispositivo en el /etc/fstab de ambas máquinas:

/dev/drbd0 /shared ext3 rw,noauto 0 2

Y después, probar a montar la unidad en el primario.

# mount /shared

Petición para liberar Cisco IOS

Todo el que haya estado estudiando sobre Cisco alguna vez, habrá deseado poder probar toda la teoría disponible que se ha estado estudiando, sin necesidad de gastarse miles de euros en varios switches, routers, u otros dispositivos de Cisco.

Esto sería posible si Cisco liberara el IOS, para que cualquiera pudiera emular el comportamiento de sus dispositivos. De esta forma, la gente estaría más preparada, podría poner en práctica todos los conocimientos teóricos, podría probar configuraciones antes de aplicarlas en entornos reales, … En fin, un sin fin de ventajas si Cisco decidiera liberar su software.

Bien, pues en este blog se están recogiendo firmas para apoyar la iniciativa. Sería muy importante para cualquiera que necesite aprender tecnologías de Cisco, o prepararse para sus certificaciones.