Promovering af Bcachefs til Linux-kernen

Kent Overstreet, forfatteren af ​​BCache SSD-blokenhedscachesystemet, som er en del af Linux-kernen, opsummerede resultaterne af arbejdet med at fremme Bcachefs-filsystemet i sin tale på LSFMM 2023-konferencen (Linux Storage, Filesystem, Memory Management & BPF Summit). ind i hovedsammensætningen af ​​Linux-kernen og talte om planer for den videre udvikling af denne FS. I maj blev et opdateret sæt patches med implementeringen af ​​Bcachefs FS foreslået til gennemgang og inklusion i hovedsammensætningen af ​​Linux-kernen. FS Bcachefs har udviklet sig i omkring 10 år. Beredskabet til at gennemgå implementeringen af ​​Bcachefs før optagelse i kernen blev annonceret i slutningen af ​​2020, og den nuværende version af patches tager højde for de kommentarer og mangler, der blev identificeret under den tidligere gennemgang.

Bcachefs udviklingsmål er at nå XFS-niveauet i ydeevne, pålidelighed og skalerbarhed, samtidig med at der tilbydes yderligere funktioner, der er iboende i Btrfs og ZFS, såsom at inkludere flere enheder i en partition, flerlags lagerlayout, replikering (RAID 1/10), caching, transparent datakomprimering (LZ4, gzip og ZSTD-tilstande), tilstandssnit (øjebliksbilleder), integritetsverifikation ved kontrolsummer, muligheden for at gemme Reed-Solomon fejlkorrektionskoder (RAID 5/6), krypteret lagring af information (ChaCha20 og Poly1305 er brugt). Med hensyn til ydeevne er Bcachefs foran Btrfs og andre filsystemer baseret på Copy-on-Write-mekanismen og demonstrerer ydeevne tæt på Ext4 og XFS.

Af de seneste resultater i udviklingen af ​​Bcachefs bemærkes stabiliseringen af ​​implementeringen af ​​snapshots, der er tilgængelige til skrivning. Sammenlignet med Btrfs er snapshots i Bcachefs nu meget bedre skalerbare og fri for de problemer, der er forbundet med Btrfs. I praksis blev arbejdet med snapshots testet ved organisering af MySQL backups. Bcachefs har også gjort et stort arbejde for at forbedre skalerbarheden – filsystemet har klaret sig godt i test i 100 TB storage, og Bcachefs forventes at blive implementeret i 1 PB storage i den nærmeste fremtid. En ny nocow-tilstand er blevet tilføjet for at deaktivere "copy-on-write" (nocow) mekanismen. I løbet af sommeren planlægger de at bringe implementeringen af ​​fejlkorrektionskoder og RAIDZ til en stabil tilstand, samt løse problemer med højt hukommelsesforbrug ved gendannelse og kontrol af filsystemer med fsck-værktøjet.

Af planerne for fremtiden nævnes ønsket om at bruge Rust-sproget i udviklingen af ​​Bcachefs. Ifølge forfatteren til Bcachefs kan han godt lide at kode, ikke at fejlsøge kode, og nu er det helt vildt at skrive kode i C, når der er en bedre mulighed. Rust er allerede involveret i Bcachefs i implementeringen af ​​nogle af brugerpladsværktøjerne. Desuden udklækkes ideen til gradvist fuldstændigt at omskrive Bcachefs i Rust, da brugen af ​​dette sprog sparer debugging-tid betydeligt.

Med hensyn til at flytte Bcachefs ind i mainstream af Linux-kernen, kan adoptionsprocessen blive forsinket på grund af den store størrelse af ændringerne (2500 patches og omkring 90 tusind linjer kode), som er svær at gennemgå. For at fremskynde gennemgangen har nogle udviklere foreslået at dele patch-serien op i mindre og logisk adskilte dele. Under diskussionen henledte nogle deltagere også opmærksomheden på udviklingen af ​​projektet af en udvikler og faren for, at koden kunne forblive uvedligeholdt, hvis der skete noget med dens udvikler (to Red Hat-medarbejdere er interesserede i projektet, men deres arbejde er stadig begrænsede fejlrettelser).

Bcachefs er udviklet ved hjælp af teknologier, der allerede er testet i udviklingen af ​​Bcache-blokenheden, designet til at cache-adgang til langsomme harddiske på hurtige SSD'er (inkluderet i kernen siden udgivelse 3.10). Bcachefs bruger Copy-on-Write (COW) mekanismen, hvor ændringer ikke fører til overskrivning af data – den nye tilstand skrives til en ny lokation, hvorefter den nuværende tilstandsindikator ændres.

En funktion ved Bcachefs er understøttelse af flerlagsforbindelse af drev, hvor lagring er sammensat af flere lag - de hurtigste drev (SSD'er) er forbundet til det nederste lag, som bruges til at cache ofte brugte data, og det øverste lag dannes mere rummelige og billigere diske, der lagrer mindre efterspurgte data. Writeback caching kan bruges mellem lag. Drev kan føjes dynamisk til og frakobles en partition uden at afbryde brugen af ​​filsystemet (data migrerer automatisk).

Kilde: opennet.ru

Tilføj en kommentar