Fremme Bcachefs til Linux-kjernen

Kent Overstreet, forfatteren av BCache SSD block device caching system, som er en del av Linux-kjernen, oppsummerte resultatene av arbeidet med å promotere Bcachefs filsystem i sin tale på LSFMM 2023-konferansen (Linux Storage, Filesystem, Memory Management & BPF Summit). inn i hovedsammensetningen av Linux-kjernen og snakket om planer for videreutvikling av denne FS. I mai ble et oppdatert sett med patcher med implementering av Bcachefs FS foreslått for gjennomgang og inkludering i hovedsammensetningen av Linux-kjernen. FS Bcachefs har utviklet i ca 10 år. Beredskapen for å gjennomgå implementeringen av Bcachefs før inkludering i kjernen ble annonsert i slutten av 2020, og den nåværende versjonen av oppdateringene tar hensyn til kommentarene og manglene som ble identifisert under forrige gjennomgang.

Bcachefs utviklingsmål er å nå XFS-nivået i ytelse, pålitelighet og skalerbarhet, samtidig som det gir tilleggsfunksjoner som er iboende i Btrfs og ZFS, som å inkludere flere enheter i en partisjon, flerlags lagringsoppsett, replikering (RAID 1/10), caching, gjennomsiktig datakomprimering (LZ4, gzip og ZSTD-modus), tilstandssnitt (øyeblikksbilder), integritetsverifisering ved kontrollsummer, muligheten til å lagre Reed-Solomon feilrettingskoder (RAID 5/6), kryptert lagring av informasjon (ChaCha20 og Poly1305 er brukt). Når det gjelder ytelse, er Bcachefs foran Btrfs og andre filsystemer basert på Copy-on-Write-mekanismen, og demonstrerer ytelse nær Ext4 og XFS.

Av de siste prestasjonene i utviklingen av Bcachefs, er stabiliseringen av implementeringen av øyeblikksbilder tilgjengelig for skriving notert. Sammenlignet med Btrfs er øyeblikksbilder i Bcachefs nå mye bedre skalerbare og fri for problemene som ligger i Btrfs. I praksis ble arbeidet med øyeblikksbilder testet ved organisering av MySQL-sikkerhetskopier. Bcachefs har også gjort mye arbeid for å forbedre skalerbarheten – filsystemet har prestert godt i testing i 100 TB lagring, og Bcachefs forventes å bli implementert i 1 PB lagring i nær fremtid. En ny nocow-modus er lagt til for å deaktivere "copy-on-write" (nocow)-mekanismen. I løpet av sommeren planlegger de å bringe implementeringen av feilrettingskoder og RAIDZ til en stabil tilstand, samt løse problemer med høyt minneforbruk ved gjenoppretting og kontroll av filsystemer med fsck-verktøyet.

Av planene for fremtiden nevnes ønsket om å bruke Rust-språket i utviklingen av Bcachefs. I følge forfatteren av Bcachefs liker han å kode, ikke å feilsøke kode, og nå er det galskap å skrive kode i C når det er et bedre alternativ. Rust er allerede involvert i Bcachefs i implementeringen av noen av brukerplassverktøyene. Ideen blir dessuten klekket ut om gradvis å fullstendig omskrive Bcachefs i Rust, siden bruk av dette språket sparer feilsøkingstid betydelig.

Når det gjelder å flytte Bcachefs inn i mainstream av Linux-kjernen, kan adopsjonsprosessen bli forsinket på grunn av den store størrelsen på endringene (2500 patcher og ca. 90 tusen linjer med kode), som er vanskelig å gjennomgå. For å fremskynde gjennomgangen har noen utviklere foreslått å dele opp oppdateringsserien i mindre og logisk atskilte deler. Under diskusjonen trakk noen deltakere også oppmerksomhet til utviklingen av prosjektet av én utvikler og faren for at koden kunne forbli uopprettholdt hvis noe skulle skje med utvikleren (to Red Hat-ansatte er interessert i prosjektet, men arbeidet deres er fortsatt begrensede feilrettinger).

Bcachefs er utviklet ved hjelp av teknologier som allerede er testet i utviklingen av Bcache-blokkenheten, designet for å hurtigbufre tilgang til trege harddisker på raske SSD-er (inkludert i kjernen siden utgivelse 3.10). Bcachefs bruker Copy-on-Write (COW)-mekanismen, der endringer ikke fører til overskriving av data - den nye tilstanden skrives til et nytt sted, hvoretter gjeldende tilstandsindikator endres.

En funksjon ved Bcachefs er støtte for flerlagstilkobling av stasjoner, der lagring består av flere lag - de raskeste stasjonene (SSD-ene) er koblet til det nederste laget, som brukes til å hurtigbufre ofte brukte data, og topplaget dannes mer romslige og billigere disker som lagrer mindre etterspurte data. Tilbakeskrivningsbufring kan brukes mellom lag. Stasjoner kan legges dynamisk til og kobles fra en partisjon uten å avbryte bruken av filsystemet (data migrerer automatisk).

Kilde: opennet.ru

Legg til en kommentar