Promoción de Bcachefs en el núcleo de Linux

Kent Overstreet, autor del sistema de caché para dispositivos de almacenamiento en SSD BCache, que forma parte del núcleo de Linux, resumió en su charla en la conferencia LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit) los resultados de los esfuerzos para integrar el sistema de archivos Bcachefs en la rama principal del núcleo de Linux y compartió sus planes para el desarrollo futuro de este sistema de archivos. En mayo, se presentó un conjunto actualizado de parches para revisión e inclusión en el núcleo principal de Linux que implementa el sistema de archivos Bcachefs. Bcachefs ha estado en desarrollo durante aproximadamente 10 años. La disponibilidad para revisión de la implementación de Bcachefs antes de su inclusión en el núcleo se anunció a finales de 2020, y en esta versión actual de parches se han tenido en cuenta las observaciones y correcciones identificadas en la revisión anterior.

El objetivo del desarrollo de Bcachefs es alcanzar el nivel de XFS en rendimiento, fiabilidad y escalabilidad, al tiempo que ofrece capacidades adicionales propias de Btrfs y ZFS, como la inclusión de múltiples dispositivos en una partición, configuraciones de almacenamiento en capas, replicación (RAID 1/10), caché, compresión de datos transparente (modos LZ4, gzip y ZSTD), instantáneas (snapshots), verificación de integridad mediante sumas de comprobación, la posibilidad de almacenar códigos de corrección de errores de Reed-Solomon (RAID 5/6), y el almacenamiento de información en forma cifrada (utilizando ChaCha20 y Poly1305). En términos de rendimiento, Bcachefs supera a Btrfs y otros sistemas de archivos basados en Copy-on-Write, demostrando una velocidad de operación cercana a Ext4 y XFS.

Entre los logros recientes 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 escalonan significativamente mejor y están libres de problemas propios de Btrfs. En la práctica, el funcionamiento de las instantáneas ha sido probado en la organización de copias de seguridad de MySQL. También se ha realizado un gran trabajo en Bcachefs para mejorar la escalabilidad: el sistema de archivos se ha desempeñado bien en pruebas en almacenes de 100 TB, y se espera que pronto se implemente Bcachefs en un almacén de 1 PB. Se ha añadido un nuevo modo nocow para desactivar el mecanismo de "copy-on-write" (nocow). Durante el verano, se planea estabilizar la implementación de los códigos de corrección de errores y RAIDZ, así como resolver los problemas de alto consumo de memoria durante la recuperación y verificación del sistema de archivos con la herramienta fsck.

Entre los planes futuros se menciona el deseo de utilizar el lenguaje Rust en el desarrollo de Bcachefs. Según el autor de Bcachefs, le gusta programar y no depurar código, y ahora resulta absurdo escribir en C cuando hay una mejor opción. Rust ya se utiliza en Bcachefs en la implementación de algunas utilidades que se ejecutan en el espacio de usuario. Además, se tiene la idea de reescribir completamente Bcachefs en Rust de manera paulatina, ya que el uso de este lenguaje ahorra significativamente tiempo en depuración.

En cuanto a la promoción de Bcachefs para la inclusión en el núcleo principal de Linux, el proceso de aceptación podría retrasarse debido al considerable tamaño de los cambios (2500 parches y alrededor de 90,000 líneas de código), que son difíciles de revisar. Para agilizar la revisión, algunos desarrolladores sugirieron dividir la serie de parches en partes más pequeñas y lógicamente separadas. Durante la discusión, algunos participantes también señalaron el desarrollo del proyecto por un solo desarrollador y el riesgo de que el código quede sin mantenimiento si algo le sucede al desarrollador (dos empleados de Red Hat muestran interés en el proyecto, pero su trabajo se limita por ahora a la corrección de errores).

Bcachefs se desarrolla utilizando tecnologías que ya han sido probadas en la creación del dispositivo de bloque Bcache, diseñado para almacenar en caché el acceso a discos duros lentos en rápidos SSD (incluido en el núcleo desde la versión 3.10). En Bcachefs se utiliza un mecanismo Copy-on-Write (COW), donde los cambios no provocan la reescritura de datos: el nuevo estado se escribe en un nuevo lugar, después de lo cual se cambia el puntero al estado actual.

Una de las características de Bcachefs es el soporte para la conexión de múltiples capas de almacenamiento, donde el almacenamiento se compone de varias capas: a la capa inferior se conectan los dispositivos más rápidos (SSD), que se utilizan para almacenar en caché los datos más solicitados, mientras que la capa superior está formada por discos más grandes y económicos que proporcionan almacenamiento para datos menos requeridos. Entre las capas se puede aplicar caché en modo de escritura retrasada (writeback). Los dispositivos se pueden agregar y desconectar dinámicamente de la partición sin interrumpir el uso del sistema de archivos (los datos migran automáticamente).

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster