Como configurar DRBD
www.onlinetis.com
Distributed Replicated Block Device (DRBD) es un componente de software para el kernel de Linux que permite la replicación de datos en tiempo real entre servidores.1 Funciona a nivel de bloque, lo que lo hace independiente del sistema de archivos.2
Imagina que tienes dos servidores y quieres que siempre tengan una copia idéntica de un disco.3 DRBD hace precisamente eso: cuando se escribe un dato en el disco de un servidor (el primario), DRBD lo replica inmediatamente en el disco del otro servidor (el secundario).4 Si el servidor primario falla, el secundario puede tomar su lugar sin que se pierda ningún dato, asegurando la alta disponibilidad.5 Es como un RAID 1 (espejo), pero en lugar de hacerlo con discos locales, lo hace a través de la red entre diferentes máquinas.6
Características principales
Replicación síncrona y asíncrona: DRBD puede replicar los datos en tiempo real (síncrona) para asegurar que la información nunca se pierda, o de forma asíncrona para mejorar el rendimiento en redes de alta latencia.
Alta disponibilidad (HA): Es una solución fundamental para crear clústeres de alta disponibilidad.7 Si un nodo falla, el otro nodo "asume" el rol primario y continúa proporcionando el servicio.8
Modos de funcionamiento:
Primario-Secundario: Un nodo es el principal, donde se realizan todas las operaciones de escritura y lectura. El otro nodo es el secundario, que solo recibe la copia de los datos. Este es el modo más común para la alta disponibilidad.
Doble-Primario: Ambos nodos pueden ser primarios al mismo tiempo y acceder al recurso DRBD. Esto requiere un sistema de archivos de clúster como OCFS2 o GFS2 para evitar la corrupción de datos.
Flexible: Puede replicar cualquier dispositivo de bloque, como particiones, volúmenes lógicos de LVM o dispositivos RAID.9
Recuperación automática: Si un nodo se desconecta temporalmente, DRBD detecta los bloques que cambiaron durante la desconexión y los sincroniza de forma eficiente al volver a conectarse, sin necesidad de copiar todo el dispositivo de nuevo.
Configurar Distributed Replicated Block Device (DRBD) implica varios pasos que se deben realizar en ambos servidores que formarán el clúster. Aquí te presento una guía básica y general del proceso.
1. Instalación
Primero, instala el paquete de DRBD en ambos servidores. El nombre del paquete puede variar ligeramente según la distribución de Linux que utilices.
En sistemas basados en Debian/Ubuntu:
Bashsudo apt update sudo apt install drbd-utils
En sistemas basados en RHEL/CentOS:
Bashsudo dnf install drbd-utils
2. Configuración de la red
Asegúrate de que los dos servidores puedan comunicarse entre sí a través de la red en el puerto que DRBD usará (el puerto por defecto es 7788). Verifica que no haya firewalls bloqueando este puerto.
3. Configuración de DRBD
La configuración de DRBD se realiza en el archivo
/etc/drbd.d/global_common.conf
y en un archivo de recursos específico, por ejemplo/etc/drbd.d/r0.res
.Archivo de recursos (
/etc/drbd.d/r0.res
)Este archivo define el recurso replicado (por ejemplo,
r0
). Debes crearlo en ambos servidores con la misma configuración.Fragmento de códigoresource r0 { protocol C; meta-disk internal; on hostname1 { device /dev/drbd0; disk /dev/sdb1; address 192.168.1.100:7788; node-id 0; } on hostname2 { device /dev/drbd0; disk /dev/sdc1; address 192.168.1.101:7788; node-id 1; } connection { net { cram-hmac-alg sha1; shared-secret "MiSuperSecretoDRBD"; } } }
resource r0
: Define el nombre del recurso.protocol C
: Replicación síncrona.device /dev/drbd0
: El nombre del dispositivo virtual DRBD que será creado.disk /dev/sdb1
: La partición de disco local que DRBD usará para la replicación. Asegúrate de que sea una partición vacía y del mismo tamaño en ambos servidores.address
: La dirección IP y el puerto del servidor.
4. Inicialización
Una vez que el archivo de configuración está en su lugar, inicializa el recurso en ambos servidores.
Crea el metadato en ambos servidores:
Bashsudo drbdadm create-md r0
Habilita el recurso en ambos servidores:
Bashsudo drbdadm up r0
Define el nodo primario: En uno de los servidores, designa el nodo como primario para que comience la sincronización inicial.
Bashsudo drbdadm primary --force r0
Ahora verás cómo DRBD comienza a sincronizar los datos del nodo primario al secundario. Puedes verificar el estado con
sudo drbdadm status r0
.
5. Uso del dispositivo DRBD
Una vez que la sincronización inicial se completa, el dispositivo DRBD (
/dev/drbd0
) está listo para ser utilizado.Crea un sistema de archivos: En el nodo primario, crea el sistema de archivos que desees (ext4, XFS, etc.).
Bashsudo mkfs.ext4 /dev/drbd0
Monta el dispositivo: Ahora puedes montar el dispositivo DRBD y empezar a usarlo.
Bashsudo mkdir /mnt/data sudo mount /dev/drbd0 /mnt/data
El nodo secundario siempre mostrará el dispositivo DRBD como "secundario", lo que significa que no se puede montar directamente. Si el nodo primario falla, tendrás que promover el nodo secundario a primario para poder montar y usar el dispositivo.