50% menos carga en la CPU y protección ante fallos: Linux renovará su sistema de almacenamiento por primera vez en 15 años

50% menos carga en la CPU y protección ante fallos: Linux renovará su sistema de almacenamiento por primera vez en 15 años

Por qué la actualización a Linux 7.x complicará el trabajo de los administradores de sistemas

image

En el núcleo de Linux se está preparando una de las mayores actualizaciones del subsistema de almacenamiento de datos de los últimos años. Los desarrolladores decidieron dar nueva vida a DRBD, una tecnología que muchos ya han llegado a olvidar.

Christoph Böhmwalder de la empresa LINBIT envió a la lista de correo del kernel la primera serie de parches para una profunda reestructuración de DRBD 9. El objetivo es sencillo en la formulación, pero complejo en la ejecución: actualizar la versión integrada en el núcleo a un estado actual. Actualmente en Linux aún se usa DRBD 8, que apareció en la época del kernel 2.6.33, y desde entonces el código integrado se ha quedado rezagado respecto al módulo externo aproximadamente entre 10 y 15 años.

DRBD convierte varios servidores en un único almacenamiento. El sistema se comporta como un disco corriente, pero en realidad los datos se copian de forma síncrona entre los nodos. Al escribir, la información se envía de inmediato a las otras máquinas, y en caso de fallo de un servidor el servicio continúa gracias a los restantes. Cuando un nodo vuelve a la actividad, su contenido se sincroniza automáticamente.

La nueva versión cambia la arquitectura. En lugar del antiguo esquema «nodo a nodo» se introduce el funcionamiento con múltiples participantes en el clúster. Un clúster puede incluir hasta 32 nodos, y los servidores pueden encontrarse tanto en la misma red como en diferentes centros de datos. Los datos se transmiten entre ellos en cadena, sin un único punto de fallo.

Se ha revisado de forma importante la parte de red. Además del TCP habitual se añadió soporte para RDMA e InfiniBand, lo que permite acceder directamente a la memoria de una máquina remota. Gracias a ello la velocidad de replicación puede crecer aproximadamente al doble, y la carga sobre el procesador puede reducirse casi en un 50%.

Los cambios afectaron también a la lógica interna. Los desarrolladores reescribieron el procesamiento de solicitudes, el sistema de estados y los registros de actividad, añadieron soporte para memoria no volátil para acelerar el tratamiento de metadatos. Surgió un modelo de sincronización más flexible, que incluye una confirmación de cambios en dos fases y la actualización de datos sin bloquear las operaciones.

Sin embargo, la nueva versión por ahora rompe la compatibilidad con las utilidades de usuario. Las versiones antiguas de las herramientas no podrán trabajar con el controlador actualizado. Se plantea resolver el problema mediante una nueva interfaz de intercambio de datos y una capa de compatibilidad para las versiones obsoletas. El trabajo aún no está terminado. Los desarrolladores planean seguir puliendo la serie de parches y enviar nuevas versiones en cada ventana de integración. Primero los cambios llegarán a la rama de pruebas linux-next, y después, si todo transcurre sin fallos, al núcleo principal. Se considera como referencia uno de los próximos lanzamientos de la rama 7.x.