DRBD: Introducción y prueba de concepto
Introducción
En entornos de alta disponibilidad, la replicación de datos juega un papel crucial. DRBD (Distributed Replicated Block Device) es una solución popular en el mundo Linux que permite la replicación de bloques de datos entre servidores.
En este artículo, exploraremos DRBD y realizaremos una prueba de concepto para demostrar su funcionalidad.
¿Qué es DRBD?
DRBD es un sistema de almacenamiento distribuido que replica bloques de datos entre servidores Linux. Ofrece replicación en tiempo real y se integra con varios sistemas de archivos como ext3, ext4, XFS, etc. ya que se realiza a nivel de bloque.
DRBD es ampliamente utilizado en configuraciones de alta disponibilidad, almacenamiento compartido y sistemas de respaldo.
Características principales de DrBD:
- Replicación en tiempo real de bloques de datos.
- Configuraciones primario-secundario y primario-primario.
- Integración con sistemas de archivos populares.
- Detección y recuperación automática de fallos.
- Configuración flexible y escalabilidad.
Prueba de Concepto
Para nuestra prueba de concepto, configuraremos una replicación simple entre dos servidores CentOS 8, utilizando dos máquinas virtuales (VM) como ejemplo.
Configuración del Entorno
Instalación de DRBD en ambos servidores, instalaremos el paquete drbd-utils:
apt-get install drbd-utils
En la configuración de DRBD, en el drbd-01 (primario) y en el drbd-02 (secundario) editamos el archivo /etc/drbd.conf:
resource rrecurso0 {
device /dev/drbd0;
disk /dev/sdb;
meta-disk internal;
on drbd-01 {
address 10.20.30.100:7788;
node-id 0;
}
on drbd-02 {
address 10.20.30.101:7788;
node-id 1;
}
}
En este ejemplo, r0 es el recurso que vamos a replicar, /dev/sdb es el disco que vamos a usar y 10.20.30.100 y 10.20.30.101 son las direcciones IP de los servidores drbd-01 y drbd-02, respectivamente.
En inicialización y sincronización en el servidor drbd-01 (primario), iniciamos el recurso y lo ponemos en el estado primario:
drbdadm create-md recurso0
drbdadm up recurso0
drbdadm primary --force recurso0
En este punto, podemos ver el estado del recurso y verificar que el nodo primario tiene el rol de primario:
drbdadm status
Luego, en el servidor drbd-02 (secundario), creamos el recurso:
drbdadm create-md recurso0
drbdadm up recurso0
Verificación del estado de la replicación ejecutando nuevamente:
drbdadm status
Esperamos hasta que el recurso esté sincronizado:
Para realizar una prueba del funcionamiento, formateamos el volumen en el nodo primario, lo montamos en /mnt y escribimos un fichero de prueba:
mkfs.ext4 /dev/drbd0
mount /dev/drbd0 /mnt
echo "Prueba DRBD" > /mnt/prueba.txt
Es importante tener en cuenta que cuando un nodo tiene el rol de “secundario”, su volumen no puede ser montado ni utilizado, pero esto no es totalmente cierto, ya que DRBD permite una configuración de 2 primarios (mediante el uso de la directiva allow-two-primaries).
Hay muchos puntos a tener en cuenta y limitaciones, los cuales no vamos a abarcar en este artículo.
Entonces, para poder montar el volumen en drbd-02 es necesario que dicho nodo pase a rol primario:
Montamos el volumen en /mnt y comprobamos que el fichero /mnt/prueba.txt contiene el texto “Prueba DRBD” que añadimos en el fichero desde el nodo drbd-01:
Conclusiones
DRBD ofrece una solución robusta y confiable para la replicación de datos en entornos Linux. Su facilidad de configuración y su capacidad para garantizar la alta disponibilidad lo convierten en una herramienta importante para los administradores de sistemas.
La prueba de concepto realizada demuestra la efectividad de DRBD en replicar datos entre servidores, garantizando así la integridad y disponibilidad de la información.
Referencias
Sitio oficial de DRBD: www.drbd.org
Documentación de DRBD: docs.linbit.com