Promoción de Bcachefs al kernel de Linux

Kent Overstreet, autor del sistema de almacenamiento en caché de dispositivos de bloque BCache SSD, que forma parte del kernel de Linux, resumió los resultados del trabajo de promoción del sistema de archivos Bcachefs en su discurso en la conferencia LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit) en la composición principal del kernel de Linux y habló sobre los planes para un mayor desarrollo de este FS. En mayo, se propuso revisar e incluir en la composición principal del kernel de Linux un conjunto actualizado de parches con la implementación de Bcachefs FS. FS Bcachefs se viene desarrollando desde hace unos 10 años. La preparación para revisar la implementación de Bcachefs antes de su inclusión en el núcleo 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.

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é, compresión de datos transparente (modos LZ4, gzip y ZSTD), segmentos de estado (instantáneas), verificación de integridad mediante sumas de verificación, la capacidad de almacenar códigos de corrección de errores Reed-Solomon (RAID 5/6), almacenamiento cifrado de información (ChaCha20 y Poly1305 son usados). 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 son mucho más escalables 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. Se ha agregado un nuevo modo nocow para deshabilitar el mecanismo de "copia en escritura" (nocow). 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 corriente 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 lógicamente separadas. 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).

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 SSD rápidos (incluido 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).

Fuente: opennet.ru

Añadir un comentario