Främjar Bcachefs till Linux-kärnan

Kent Overstreet, författaren till BCache SSD block device caching system, som är en del av Linux-kärnan, sammanfattade resultaten av arbetet med att marknadsföra Bcachefs filsystem i sitt tal vid LSFMM 2023-konferensen (Linux Storage, Filesystem, Memory Management & BPF Summit). i huvudsammansättningen av Linux-kärnan och talade om planer för vidareutveckling av denna FS. I maj föreslogs en uppdaterad uppsättning patchar med implementeringen av Bcachefs FS för granskning och inkludering i huvudsammansättningen av Linux-kärnan. FS Bcachefs har utvecklats i cirka 10 år. Beredskapen för att granska implementeringen av Bcachefs innan inkludering i kärnan tillkännagavs i slutet av 2020, och den nuvarande versionen av patcharna tar hänsyn till de kommentarer och brister som identifierats under den tidigare granskningen.

Bcachefs utvecklingsmål är att nå XFS-nivån i prestanda, tillförlitlighet och skalbarhet, samtidigt som de tillhandahåller ytterligare funktioner som är inneboende i Btrfs och ZFS, såsom att inkludera flera enheter i en partition, flerskiktslagringslayouter, replikering (RAID 1/10), cachning, transparent datakomprimering (LZ4, gzip och ZSTD-lägen), tillståndssnitt (ögonblicksbilder), integritetsverifiering genom kontrollsummor, möjligheten att lagra Reed-Solomon felkorrigeringskoder (RAID 5/6), krypterad lagring av information (ChaCha20 och Poly1305 används). När det gäller prestanda ligger Bcachefs före Btrfs och andra filsystem baserade på Copy-on-Write-mekanismen, och visar prestanda nära Ext4 och XFS.

Av de senaste prestationerna i utvecklingen av Bcachefs noteras stabiliseringen av implementeringen av ögonblicksbilder tillgängliga för skrivning. Jämfört med Btrfs är ögonblicksbilder i Bcachefs nu mycket bättre skalbara och fria från problemen som är inneboende i Btrfs. I praktiken testades arbetet med ögonblicksbilder när man organiserade MySQL-säkerhetskopior. Bcachefs har också gjort mycket arbete för att förbättra skalbarheten – filsystemet har presterat bra i testning i 100 TB-lagring, och Bcachefs förväntas implementeras i 1 PB-lagring inom en snar framtid. Ett nytt nocow-läge har lagts till för att inaktivera mekanismen "copy-on-write" (nocow). Under sommaren planerar de att få implementeringen av felkorrigeringskoder och RAIDZ till ett stabilt tillstånd, samt lösa problem med hög minnesförbrukning vid återställning och kontroll av filsystem med verktyget fsck.

Av planerna för framtiden nämns önskan att använda språket Rust i utvecklingen av Bcachefs. Enligt författaren till Bcachefs gillar han att koda, inte att felsöka kod, och nu är det galet att skriva kod i C när det finns ett bättre alternativ. Rust är redan involverad i Bcachefs i implementeringen av några av användarutrymmesverktygen. Dessutom kläcks idén att gradvis helt omskriva Bcachefs i Rust, eftersom att använda detta språk avsevärt sparar felsökningstid.

När det gäller att flytta Bcachefs till mainstream av Linux-kärnan, kan adoptionsprocessen försenas på grund av den stora storleken på ändringarna (2500 patchar och cirka 90 tusen 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 separerade delar. Under diskussionen uppmärksammade några deltagare också utvecklingen av projektet av en utvecklare och risken för att koden skulle kunna lämnas outhållen om något hände dess utvecklare (två Red Hat-anställda är intresserade av projektet, men deras arbete är fortfarande begränsade buggfixar).

Bcachefs är utvecklad med hjälp av tekniker som redan testats i utvecklingen av Bcache-blockenheten, designad för att cache-åtkomst till långsamma hårddiskar på snabba SSD-enheter (ingår i kärnan sedan release 3.10). Bcachefs använder mekanismen Copy-on-Write (COW), där ändringar inte leder till att data skrivs över - det nya tillståndet skrivs till en ny plats, varefter den nuvarande tillståndsindikatorn ändras.

En funktion hos Bcachefs är stöd för flerskiktsanslutning av enheter, där lagringen består av flera lager - de snabbaste enheterna (SSD) är anslutna till det nedre lagret, som används för att cachelagra ofta använda data, och det översta lagret bildas rymligare och billigare diskar som lagrar mindre efterfrågad data. Återskrivningscache kan användas mellan lager. Enheter kan läggas till dynamiskt till och kopplas bort från en partition utan att avbryta användningen av filsystemet (data migreras automatiskt).

Källa: opennet.ru

Lägg en kommentar