DRBD 9 se acerca al Linux principal con 7 parches de preparación
LINBIT publicó el 23 de septiembre 7 parches que remodelan el código DRBD 8.4 del kernel hacia DRBD 9, que admite hasta 31 pares por volumen.
3 min de lectura

En cifras
- patches in the preparation series
- 7
- peers per volume in DRBD 9
- 31
- new maximum resync rate
- 8 GiB/s
Christoph Böhmwalder envió una serie de 7 parches a las listas de correo del kernel de Linux el 23 de septiembre de 2026. Se titula "drbd: preparation for DRBD 9". La serie remodela el antiguo código DRBD del kernel para que el mucho más reciente DRBD 9 pueda seguirlo a la rama principal. Esto importa a cualquiera que ejecute almacenamiento replicado en Linux, porque la versión incluida en el kernel sigue en la antigua rama 8.4.
DRBD significa Distributed Replicated Block Device. Copia un disco, bloque a bloque, a una o más máquinas a través de la red. Si un servidor cae, otro conserva una copia idéntica de los datos. LINBIT, la empresa detrás del proyecto, dice que este se ha mantenido durante más de dos décadas.
Qué cambian los 7 parches
La carta de presentación describe el enfoque en una línea. "Cada parche lleva una parte del código DRBD 8.4 dentro del árbol a la forma que tiene en el código DRBD 9 fuera del árbol", escribió Böhmwalder.
"Dentro del árbol" (in-tree) se refiere al código que vive en el código fuente oficial del kernel. "Fuera del árbol" (out-of-tree) se refiere al código que se mantiene por separado y se compila como módulo adicional. DRBD 9 siempre ha estado fuera del árbol.
La carta de presentación enumera estos cambios:
- Límites más altos para redes rápidas: búferes de socket de hasta 128 MiB y una tasa máxima de resincronización de 8 GiB/s.
- El archivo
drbd_worker.cpasa a llamarsedrbd_sender.c, en línea con la estructura de DRBD 9. - Se sustituyen los campos de bits de la estructura de datos
drbd_interval. - La tabla de nombres de paquetes de red se traslada a una nueva ubicación.
- Los mensajes de registro obtienen limitación de frecuencia por objeto, para que un solo dispositivo averiado no pueda inundar el registro del kernel.
La serie se envió a las listas linux-kernel y linux-block. La carta de presentación subraya que nada cambia para los usuarios actuales: "Los valores predeterminados no cambian, todas las configuraciones existentes siguen siendo válidas."
Por qué DRBD 9 merece el esfuerzo
LINBIT explicó el objetivo en una entrada de blog de Michael Troutman del 27 de abril de 2026. El kernel incluye DRBD 8.4.11, que la entrada califica de estancado. El desarrollo activo se hace en DRBD 9.3, fuera del kernel.
La distancia entre ambos es grande.
| Capacidad | DRBD 8.4 (en el kernel) | DRBD 9 (fuera del árbol) |
|---|---|---|
| Nodos por volumen | 2, para conmutación por error | Hasta 31 pares |
| Protección contra split-brain | Depende del fencing | Quórum integrado para 3 o más nodos |
| Gestión de nodos caídos | Configuración manual de STONITH o fencing | Automática |
El split-brain es el fallo en el que dos máquinas creen tener la copia activa y empiezan a escribir datos distintos. El quórum lo evita al permitir que un nodo escriba solo mientras vea a la mayoría del clúster. STONITH, abreviatura de "shoot the other node in the head" (dispárale en la cabeza al otro nodo), es la solución más antigua: apagar un nodo sospechoso antes de que cause daños. DRBD 9 también añade salvaguardas para sincronizar un nodo que vuelve a unirse al clúster.
La entrada de LINBIT señalaba Linux 7.2 como objetivo para los parches de DRBD 9.3. La serie de esta semana se describe como preparación, así que el código completo de DRBD 9 será un envío posterior y separado.
Qué significa para los desarrolladores
Si hoy usa DRBD, compruebe cuál de los dos tiene. Puede que ya cargue el módulo DRBD 9 fuera del árbol de LINBIT en lugar del controlador 8.4 del kernel. cat /proc/drbd muestra la versión cargada. Esta serie todavía no cambia nada para ninguno de los dos grupos, y la carta de presentación promete que las configuraciones existentes siguen siendo válidas.
Si depende del controlador 8.4 del kernel, el trabajo en upstream es un motivo para planificar ya una prueba de DRBD 9. Cuando se integre, el controlador del kernel ganará volúmenes con varios pares y quórum. Eso cambia cómo hay que configurar un clúster y aplicarle fencing. Probarlos primero en un clúster de preproducción es mejor que descubrir las diferencias tras una actualización del kernel de la distribución.
Si construye almacenamiento sobre redes rápidas, tome nota de los nuevos límites. Un techo de resincronización de 8 GiB/s y búferes de socket de 128 MiB dejan margen para enlaces rápidos de centros de datos. El sitio de LINBIT señala que DRBD puede replicar sobre TCP/IP o RDMA, el transporte de baja latencia que se usa en redes InfiniBand y RoCE. Los valores predeterminados siguen igual, así que todavía tiene que subirlos usted mismo.
Siga la lista linux-block para la próxima ronda. Los comentarios de revisión sobre estos 7 parches mostrarán la rapidez con que los mantenedores aceptan un controlador grande que lleva mucho tiempo fuera del árbol. Esa respuesta decide cuándo un kernel estándar podrá sustituir a un módulo DRBD empaquetado por separado.
Fuentes
- [PATCH 0/7] drbd: preparation for DRBD 9 - linux-kernel mailing list
- Working to Put DRBD 9 in the Mainline Linux Kernel - LINBIT
- DRBD - LINBIT
Artículos relacionados

Kubernetes 1.37 pasa el modo rootless a beta
Kubernetes 1.37 pasa KubeletInUserNamespace a beta. El kubelet, los runtimes de contenedores, los plugins CNI y kube-proxy ya pueden ejecutarse como usuario corriente.

Linux LZ4: la resincronización a v1.10.0 acelera la descompresión hasta un 21%
Una serie de 9 parches lleva el código LZ4 del kernel, de 2017-2018, a la versión upstream v1.10.0, añade comprobaciones de límites y acelera un 21% la descompresión de bloques de 16K.

Las llamadas al sistema set_robust_list2 de Linux vuelven en v7 para FEX-Emu
Igalia publicó el 25 de septiembre de 2026 la v7 de las llamadas futex set_robust_list2, 10 meses después de la v6, para ayudar a FEX-Emu a ejecutar código x86 de 32 bits en Arm64.