Bcachefs 1.38.6 deja la fase experimental y apuesta por el código en Rust
Bcachefs es un sistema de archivos de copia en escritura para sistemas operativos basados en Linux
El desarrollador principal Kent Overstreet ha dado un paso de gigante al realizar el anuncio del lanzamiento de Bcachefs 1.38.6 y anunciar oficialmente que el proyecto ha abandonado su etiqueta de desarrollo «experimental». Esta decisión, aunque tardía a nivel formal, se basa en la drástica disminución de informes de errores críticos por parte de los usuarios, dejando únicamente problemas menores y sutilezas lógicas mucho más fáciles de abordar.
Esta versión llega acompañada de dos paquetes clave: bcachefs-kernel-dkms, que compila el módulo del núcleo automáticamente a través del sistema DKMS, y bcachefs-tools, el conjunto de utilidades para crear, montar y verificar discos. Ambos ya están empaquetados para Debian, Ubuntu y Arch Linux (con planes de expansión a Fedora, openSUSE y NixOS) y soportan versiones del kernel desde la 6.16 en adelante.
Novedades de Bcachefs 1.38.6
Aunque a simple vista el número de versión (1.38.6) parece discreto debido a que no altera el formato del disco, en su interior esconde una de las mayores rondas de optimización que ha visto el proyecto. Overstreet dedicó meses enteros a realizar micro-benchmarks y analizar perfiles de ejecución, descubriendo problemas inesperados, como la mala gestión del compilador GCC al tratar las ramificaciones de código estáticas, lo que obligaba a esconder el código de depuración tras opciones de configuración para no penalizar la velocidad.
Todo este esfuerzo se ha visto beneficiado en 200 parches inyectados en las entrañas del sistema, afectando el código de las estructuras b-tree, el diario del sistema y la lógica principal. El resultado es que la ruta de confirmación de transacciones se ha comprimido a solo 4 kilobytes de código máquina y el proceso de vaciado del diario ahora funciona sin requerir bloqueos.
Los resultados de rendimiento son formidables, incluso sin estar pulidos al máximo. En un servidor con un procesador AMD Epyc de 48 núcleos, Bcachefs barrió en la prueba «dbench», logrando un ancho de banda de 16.5 GB/s frente a los 16 GB/s del veterano XFS.
Y eso no es todo: existen parches retenidos para la próxima versión que elevan esa cifra a 19 GB/s. En pruebas de escritura aleatoria extrema con bloques de 4 kilobytes («fio»), Bcachefs alcanzó unas impresionantes 700.000 IOPS (operaciones de entrada/salida por segundo). Aunque XFS roza el millón en esta misma prueba, hay que considerar el mérito de Bcachefs, ya que XFS se limita a reasignar bloques de disco de forma cruda, mientras que Bcachefs realiza el ciclo completo de copia en escritura (CoW), calculando sumas de comprobación de datos (checksums) y actualizando árboles b-tree en tiempo real por cada bloque escrito.
Reestructuración en Rust: Estabilidad, fiabilidad y verificación formal
Uno de los anuncios más emocionantes es el inicio de la reescritura del sistema al lenguaje Rust. El impulso vino dado porque las principales distribuciones Linux (a partir de la versión 7.0 del kernel) ya han habilitado el soporte oficial para Rust en sus núcleos por defecto. El equipo de Bcachefs no ha perdido el tiempo: todas las utilidades de usuario (bcachefs-tools), incluyendo la compleja API para manipular árboles b-tree, ya han sido portadas exitosamente. En la próxima actualización, se planea integrar las primeras capas de código Rust dentro del módulo DKMS del kernel para comenzar a reescribir la lógica principal del sistema de archivos.
El uso de Rust es una jugada maestra a largo plazo ya que por un lado, garantiza un código mucho más resistente a fallos de memoria y estabilidad estructural, haciendo el proyecto mucho más atractivo para los ingenieros jóvenes que ya no están tan interesados en aprender C.
Por otro lado, la protección de memoria integrada en Rust abre la puerta a algo que era casi imposible en C: la «verificación formal». Los sistemas de archivos están llenos de reglas de integridad que actualmente solo se pueden comprobar ejecutando programas durante horas y saturando servidores de pruebas; con Rust, Bcachefs podrá demostrar matemáticamente que ciertas partes de su código no pueden fallar, revolucionando la fiabilidad del almacenamiento en Linux.
Novedades recientes
Haciendo un repaso de los últimos meses, Bcachefs, que aspira a ser un híbrido con la robustez de ZFS/Btrfs y la velocidad de XFS, ha incorporado dos mecanismos de nivel empresarial:
- Conciliación (rebalance_v2): Este motor avanzado rastrea el estado real de los datos frente al estado deseado. Actúa en segundo plano de manera continua e inteligente; si cambias la configuración de un disco o conectas uno nuevo, el sistema no solo mueve datos, sino que reequilibra los metadatos y asegura la replicación de forma inmediata, optimizando las operaciones de lectura secuencial.
- Códigos de corrección de errores (Erasure Coding): Bcachefs soporta arreglos similares a RAID 5 y RAID 6 utilizando el algoritmo Reed-Solomon, pero soluciona el famoso «agujero de escritura» (write hole). Para evitar la corrupción si se va la luz mientras se escribe una franja de datos, el sistema primero guarda réplicas completas de la información; una vez que la franja matemática se completa de forma asíncrona, el sistema borra inteligentemente las réplicas temporales. Esto garantiza una protección total de los datos sin penalizar la velocidad de los discos al realizar grandes copias de información.
Finalmente, si estas interesado en poder conocer mas al respecto, puedes consultar los detalles en el siguiente enlace.
