El Dispositivo de Bloques Replicado Distribuido ( DRBD ) [ 3 ] es un sistema de almacenamiento replicado distribuido para la plataforma Linux . Replica dispositivos de bloques entre múltiples hosts, funcionando de forma transparente para las aplicaciones en los sistemas host. Esta replicación puede involucrar cualquier tipo de dispositivo de bloques, como discos duros, particiones, configuraciones RAID o volúmenes lógicos. [ 4 ]
DRBD se implementa como un controlador de kernel, varias aplicaciones de administración de espacio de usuario y algunos scripts de shell . DRBD se utiliza tradicionalmente en clústeres de computadoras de alta disponibilidad (HA) , pero a partir de la versión 9, también se puede utilizar para crear grupos de almacenamiento definidos por software más grandes con un enfoque en la integración en la nube. [ 5 ]
El software DRBD es software libre publicado bajo los términos de la Licencia Pública General de GNU versión 2.
DRBD forma parte de la iniciativa de pila de código abierto Lisog .
Modo de funcionamiento
DRBD superpone dispositivos de bloques lógicos (denominados convencionalmente , donde X es el número menor del dispositivo) sobre los dispositivos de bloques locales existentes en los nodos del clúster participantes. Las escrituras en el nodo primario se transfieren al dispositivo de bloques de nivel inferior y se propagan simultáneamente al nodo o nodos secundarios . El nodo o nodos secundarios transfieren entonces los datos a su correspondiente dispositivo de bloques de nivel inferior. Todas las operaciones de E/S de lectura se realizan localmente, a menos que se configure el balanceo de lectura. [ 6 ]/dev/drbdX
Si el nodo principal falla, un proceso de administración del clúster promueve el nodo secundario al estado principal. [ 7 ] Esta transición puede requerir una verificación posterior de la integridad del sistema de archivos apilado sobre DRBD, mediante una comprobación del sistema de archivos o una reproducción del registro . Cuando el nodo que falló anteriormente se recupera, el sistema puede (o no) elevarlo nuevamente al nivel principal, después de la resincronización de los datos del dispositivo. El algoritmo de sincronización de DRBD es eficiente en el sentido de que solo se deben resincronizar los bloques que se modificaron durante la interrupción, en lugar de todo el dispositivo.
DRBD se suele implementar junto con los gestores de recursos de clúster Pacemaker o Heartbeat , aunque también se integra con otros marcos de gestión de clústeres. [ 8 ] [ 9 ] [ 10 ] Se integra con soluciones de virtualización como Xen y puede utilizarse tanto por debajo como por encima de la pila LVM de Linux . [ 11 ]
DRBD permite configuraciones de equilibrio de carga , lo que permite que ambos nodos accedan a un DRBD particular en modo de lectura/escritura con semántica de almacenamiento compartido . [ 12 ] Una configuración de múltiples nodos primarios (múltiples nodos de lectura/escritura) requiere el uso de un administrador de bloqueo distribuido .
Desde 2018, DRBD también puede utilizarse en el software de gestión de almacenamiento en bloques LINSTOR para la replicación entre diferentes nodos y para proporcionar dispositivos de almacenamiento en bloques a usuarios y aplicaciones.
Comparación de almacenamiento en clúster compartido
Los sistemas de clústeres informáticos convencionales suelen utilizar algún tipo de almacenamiento compartido para los datos que utilizan los recursos del clúster. Este enfoque tiene varias desventajas, que DRBD puede ayudar a mitigar:
- Por lo general, se debe acceder a los recursos de almacenamiento compartido a través de una red de área de almacenamiento o un servidor de almacenamiento conectado a la red , lo que genera cierta sobrecarga en las operaciones de lectura /escritura . En DRBD, esta sobrecarga se reduce, ya que todas las operaciones de lectura se realizan localmente.
- El almacenamiento compartido suele ser costoso y consume más espacio (2U o más) y energía. DRBD permite una configuración de alta disponibilidad con solo 2 máquinas.
- El almacenamiento compartido no siempre garantiza una alta disponibilidad. Por ejemplo, una única red de área de almacenamiento a la que acceden varios hosts de virtualización se considera almacenamiento compartido, pero no se considera de alta disponibilidad a nivel de almacenamiento: si esa red de área de almacenamiento falla, ninguno de los hosts del clúster podrá acceder al almacenamiento compartido. DRBD permite un destino de almacenamiento que es a la vez compartido y de alta disponibilidad.
Una desventaja es que se requiere menos tiempo para escribir directamente en un dispositivo de almacenamiento compartido que para enrutar la escritura a través del otro nodo.
Comparación con RAID-1
DRBD guarda una similitud superficial con RAID-1, ya que implica una copia de datos en dos dispositivos de almacenamiento, de modo que si uno falla, se pueden utilizar los datos del otro. Sin embargo, su funcionamiento es muy diferente al de RAID e incluso al de RAID en red.
En RAID, la redundancia reside en una capa transparente para la aplicación que utiliza el almacenamiento. Si bien existen dos dispositivos de almacenamiento, solo hay una instancia de la aplicación y esta desconoce la existencia de múltiples copias. Cuando la aplicación realiza una lectura, la capa RAID selecciona el dispositivo de almacenamiento que debe leer. Si un dispositivo de almacenamiento falla, la capa RAID elige leer el otro, sin que la instancia de la aplicación se entere del fallo.
En cambio, con DRBD existen dos instancias de la aplicación, y cada una solo puede leer desde uno de los dos dispositivos de almacenamiento. Si uno de los dispositivos falla, la instancia de la aplicación vinculada a ese dispositivo ya no puede leer los datos. En consecuencia, esa instancia se cierra y la otra, vinculada a la copia restante de los datos, toma el control.
Por el contrario, en RAID, si falla una única instancia de la aplicación, la información de los dos dispositivos de almacenamiento resulta prácticamente inutilizable, pero en DRBD, la otra instancia de la aplicación puede tomar el control.
Aplicaciones
Al operar dentro de la capa de bloques del kernel de Linux, DRBD es esencialmente independiente de la carga de trabajo. Un DRBD puede utilizarse como base para:
- Un sistema de archivos convencional (este es el ejemplo canónico),
- un sistema de archivos de disco compartido como GFS2 u OCFS2 , [ 13 ] [ 14 ]
- otro dispositivo de bloques lógicos (como el que se usa en LVM , por ejemplo),
- cualquier aplicación que requiera acceso directo a un dispositivo de bloques.
Los clústeres basados en DRBD se utilizan con frecuencia para añadir replicación síncrona y alta disponibilidad a servidores de archivos , bases de datos relacionales (como MySQL ) y muchas otras cargas de trabajo.
Inclusión en el kernel de Linux
Los autores de DRBD presentaron originalmente el software a la comunidad del kernel de Linux en julio de 2007, para su posible inclusión en la versión canónica del kernel de Linux en kernel.org. [ 15 ] Tras una larga revisión y varias discusiones, Linus Torvalds aceptó que DRBD formara parte del kernel oficial de Linux. DRBD se integró el 8 de diciembre de 2009 durante el período de fusión de la versión 2.6.33 del kernel de Linux. [ 16 ]
Véase también
Referencias
- ↑ "DRBD 9.x Controlador del kernel de Linux" . linbit.com . Consultado el 19 de julio de 2023 .
- ↑ "Versiones · LINBIT/drbd" . github.com . Consultado el 4 de abril de 2021 .
- ↑ "Dispositivo de bloques replicados distribuidos - DRBD: la documentación del kernel de Linux" .
- ↑ "Dispositivo de bloques replicados distribuidos (DRBD)" . ubuntu.com . Consultado el 20 de junio de 2024 .
- ↑ "DRBD para tu nube" . www.drbd.org . Consultado el 5 de diciembre de 2016 .
- ↑ "18.4. Lograr un mejor rendimiento de lectura mediante una mayor redundancia - Guía del usuario de DRBD (9.0)" . www.drbd.org . Consultado el 5 de diciembre de 2016 .
- ↑ "Capítulo 8. Integración de DRBD con grupos de marcapasos - Guía del usuario de DRBD (9.0)" . www.drbd.org . Consultado el 5 de diciembre de 2016 .
- ↑ "Almacenamiento NFS de alta disponibilidad con DRBD y Pacemaker" . suse.com . Consultado el 20 de junio de 2024 .
- ↑ "Cómo lograr alta disponibilidad con Heartbeat y DRBD en Ubuntu 16" . www.globo.tech . 11 de noviembre de 2016. Consultado el 20 de junio de 2024 .
- ↑ "DRBD – Heartbeat ( Active/Passive High Availability Cluster )" . syslint.com . Consultado el 20 de junio de 2024 .
- ↑ LINBIT. "Guía del usuario de DRBD" . Consultado el 28 de noviembre de 2011 .
- ↑ Reisner, Philipp (11 de octubre de 2005). "DRBD v8 - Almacenamiento replicado con semántica de disco compartido" (PDF) . Actas de la 12.ª Conferencia Internacional sobre Tecnología de Sistemas Linux . Hamburgo, Alemania.
- ↑ "Guías de usuario » LINBIT" .
- ↑ "DRBD activo-activo con OCFS2 - Wiki de Gentoo Linux" . Archivado del original el 8 de marzo de 2013. Consultado el 21 de marzo de 2013 .
- ↑ Ellenberg, Lars (2007-07-21). "DRBD quiere ir a mainline" . linux-kernel (Lista de correo) . Recuperado el 2007-08-03 .
- ↑ "DRBD se incluirá en el kernel de Linux 2.6.33" . slashdot.org . 10 de diciembre de 2009. Consultado el 20 de junio de 2024 .
Enlaces externos
- Sitio web oficial
- LINBIT
- Sitio web del proyecto Linux de alta disponibilidad. Archivado el 5 de julio de 2008 en Wayback Machine.
- Software de almacenamiento
- Software de virtualización para Linux