Versión de dispositivo de bloque replicado distribuido DRBD 9.2.0

Se ha publicado el lanzamiento del dispositivo de bloque replicado distribuido DRBD 9.2.0, que permite implementar algo así como una matriz RAID-1 formada a partir de varios discos de diferentes máquinas conectadas a través de una red (espejo de red). El sistema está diseñado como un módulo para el kernel de Linux y se distribuye bajo la licencia GPLv2. La rama drbd 9.2.0 se puede utilizar para reemplazar de forma transparente drbd 9.xx y es totalmente compatible a nivel de protocolo, archivos de configuración y utilidades.

DRBD permite combinar las unidades de los nodos del clúster en un único almacenamiento tolerante a fallos. Para las aplicaciones y el sistema, dicho almacenamiento parece un dispositivo de bloque que es el mismo para todos los sistemas. Cuando se utiliza DRBD, todas las operaciones del disco local se envían a otros nodos y se sincronizan con los discos de otras máquinas. Si un nodo falla, el almacenamiento continuará funcionando automáticamente utilizando los nodos restantes. Cuando se restablezca la disponibilidad del nodo fallido, su estado se actualizará automáticamente.

El cluster que forma el almacenamiento puede incluir varias decenas de nodos ubicados tanto en la red local como distribuidos geográficamente en diferentes centros de datos. La sincronización en dichos almacenamientos ramificados se realiza utilizando tecnologías de red en malla (los datos fluyen a lo largo de la cadena de un nodo a otro). La replicación de nodos se puede realizar tanto en modo síncrono como asíncrono. Por ejemplo, los nodos alojados localmente pueden usar replicación sincrónica y, para la transferencia a sitios remotos, se puede usar replicación asincrónica con compresión y cifrado de tráfico adicionales.

Versión de dispositivo de bloque replicado distribuido DRBD 9.2.0

En el nuevo lanzamiento:

  • Latencia reducida para solicitudes de escritura reflejadas. Una integración más estrecha con la pila de red ha reducido la cantidad de cambios de contexto del programador.
  • Se redujo la contención entre la E/S de la aplicación y la E/S de resincronización al optimizar el bloqueo al resincronizar extensiones.
  • Rendimiento de resincronización significativamente mejorado en backends que utilizan asignación de almacenamiento dinámica (“aprovisionamiento ligero”). Se mejoró el rendimiento combinando operaciones de recorte/descarte, que tardan mucho más que las operaciones de escritura normales.
  • Se agregó soporte para espacios de nombres de red, lo que hizo posible la integración con Kubernetes para transmitir el tráfico de red de replicación a través de una red separada asociada con contenedores, en lugar de la red del entorno de host.
  • Se agregó el módulo transport_rdma para usarlo como transporte Infiniband/RoCE en lugar de TCP/IP a través de Ethernet. El uso del nuevo transporte le permite reducir los retrasos, reducir la carga en la CPU y garantizar que los datos se reciban sin operaciones de copia innecesarias (copia cero).

Fuente: opennet.ru

Añadir un comentario