Cómo configurar DRBD para replicar el almacenamiento en dos servidores CentOS 7

Cómo configurar DRBD para replicar el almacenamiento en dos servidores CentOS 7

El DRBD. (siglas de Distributed Replicated Block Device. es una solución de almacenamiento replicado distribuida, flexible y versátil para Linux. Refleja el contenido de los dispositivos de bloque como discos duros, particiones, volúmenes lógicos, etc. entre servidores. Implica una copia de datos en dos dispositivos de almacenamiento, de modo que si uno falla, los datos del otro pueden usarse.

Puede pensar en ello como una configuración RAID 1 de red con los discos reflejados en servidores. Sin embargo, funciona de una manera muy diferente a RAID e incluso a RAID de red.

Originalmente, DRBD. se usaba principalmente en clústeres de computadoras de alta disponibilidad (HA), sin embargo, comenzando con la versión 9, se puede usar para implementar soluciones de almacenamiento en la nube.

En este artículo, mostraremos 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 a usar DRBD en Linux.

Entorno de prueba

Para el propósito de este artículo, estamos usando dos clústeres de nodos para esta configuración.

  • Nodo1. 192.168.56.101-tecmint.tecmint.lan
  • Nodo2. 192.168.56.102-server1.tecmint.lan

Paso 1: Instalación de paquetes DRBD

freestar.config.enabled_slots.push

DRBD. es implementado como un módulo del kernel de Linux. Constituye precisamente un controlador para un dispositivo de bloque virtual, por lo que se establece cerca de la parte inferior de la pila de E/S de un sistema.

DRBD. se puede instalar desde ELRepo. o repositorios de EPEL. Comencemos importando la clave de firma del paquete ELRepo y habilitemos el repositorio como se muestra en ambos nodos.

# 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, podemos instalar el módulo del kernel DRBD y las utilidades en ambos nodos ejecutando:

# yum install-y kmod-drbd84 drbd84-utils

Si tiene SELinux. habilitado, necesita modificar las políticas para eximir los procesos DRBD del control de SELinux.

# semanage permissive-a drbd_t

Además, si su sistema tiene un firewall habilitado (firewalld), debe agregar el puerto DRBD. 7789. en el firewall para permitir la sincronización de datos entre los dos nodos.

Ejecute estos comandos en 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 en 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 nivel inferior

Ahora que tenemos DRBD. instalado en los dos nodos del clúster, debemos preparar una aproximadamente idéntica área de almacenamiento de tamaño en ambos nodos. Puede ser una partición de disco duro (o un disco duro físico completo), un dispositivo RAID de software, un volumen lógico LVM o cualquier otro tipo de dispositivo de bloque que se encuentre en su sistema.

A los efectos de este artículo, crearemos un dispositivo de bloque ficticio de tamaño 2GB. usando el comando dd.

# dd if =/dev/zero of =/dev/sdb1 bs = 2024k count = 1024

Asumiremos que esta es una partición no utilizada (/dev/sdb1. en un segundo dispositivo de bloque (/dev/sdb. adjunto a ambos nodos.

Paso 3: Configurar DRBD

El archivo de configuración principal de DRBD se encuentra en /etc/drbd.conf. y se pueden encontrar archivos de configuración adicionales en el /etc/drbd.d.

Para replicar el almacenamiento, necesitamos agregar las configuraciones necesarias en /etc/drbd.d/global_common.conf que contiene las secciones globales y comunes de la configuración de DRBD y podemos definir recursos en archivos .res.

Hagamos una copia de seguridad del archivo original en ambos nodos, luego abra un nuevo archivo para editarlo (use un editor de texto de su agrado).

# 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 en ambos archivos:

global use-count yes; común net protocolo C;

Guarde el archivo y luego cierre el editor.

Vamos a sombrear brevemente más la línea protocolo C. DRBD admite tres modos de replicación distintos (por lo tanto, tres grados de sincronicidad de replicación) que son:

  • protocolo A. Protocolo de replicación asincrónica; se utiliza con mayor frecuencia en escenarios de replicación a larga distancia.
  • protocolo B. protocolo de replicación semisincrónica también conocido como protocolo sincrónico de memoria.
  • protocolo C. comúnmente utilizado para nodos en redes de corta distancia; es, con mucho, el protocolo de replicación más utilizado en configuraciones de DRBD.

Importante. la elección del protocolo de replicación influye en dos factores de su implementación: protección. y latencia. Y el rendimiento. por el contrario, es en gran medida independiente del protocolo de replicación seleccionado.

Paso 4: Agregar un recurso

Un recurso es el término colectivo que se refiere a todos los aspectos de un conjunto de datos replicados en particular. Definiremos nuestro recurso en un archivo llamado /etc/drbd.d/test.res.

Agrega el siguiente contenido al archivo, en ambos nodos (recuerda reemplazar el variables en el contenido con los valores reales para su entorno).

Tome nota de los nombres de host. necesitamos especificar el nombre de host de red que se puede obtener ejecutando el comando uname-n.

prueba de recursos en tecmint.tecmint.lan dispositivo/dev/drbd0; disk/dev/sdb1; meta-disco interno; dirección 192.168.56.101:7789; en server1.tecmint.lan dispositivo/dev/drbd0; disk/dev/sdb1; meta-disco interno; dirección 192.168.56.102:7789;

donde:

  • en nombre de host. la sección en indica a qué host se aplican las declaraciones de configuración adjuntas.
  • test. es el nombre del nuevo recurso.
  • device/dev/drbd0. especifica el nuevo dispositivo de bloque virtual administrado por DRBD.
  • disk/dev/sdb1. es la partición del dispositivo de bloque que es el dispositivo de respaldo para el dispositivo DRBD.
  • meta-disco. define dónde DRBD almacena sus metadatos. El uso de Internal significa que DRBD almacena sus metadatos en el mismo dispositivo físico de nivel inferior que los datos de producción reales.
  • dirección. especifica la dirección IP y el número de puerto del nodo respectivo .

También tenga en cuenta que si las opciones tienen valores iguales en ambos hosts, puede especificarlas directamente en la sección de recursos.

Por ejemplo, la configuración anterior se puede reestructurar para:

prueba de recursos dispositivo/dev/drbd0; disk/dev/sdb1; meta-disco interno; en tecmint.tecmint.lan dirección 192.168.56.101:7789; en server1.tecmint.lan dirección 192.168.56.102:7789;

Paso 5: Inicializar y habilitar el recurso

Para interactuar con DRBD. usaremos las siguientes herramientas de administración que se comunican con el módulo del kernel para configurar y administrar Recursos de DRBD:

  • drbdadm. una herramienta de administración de alto nivel de DRBD.
  • drbdsetup. una herramienta de administración de nivel para conectar dispositivos DRBD con sus dispositivos de bloque de respaldo, para configurar pares de dispositivos DRBD para reflejar sus dispositivos de bloque de respaldo y para inspeccionar la configuración de los dispositivos DRBD en ejecución.
  • Drbdmeta. es la herramienta de gestión de metadatos.

Después de agregar todas las configuraciones de recursos iniciales, debemos abrir el recurso en ambos nodos.

# drbdadm create-md test Inicializar almacenamiento de metadatos Inicializar almacenamiento de metadatos Inicializar almacenamiento de metadatos

A continuación, debemos habilitar el recurso. que adjuntará el recurso con su dispositivo de respaldo, luego establece los parámetros de replicación y conecta el recurso a su par:

# drbdadm up test

Ahora, si ejecuta el comando lsblk, notará que el dispositivo/volumen DRBD drbd0. está asociado con el dispositivo de respaldo /dev/sdb1 :

# lsblk  Lista de dispositivos de bloque  Listar dispositivos bloqueados Listar dispositivos bloqueados

Para deshabilitar el recurso, ejecute:

# drbdadm down test

Para verificar el estado del recurso, ejecute el siguiente comando (tenga en cuenta que en este punto se espera el estado del disco Inconsistente/Inconsistente. :

# drbdadm status test O # drbdsetup status test-verbose–statistics # para un estado más detallado  Verificar el estado de los recursos en los nodos Verificar el estado de los recursos en los nodos Check Resource Status on Nodos

Paso 6: Establecer el recurso principal/la fuente de la sincronización inicial del dispositivo

En esta etapa, DRBD. ya está listo para operación. Ahora necesitamos decirle qué nodo debe usarse como la fuente de la sincronización inicial del dispositivo.

Ejecute el siguiente comando en un solo nodo para iniciar la sincronización completa inicial:

# drbdadm primario–force test # drbdadm status test Establecer nodo principal para el dispositivo inicial  Establecer nodo principal para el dispositivo inicial Establecer el nodo principal para el dispositivo inicial

Una vez que se completa la sincronización, el estado de ambos discos debe ser UpToDate.

Paso 7: Probar la configuración de DRBD

Finalmente, necesitamos probar si el dispositivo DRBD funcionará bien para el almacenamiento de datos replicados. Recuerde, usamos un volumen de disco vacío, por lo tanto, debemos crear un sistema de archivos en el dispositivo y montarlo para probar si podemos usarlo para el almacenamiento de datos replicados.

Podemos crear un sistema de archivos en el dispositivo. con el siguiente comando, en el nodo donde comenzamos la sincronización completa inicial (que tiene el recurso con rol principal):

# mkfs-t ext4/dev/drbd0  Crear sistema de archivos en Drbd Volume  Crear sistema de archivos en volumen Drbd Crear sistema de archivos en volumen Drbd

Luego móntelo como mostrado (puede darle al punto de montaje un nombre apropiado):

# mkdir-p/mnt/DRDB_PRI/# mount/dev/drbd0/mnt/DRDB_PRI/

Ahora copie o cree algunos archivos en el montaje anterior apunte y haga una lista larga usando el comando ls:

# cd/mnt/DRDB_PRI/# ls-l Lista de contenidos del volumen primario Drbd  Enumere el contenido del volumen primario de Drbd Lista de contenidos del volumen primario 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 principal. a secundario.

# umount/mnt/DRDB_PRI/# cd # drbdadm prueba secundaria

En el otro nodo (que tiene el recurso con una función secundaria), conviértalo en primario, luego monte el dispositivo en él y realice una lista larga del punto 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  Probar la configuración de DRBD trabajando en el nodo secundario  Prueba la configuración de DRBD trabajando en el nodo secundario Probar la configuración de DRBD trabajando en el nodo secundario

Para obtener más información, consulte las páginas de manual de las herramientas de administración del espacio de usuario:

# man drbdadm # man drbdsetup # man drbdmeta

Referencia. la Guía del usuario de DRBD.

Resumen

DRBD. es extremadamente flexible y versátil, lo que lo convierte en una solución de replicación de almacenamiento adecuada para agregar HA a solo sobre cualquier aplicación. En este artículo, mostramos cómo instalar DRBD. en CentOS 7. y mostramos brevemente cómo usarlo para replicar el almacenamiento. No dude en compartir sus pensamientos con nosotros a través del formulario de comentarios a continuación.