Cuando se maneja información valiosa siempre es necesario tenerla replicada para poder disponer de ella en el menor tiempo posible (inmediatamente de manera óptima), y por supuesto, sin ninguna pérdida de datos.
Hace ya mucho tiempo que se usa RAID1 (y el resto de opciones RAID) en los discos de los servidores para tener una réplica exacta de los datos en ambos discos. De esta manera, en caso de fallo en uno de los discos, los datos siguen intactos en el otro, con lo que el servicio ofrecido seguirá disponible mientras solucionamos el problema del disco afectado.
Evidentemente, RAID1 no podrá mantener la disponibilidad del servicio si lo que falla es cualquier otra parte del servidor: controladora, alimentación, red, etc. Para poder hacerlo deberíamos tener duplicadas cada una de las partes que se pueden ver afectadas…pero siempre se puede estropear la placa base.
Así que una posible solución para tener ‘duplicado’ todo el servidor es utilizar DRBD (Distributed Replicated Block Device). Se trata de un software disponible bajo GNU/Linux, que nos permite realizar un RAID1 de un disco por red (mediante TCP/IP).
En el siguiente esquema se puede apreciar como DRBD se sitúa entre el núcleo del sistema y el sistema de ficheros que escojamos para formatear el disco. Así, cualquier cambio en un disco será enviado por DRBD a través de la tarjeta de red al otro equipo, cuyo DRBD se encargará de actualizar su disco.
Hardware necesario: Para la puesta en marcha del sistema de replicación necesitaremos dos equipos conectados entre ellos por red. Lo mejor es utilizar un cable directo para evitar posibles puntos de fallo en la comunicación (es obvio decir que cuánto más rápido sea la comunicación mejor funcionará la replicación).
Software: Los dos equipos necesitan GNU/Linux como sistema operativo, e instalar el software DRBD en ambos. En nuestro caso, usamos la distribución Debian.
Configuración: El primer paso es crear una partición del mismo tamaño en ambos equipos. Habrá que configurar uno de los dos como primario (aquel equipo en el que se realizan las actualizaciones de los datos) y el otro como secundario (aquel en el que se replicará cada actualización).
Funcionamiento: La replicación en el secundario no se realiza a nivel de fichero, sino a nivel de bloque de disco (es decir, DRBD no ve ficheros a replicar sino bloques de disco que han sido modificados).
Para poder acceder a los datos hay que declararlo como primario (antes de ello, obligatoriamente hay que declarar el otro equipo como secundario, ya que no es posible tener dos primarios). Este será el procedimiento a seguir si el equipo primario tiene algún problema y deja de responder.
Automatización: Para poder automatizar el paso de maestro<->secundario en caso de fallo, se utiliza el software Heartbeat, que ejecutará todas las operaciones necesarias (por supuesto configurable) para que la pérdida en la disponibilidad del servicio sea mínima (se explicará más adelante en el blog).
Se puede obtener abundante información sobre DRBD en su página oficial (en inglés): http://www.drbd.org