Se ha propuesto un conjunto de parches para el núcleo de Linux con la implementación de un dispositivo de bloque replicado distribuido, DRBD 9, que permite crear una especie de matriz RAID-1, formado por unidades de almacenamiento replicadas a través de la red, conectadas a diferentes sistemas. Se pretende probar el controlador inicialmente en la rama linux-next y llevarlo a un estado listo para su integración en el núcleo de Linux 7.2.
La versión anterior de DRBD se incluye en el núcleo desde la versión 2.6.33, lanzada hace 16 años. El código que existe en el núcleo se basa en la rama DRBD 8, que es sustancialmente diferente de la rama DRBD 9, lanzada en 2015 y no compatible a nivel de protocolo. Resulta que la rama DRBD 9 se desarrolló en forma de un módulo externo independiente, no sincronizado con el módulo de la composición principal del núcleo. La implementación de DRBD en el núcleo se ha mantenido por separado y está desactualizada en 10 a 15 años en comparación con la base de código actual de DRBD. Los parches propuestos se han creado para cerrar la brecha que se ha formado.
DRBD permite combinar los dispositivos de los nodos de un clúster en un almacenamiento tolerante a fallos unificado. Para las aplicaciones y el sistema, este almacenamiento se presenta como un dispositivo de bloque idéntico para todos los sistemas. Al usar DRBD, todas las operaciones con el disco local se envían a otros nodos y se sincronizan con los discos de otras máquinas. En caso de fallo de un nodo, el almacenamiento continuará funcionando automáticamente gracias a los nodos restantes. Cuando el nodo fallido se vuelve a poner en línea, su estado se actualizará automáticamente a la versión más reciente.
El clúster que forma el almacenamiento puede incluir hasta 32 nodos, ubicados tanto en la red local como en datacenters geográficamente dispersos. centros de datos. La sincronización en tales almacenamiento distribuidos se realiza en forma de red mesh: los datos se dispersan a través de la cadena de nodo a nodo. La replicación de nodos puede realizarse tanto en modo sincrónico como asincrónico. Por ejemplo, los nodos localmente ubicados pueden usar replicación sincrónica, mientras que para los nodos en sitios remotos se puede utilizar replicación asincrónica con compresión y cifrado adicional del tráfico.
La rama DRBD 9 se diferencia por la abstracción del nivel de transporte, lo que ha permitido implementar canales de comunicación no solo sobre TCP/IP, sino también utilizando RDMA/Infiniband. En comparación con el funcionamiento sobre una red IP tradicional, la integración del acceso directo a la memoria RAM de otro ordenador mediante RDMA (Acceso Directo a la Memoria Remota) ha duplicado el rendimiento de la replicación al reducir la carga en la CPU en un 50%. El tamaño máximo del almacenamiento sincronizado se ha incrementado a 32 nodos. En DRBD 9 también se ha cambiado la lógica de resincronización de nodos, se ha revisado el mecanismo de establecimiento de bloqueos, se ha añadido soporte para espacios de nombres de red, se ha garantizado la instalación automática del estado del nodo según la actividad, se ha incluido soporte para commits en dos fases y para la difusión de actualizaciones en modo no bloqueante. 
Fuente: opennet.ru
