Promoción de Bcachefs ao núcleo de Linux

Kent Overstreet, o autor do sistema de almacenamento en caché de dispositivos en bloque SSD BCache, que forma parte do núcleo de Linux, resumiu os resultados do traballo de promoción do sistema de ficheiros Bcachefs na súa intervención na conferencia LSFMM 2023 (Almacenamento Linux, Sistema de ficheiros, Xestión da memoria). & BPF Summit). sobre a composición principal do núcleo de Linux e falou sobre os plans para o desenvolvemento posterior deste FS. En maio, propúxose un conxunto actualizado de parches coa implementación do FS Bcachefs para a súa revisión e inclusión na composición principal do núcleo de Linux. FS Bcachefs leva uns 10 anos desenvolvendo. A preparación para revisar a implementación de Bcachefs antes da súa inclusión no núcleo anunciouse a finais de 2020, e a versión actual dos parches ten en conta os comentarios e as deficiencias identificadas durante a revisión anterior.

O obxectivo de desenvolvemento de Bcachefs é alcanzar o nivel de XFS en rendemento, fiabilidade e escalabilidade, ao tempo que ofrece funcións adicionais inherentes a Btrfs e ZFS, como incluír varios dispositivos nunha partición, esquemas de almacenamento multicapa, replicación (RAID 1/10), almacenamento en caché, compresión de datos transparente (modos LZ4, gzip e ZSTD), porcións de estado (instantaneas), verificación da integridade mediante sumas de comprobación, a capacidade de almacenar códigos de corrección de erros de Reed-Solomon (RAID 5/6), almacenamento cifrado de información (ChaCha20 e Poly1305). se utilizan). En termos de rendemento, Bcachefs está por diante de Btrfs e outros sistemas de ficheiros baseados no mecanismo Copy-on-Write, e demostra un rendemento próximo a Ext4 e XFS.

Dos últimos logros no desenvolvemento de Bcachefs, nótase a estabilización da implementación de instantáneas dispoñibles para escribir. En comparación con Btrfs, as instantáneas en Bcachefs agora son moito mellor escalables e están libres dos problemas inherentes a Btrfs. Na práctica, probouse o traballo das instantáneas ao organizar as copias de seguridade de MySQL. Bcachefs tamén traballou moito para mellorar a escalabilidade: o sistema de ficheiros funcionou ben nas probas en almacenamento de 100 TB e espérase que Bcachefs se implemente nun almacenamento de 1 PB nun futuro próximo. Engadiuse un novo modo nocow para desactivar o mecanismo "copy-on-write" (nocow). Durante o verán, prevén levar a un estado estable a implementación de códigos de corrección de erros e RAIDZ, así como resolver problemas de alto consumo de memoria á hora de restaurar e comprobar sistemas de ficheiros coa utilidade fsck.

Dos plans para o futuro, menciónase o desexo de utilizar a linguaxe Rust no desenvolvemento de Bcachefs. Segundo o autor de Bcachefs, gústalle codificar, non depurar código, e agora é unha tolemia escribir código en C cando hai unha opción mellor. Rust xa está implicado en Bcachefs na implementación dalgunhas das utilidades do espazo de usuario. Ademais, estase xurdindo a idea de reescribir gradualmente completamente Bcachefs en Rust, xa que usar esta linguaxe aforra significativamente tempo de depuración.

En canto a mover Bcachefs ao mainstream do núcleo de Linux, o proceso de adopción pode atrasarse debido ao gran tamaño dos cambios (2500 parches e preto de 90 mil liñas de código), que é difícil de revisar. Para acelerar a revisión, algúns desenvolvedores suxeriron dividir a serie de parches en partes máis pequenas e separadas loxicamente. Durante a discusión, algúns participantes tamén chamaron a atención sobre o desenvolvemento do proxecto por parte dun desenvolvedor e o perigo de que o código puidese quedar sen manter se lle ocorrese algo ao seu desenvolvedor (dous empregados de Red Hat están interesados ​​no proxecto, pero o seu traballo aínda está correccións de erros limitadas).

Bcachefs desenvólvese utilizando tecnoloxías xa probadas no desenvolvemento do dispositivo de bloque Bcache, deseñadas para almacenar na caché o acceso a discos duros lentos en unidades SSD rápidas (incluídas no núcleo desde a versión 3.10). Bcachefs usa o mecanismo Copy-on-Write (COW), no que os cambios non levan a sobrescribir os datos: o novo estado escríbese nunha nova localización, despois do cal cambia o indicador de estado actual.

Unha característica de Bcachefs é o soporte para a conexión de varias capas de unidades, na que o almacenamento está composto por varias capas: as unidades máis rápidas (SSD) están conectadas á capa inferior, que se usan para almacenar na caché os datos de uso frecuente e as formas da capa superior. discos máis grandes e máis baratos que almacenan datos menos demandados. Pódese usar o caché de escritura inversa entre capas. As unidades pódense engadir e separar dinámicamente dunha partición sen interromper o uso do sistema de ficheiros (os datos migran automaticamente).

Fonte: opennet.ru

Engadir un comentario