bcachefs ya es lo suficiente maduro para ser incluido en la rama principal de Linux, según palabras de su autor
Hace pocos sidas Kent Overstreet, el autor de bcachefs, en su discurso en la conferencia LSFMM 2023 resumió los resultados del trabajo en la promoción del sistema de archivos Bcachefs en la rama principal del kernel de Linux y habló sobre los planes para un mayor desarrollo de este.
Bcachefs se desarrolla utilizando tecnologías ya probadas en el desarrollo del dispositivo de bloque Bcache, diseñado para almacenar en caché el acceso a discos duros lentos en unidades SSD rápidas (incluidas en el kernel desde la versión 3.10). Bcachefs utiliza el mecanismo Copy-on-Write (COW), en el que los cambios no conducen a la sobrescritura de datos: el nuevo estado se escribe en una nueva ubicación, después de lo cual cambia el indicador de estado actual.
Una característica de Bcachefs es la compatibilidad con la conexión de unidades de varias capas, en las que el almacenamiento se compone de varias capas: las unidades más rápidas (SSD) están conectadas a la capa inferior, que se utilizan para almacenar en caché los datos de uso frecuente, y las formas de la capa superior discos de mayor capacidad y más baratos que almacenan datos menos demandados. El almacenamiento en caché de reescritura se puede utilizar entre capas. Las unidades se pueden agregar y desconectar dinámicamente de una partición sin interrumpir el uso del sistema de archivos (los datos migran automáticamente).
Sobre el proyecto, se menciona que el objetivo de desarrollo de Bcachefs es alcanzar el nivel de XFS en cuanto a rendimiento, confiabilidad y escalabilidad.
Al mismo tiempo que proporciona características adicionales inherentes a Btrfs y ZFS, como la inclusión de varios dispositivos en una partición, diseños de almacenamiento multicapa, replicación (RAID 1/10), almacenamiento en caché, modos LZ4, gzip y ZSTD, segmentos de estado, verificación de integridad de suma de control, la capacidad de almacenar códigos de corrección de errores Reed-Solomon, almacenamiento de información cifrada.
En términos de rendimiento, Bcachefs está por delante de Btrfs y otros sistemas de archivos basados en el mecanismo Copy-on-Write, y demuestra un rendimiento cercano a Ext4 y XFS.
De los últimos logros en el desarrollo de Bcachefs, se destaca la estabilización de la implementación de instantáneas disponibles para escritura. En comparación con Btrfs, las instantáneas en Bcachefs ahora se escalan significativamente mejor y están libres de los problemas inherentes a Btrfs.
En la práctica, el trabajo de las instantáneas se probó al organizar las copias de seguridad de MySQL. Bcachefs también ha trabajado mucho para mejorar la escalabilidad: el sistema de archivos se ha desempeñado bien en las pruebas en almacenamiento de 100 TB y se espera que Bcachefs se implemente en almacenamiento de 1 PB en un futuro próximo.
Ademas de ello, tambien se destaca que se ha agregado un nuevo modo nocow para deshabilitar el mecanismo de «copia en escritura». Durante el verano, planean llevar la implementación de códigos de corrección de errores y RAIDZ a un estado estable, así como resolver problemas con un alto consumo de memoria al restaurar y verificar sistemas de archivos con la utilidad fsck.
De los planes a futuro se menciona el deseo de utilizar el lenguaje Rust en el desarrollo de Bcachefs. Según el autor de Bcachefs:
Le gusta codificar, no depurar código, y ahora es una locura escribir código en C cuando hay una mejor opción. Rust ya está involucrado en Bcachefs en la implementación de algunas de las utilidades del espacio de usuario. Además, se está tramando la idea de reescribir completamente Bcachefs en Rust de forma gradual, ya que el uso de este lenguaje ahorra significativamente el tiempo de depuración.
En cuanto a mover Bcachefs a la rama principal del kernel de Linux, el proceso de adopción puede retrasarse debido al gran tamaño de los cambios (2500 parches y alrededor de 90 mil líneas de código), que es difícil de revisar. Para acelerar la revisión, algunos desarrolladores han sugerido dividir la serie de parches en partes más pequeñas y separadas de forma más lógica.
Durante la discusión, algunos participantes también llamaron la atención sobre el desarrollo del proyecto por parte de un desarrollador y el peligro de que el código pudiera quedar sin mantenimiento si algo le sucediera a su desarrollador (dos empleados de Red Hat están interesados en el proyecto, pero su trabajo aún está pendiente). correcciones de errores limitadas).
En mayo, se propuso su revisión e inclusión en la parte principal del kernel de Linux. La preparación para revisar la implementación de Bcachefs antes de su inclusión en el Kernel se anunció a fines de 2020, y la versión actual de los parches tiene en cuenta los comentarios y las deficiencias identificadas durante la revisión anterior.
Fuente: https://lwn.net/