Framtagningen av Bcachefs som en del av Linux-kÀrnan

Kent Overstreet, författaren bakom kÀrnkomponenten i Linux-systemet för cachning av blockenheter pÄ SSD-lagring, BCache, sammanfattade resultaten av arbetet med att frÀmja filsystemet Bcachefs i Linux-kÀrnan under sin presentation pÄ LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit). I maj presenterades en uppdaterad patchuppsÀttning för gransknings och inkludering i Linux-kÀrnan, med implementeringen av filsystemet Bcachefs. Bcachefs har utvecklats i nÀstan 10 Är. Redan i slutet av 2020 meddelades att en granskning av implementeringen av Bcachefs skulle vara redo innan den skulle inkluderas i kÀrnan, och den aktuella patchversionen tar hÀnsyn till de anmÀrkningar och brister som identifierades vid den föregÄende granskningen.

MÄlet med utvecklingen av Bcachefs Àr att uppnÄ XFS-nivÄer nÀr det kommer till prestanda, tillförlitlighet och skalbarhet, samtidigt som den erbjuder ytterligare funktioner som Àr kÀnnetecknande för Btrfs och ZFS, sÄsom att inkludera flera enheter i en partition, lagerhantering av lagringsenheter, replikation (RAID 1/10), caching, transparent datakomprimering (lÀgen LZ4, gzip och ZSTD), tillstÄndskopior (snapshots), integritetsverifiering genom kontrollsummor, möjligheten att lagra Reed-Solomon-felkorrektionskoder (RAID 5/6), samt lagring av information i krypterad form (med ChaCha20 och Poly1305). GÀllande prestanda övertrÀffar Bcachefs Btrfs och andra filsystem baserade pÄ Copy-on-Write-mekanismen och visar hastigheter som Àr nÀra Ext4 och XFS.

Av de senaste framstegen inom utvecklingen av Bcachefs kan nĂ€mnas stabilisering av implementationen av skrivbara snapshotar. JĂ€mfört med Btrfs skalas snapshotarna i Bcachefs nu betydligt bĂ€ttre och Ă€r fria frĂ„n de problem som Ă€r karakteristiska för Btrfs. I praktiken har snapshotarnas funktionalitet testats vid organiseringen av MySQL-backup. Det har ocksĂ„ gjorts stora anstrĂ€ngningar för att förbĂ€ttra skalbarheten – filsystemet har presterat bra vid tester i lagringssystem pĂ„ 100 TB, och vi förvĂ€ntar oss snart att implementera Bcachefs i ett system pĂ„ 1 PB. En ny nocow-lĂ€ge har lagts till för att stĂ€nga av

NÀr det gÀller framtidsplanerna nÀmns en önskan att anvÀnda Rust-sprÄket i utvecklingen av Bcachefs. Enligt skaparen av Bcachefs Àlskar han att programmera snarare Àn att felsöka kod, och nu kÀnns det galet att skriva kod i C nÀr det finns ett bÀttre alternativ. Rust anvÀnds redan i Bcachefs för implementeringen av vissa verktyg som körs i anvÀndarutrymmet. Dessutom övervÀgs idén att gradvis omarbeta hela Bcachefs i Rust, eftersom anvÀndningen av detta sprÄk avsevÀrt sparar tid pÄ felsökning.

NÀr det gÀller att frÀmja Bcachefs till den centrala kÀrnan i Linux kan processen för antagande dra ut pÄ tiden pÄ grund av den stora mÀngden förÀndringar (2500 patchar och ungefÀr 90 000 rader kod), vilket Àr svÄrt att granska. För att pÄskynda granskningen har vissa utvecklare föreslagit att dela upp patchserien i mindre och logiskt Ätskilda delar. Under diskussionen uppmÀrksammade nÄgra deltagare ocksÄ att projektet utvecklas av en enda utvecklare och risken att koden kan förbli utan underhÄll om nÄgot skulle hÀnda med utvecklaren (tvÄ anstÀllda frÄn Red Hat visar intresse för projektet, men deras arbete Àr för nÀrvarande begrÀnsat till buggfixar).

Bcachefs utvecklas med hjĂ€lp av teknologier som redan har prövats vid utvecklingen av blockenhetssystemet Bcache, som Ă€r avsett för att cachelagra Ă„tkomst till lĂ„ngsamma hĂ„rddiskar pĂ„ snabba SSD-enheter (finns i kĂ€rnan sedan version 3.10). I Bcachefs anvĂ€nds mekanismen Copy-on-Write (COW), dĂ€r Ă€ndringar inte leder till att data skrivs över — det nya tillstĂ„ndet skrivs pĂ„ en ny plats, varefter pekaren för det aktuella tillstĂ„ndet Ă€ndras.

En av de mest framtrÀdande egenskaperna hos Bcachefs Àr stödet för flerskiktad anslutning av lagringsmedier, dÀr lagringen bestÄr av flera lager - den nedersta lagret kopplas till de snabbaste lagringsenheterna (SSD), som anvÀnds för att cache'a ofta anvÀnda data, medan övre lagret bestÄr av större och billigare enheter som lagrar mindre efterfrÄgade data. Mellan lagren kan skrivbuffert-cache anvÀndas. Lagringsmedier kan lÀggas till och kopplas bort dynamiskt frÄn partitionen utan att filsystemet stÀngs ner (data migrerar automatiskt).

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster