Linus Torvalds aprobó la inclusión del sistema de archivos Bcachefs en el núcleo principal de Linux y añadió la implementación de Bcachefs en el repositorio donde se desarrolla la rama del núcleo 6.7, cuyo lanzamiento se espera a principios de enero. El parche que se añadió al núcleo incluye aproximadamente 95.000 líneas de código. El proyecto ha sido desarrollado durante más de 10 años por Kent Overstreet, quien también diseñó el sistema de caché para dispositivos de bloque en unidades SSD Bcache.
Los esfuerzos por promover Bcachefs en el núcleo principal comenzaron en 2020, después de lo cual se necesitó casi tres años más para abordar los comentarios y las deficiencias identificadas tras la revisión. En primavera de este año se presentó un conjunto actualizado de parches, que fue rechazado varias veces, pero finalmente, en septiembre, fue aceptado en la rama linux-next, destinada a probar capacidades para futuros lanzamientos del núcleo de Linux.
Bcachefs se desarrolla utilizando tecnologías que ya se probaron en el desarrollo del dispositivo de bloque Bcache, destinado a almacenar en caché el acceso a discos duros lentos en unidades SSD rápidas (incluido en el núcleo desde la versión 3.10). En Bcachefs se utiliza el mecanismo Copy-on-Write (COW), en el que los cambios no sobrescriben datos: el nuevo estado se graba en un nuevo lugar y luego se cambia el puntero del estado actual.
En Bcachefs se ha hecho un esfuerzo por lograr una combinación de nivel de rendimiento, fiabilidad y escalabilidad propias de XFS, así como una funcionalidad ampliada disponible en Btrfs y ZFS, como la inclusión de múltiples dispositivos en una partición, disposiciones de almacenamiento en capas, replicación (RAID 1/10), almacenamiento en caché, compresión de datos transparente (modos LZ4, gzip y ZSTD), instantáneas (snapshots), verificación de integridad mediante sumas de verificación y la capacidad de almacenar códigos de corrección de errores de Reed-Solomon (RAID 5/6), así como almacenar información de forma encriptada (se utilizan ChaCha20 y Poly1305). En cuanto a rendimiento, Bcachefs supera a Btrfs y otros sistemas de archivos basados en el mecanismo Copy-on-Write, y muestra una velocidad cercana a la de Ext4 y XFS.
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
