La traducción del artículo se preparó la víspera del inicio del curso.
DRBD (Dispositivo de bloque replicado distribuido) es una solución de almacenamiento distribuida, flexible y universalmente replicable para Linux. Refleja el contenido de dispositivos de bloque como discos duros, particiones, volúmenes lógicos, etc. entre servidores. Crea copias de datos en dos dispositivos de almacenamiento para que, si uno de ellos falla, se puedan utilizar los datos del segundo.
Se podría decir que es algo así como
Inicialmente, DRBD se usaba principalmente en clústeres de computadoras de alta disponibilidad (HA); sin embargo, a partir de la versión XNUMX, se puede usar para implementar soluciones de almacenamiento en la nube.
En este artículo, explicaremos cómo instalar DRBD en CentOS y demostraremos brevemente cómo usarlo para replicar el almacenamiento (partición) en dos servidores. Este es el artículo perfecto para comenzar con DRBD en Linux.
Entorno de prueba
Usaremos un clúster de dos nodos para esta configuración.
- Nodo 1: 192.168.56.101 – tecmint.tecmint.lan
- Nodo 2: 192.168.56.102 – server1.tecmint.lan
Paso 1: instale los paquetes DRBD
DRBD se implementa como un módulo del kernel de Linux. Es un controlador para un dispositivo de bloque virtual, por lo que está ubicado en la parte inferior de la pila de E/S del sistema.
DRBD se puede instalar desde ELRepo o EPEL. Comencemos importando la clave de firma del paquete ELRepo y conectando el repositorio en ambos nodos como se muestra a continuación.
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
Luego necesita instalar el módulo del kernel DRBD y las utilidades en ambos nodos usando:
# yum install -y kmod-drbd84 drbd84-utils
Si tiene SELinux habilitado, debe configurar políticas para eximir los procesos DRBD del control de SELinux.
# semanage permissive -a drbd_t
Además, si su sistema ejecuta un firewall (firewalld), deberá agregar el puerto DRBD 7789 para permitir la sincronización de datos entre los dos nodos.
Ejecute estos comandos para el primer nodo:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload
Luego ejecute estos comandos para el segundo nodo:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload
Paso 2: preparar el almacenamiento de bajo nivel
Ahora que tenemos DRBD instalado en ambos nodos del clúster, debemos aprovisionar áreas de almacenamiento de aproximadamente el mismo tamaño en ellos. Podría ser una partición del disco duro (o un disco duro físico completo), un dispositivo RAID de software,
Para este artículo, crearemos un dispositivo de bloque de prueba de 2 GB usando el comando dd.
# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024
Supongamos que se trata de una partición no utilizada (/dev/sdb1) en un segundo dispositivo de bloque (/dev/sdb) conectado a ambos nodos.
Paso 3. Configurar DRBD
Archivo de configuración principal DRBD: /etc/drbd.conf
, y se pueden encontrar archivos de configuración adicionales en el directorio /etc/drbd.d
.
Para replicar el almacenamiento, necesitamos agregar las configuraciones necesarias al archivo. /etc/drbd.d/global_common.conf
, que contiene secciones globales y generales de la configuración DRBD, y necesitamos definir recursos en .res
archivos.
Hagamos una copia de seguridad del archivo original en ambos nodos y luego abramos el nuevo archivo para editarlo (use un editor de texto de su elección).
# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf
Agregue las siguientes líneas a ambos archivos:
global {
usage-count yes;
}
common {
net {
protocol C;
}
}
Guarde el archivo y luego cierre el editor.
Miremos por un momento la línea del protocolo C. DRBD admite tres modos de replicación diferentes (es decir, tres grados de sincronía de replicación), a saber:
- protocolo A: protocolo de replicación asíncrona; Se utiliza con mayor frecuencia en escenarios de replicación a larga distancia.
- Protocolo B: protocolo de replicación semisíncrono o protocolo de memoria síncrono.
- protocolo C: habitualmente utilizado para nodos en redes con distancias cortas; Este es, con diferencia, el protocolo de replicación más utilizado en la configuración de DRBD.
Es importante: La elección del protocolo de replicación afecta dos factores de implementación: seguridad y latencia. Por el contrario, el rendimiento no depende significativamente del protocolo de replicación seleccionado.
Paso 4: agregue un recurso
Recurso es un término general que se refiere a todos los aspectos de un conjunto de datos replicado en particular. Definiremos nuestro recurso en el archivo. /etc/drbd.d/test.res
.
Agregue lo siguiente al archivo en ambos nodos (recuerde reemplazar las variables con los valores reales de su entorno).
Preste atención a los nombres de host, debemos especificar el nombre de host de la red, que se puede obtener usando el comando uname -n
.
resource test {
on tecmint.tecmint.lan {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
address 192.168.56.101:7789;
}
on server1.tecmint.lan {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
address 192.168.56.102:7789;
}
}
}
donde:
- en el nombre de host: La sección on a la que se aplica la declaración de configuración anidada.
- test: Este es el nombre del nuevo recurso.
- dispositivo /dev/drbd0: Indica un nuevo dispositivo de bloque virtual administrado por DRBD.
- disco /dev/sdb1: Esta es una partición de dispositivo de bloque que es un dispositivo de respaldo para el dispositivo DRBD.
- metadisco: Define dónde almacena DRBD sus metadatos. Interno significa que DRBD almacena sus metadatos en el mismo dispositivo físico de bajo nivel que los datos reales en producción.
- dirección: Indica la dirección IP y el número de puerto del nodo correspondiente.
También tenga en cuenta que si los parámetros tienen los mismos valores en ambos hosts, puede especificarlos directamente en la sección de recursos.
Por ejemplo, la configuración anterior podría reestructurarse para:
resource test {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
on tecmint.tecmint.lan {
address 192.168.56.101:7789;
}
on server1.tecmint.lan {
address 192.168.56.102:7789;
}
}
Paso 5. Inicialice y ejecute el recurso
Para interactuar con DRBD usaremos las siguientes herramientas de administración (que interactúan con el módulo del kernel para configurar y administrar los recursos de DRBD):
- drbdadm: Herramienta de administración de alto nivel DRBD.
- configuración drbd: una herramienta de administración de nivel inferior para conectar dispositivos DRBD a sus dispositivos de respaldo, configurar pares de dispositivos DRBD para reflejar sus dispositivos de respaldo y para verificar la configuración de los dispositivos DRBD en ejecución.
- Drbdmeta: Herramienta de gestión de metadatos.
Después de agregar todas las configuraciones iniciales de recursos, debemos invocar el recurso en ambos nodos.
# drbdadm create-md test
Inicializando el almacén de metadatos
A continuación, debemos ejecutarlo, lo que conectará el recurso a su dispositivo de respaldo, luego configurará los parámetros de replicación y conectará el recurso a su par:
# drbdadm up test
Ahora si ejecutas el comando /dev/sdb1
:
# lsblk
Lista de dispositivos de bloqueo
Para deshabilitar un recurso, ejecute:
# drbdadm down test
Para verificar el estado de un recurso, ejecute el siguiente comando (tenga en cuenta que el estado de las unidades se espera en este punto Inconsistente/Inconsistente):
# drbdadm status test
OR
# drbdsetup status test --verbose --statistics #for a more detailed status
Comprobar el estado de un recurso en
demonio
Paso 6: Establecer el recurso principal/fuente de sincronización del dispositivo inicial
En esta etapa, DRBD está listo para funcionar. Ahora necesitamos especificar qué nodo debe usarse como fuente de sincronización inicial del dispositivo.
Ejecute el siguiente comando en un solo nodo para comenzar la sincronización completa inicial:
# drbdadm primary --force test
# drbdadm status test
Configurar el nodo primario como dispositivo inicial
Una vez completada la sincronización, el estado de ambas unidades debería ser UpToDate.
Paso 7: Probar la configuración de DRBD
Finalmente, debemos verificar si el dispositivo DRBD funcionará según sea necesario para almacenar los datos replicados. Recuerde que usamos un volumen de disco vacío, por lo que debemos crear un sistema de archivos en el dispositivo y montarlo para comprobar si podemos usarlo para almacenar datos replicados.
Necesitamos crear un sistema de archivos en el dispositivo usando el siguiente comando en el nodo donde iniciamos la sincronización completa inicial (que tiene un recurso con la función principal):
# mkfs -t ext4 /dev/drbd0
Crear un sistema de archivos en el volumen Drbd
Luego móntelo como se muestra (puede darle al punto de montaje un nombre adecuado):
# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/
Ahora copie o cree algunos archivos en el punto de montaje anterior y haga una lista larga con
# cd /mnt/DRDB_PRI/
# ls -l
Enumere el contenido del volumen principal de Drbd.
A continuación, desmonte el dispositivo (asegúrese de que el montaje no esté abierto, cambie el directorio después de desmontarlo para evitar errores) y cambie la función del nodo de primario a secundario:
# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary test
Haga que el otro nodo (que tiene un recurso con una función secundaria) sea principal, luego adjunte un dispositivo y emita una larga lista de puntos de montaje. Si la configuración funciona bien, todos los archivos almacenados en el volumen deberían estar allí:
# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls -l
Comprobando la configuración DRBD ejecutándose en el nodo secundario.
Para obtener más información, consulte las páginas de ayuda de las herramientas administrativas:
# man drbdadm
# man drbdsetup
# man drbdmeta
Información:
Resumen
DRBD es extremadamente flexible y versátil, lo que la convierte en una solución de replicación de almacenamiento adecuada para agregar HA a casi cualquier aplicación. En este artículo, mostramos cómo instalar DRBD en CentOS 7 y demostramos brevemente cómo usarlo para la replicación de almacenamiento. No dude en compartir sus opiniones con nosotros utilizando el formulario de comentarios a continuación.
Fuente: habr.com