Promicanje Bcachefa u Linux kernel

Kent Overstreet, autor BCache SSD block device caching sustava koji je dio Linux kernela, u svom govoru na LSFMM 2023 konferenciji (Linux Storage, Filesystem, Memory Management) sažeo je rezultate rada na promicanju datotečnog sustava Bcachefs. & BPF Summit).u glavni sastav Linux kernela i govorio o planovima za daljnji razvoj ovog FS-a. U svibnju je predložen ažurirani skup zakrpa s implementacijom Bcachefs FS-a za pregled i uključivanje u glavni sastav Linux kernela. FS Bcachefs razvija se oko 10 godina. Spremnost za reviziju implementacije Bcachef-a prije uključivanja u jezgru najavljena je krajem 2020., a trenutna verzija zakrpa uzima u obzir komentare i nedostatke uočene tijekom prethodne revizije.

Razvojni cilj Bcachefs-a je doseći razinu XFS-a u performansama, pouzdanosti i skalabilnosti, uz pružanje dodatnih značajki svojstvenih Btrfs-u i ZFS-u, kao što je uključivanje više uređaja u particiju, višeslojni rasporedi pohrane, replikacija (RAID 1/10), predmemorija, transparentna kompresija podataka (LZ4, gzip i ZSTD modovi), isječci stanja (snimke), provjera integriteta pomoću kontrolnih zbrojeva, mogućnost pohrane Reed-Solomon kodova za ispravljanje pogrešaka (RAID 5/6), šifrirana pohrana informacija (ChaCha20 i Poly1305 su korišteni). Što se tiče performansi, Bcachefs je ispred Btrfs-a i drugih datotečnih sustava temeljenih na Copy-on-Write mehanizmu, te pokazuje performanse bliske Ext4 i XFS.

Od najnovijih dostignuća u razvoju Bcachef-a, ističe se stabilizacija implementacije snimaka dostupnih za pisanje. U usporedbi s Btrfs-om, snimke u Bcachefsu sada su puno bolje skalabilne i oslobođene su problema svojstvenih Btrfs-u. U praksi je rad snimki testiran prilikom organiziranja MySQL sigurnosnih kopija. Bcachefs je također napravio puno posla na poboljšanju skalabilnosti - datotečni sustav se dobro pokazao pri testiranju u pohrani od 100 TB, a očekuje se da će Bcachefs biti implementiran u pohranu od 1 PB u bliskoj budućnosti. Dodan je novi način nocow za onemogućavanje mehanizma "copy-on-write" (nocow). Tijekom ljeta planiraju dovesti implementaciju kodova za ispravljanje grešaka i RAIDZ-a u stabilno stanje, kao i riješiti probleme s velikom potrošnjom memorije prilikom vraćanja i provjere datotečnih sustava pomoću uslužnog programa fsck.

Od planova za budućnost spominje se želja za korištenjem Rust jezika u razvoju Bcachefa. Prema riječima autora Bcachefsa, on voli kodirati, a ne debugirati kod, a sada je ludost pisati kod u C-u kada postoji bolja opcija. Rust je već uključen u Bcachefs u implementaciju nekih uslužnih programa korisničkog prostora. Štoviše, rađa se ideja da se Bcachefs postupno potpuno prepiše u Rust, budući da korištenje ovog jezika značajno štedi vrijeme otklanjanja pogrešaka.

Što se tiče premještanja Bcachefs-a u mainstream Linux kernela, proces usvajanja može biti odgođen zbog velike veličine promjena (2500 zakrpa i oko 90 tisuća redaka koda), što je teško pregledati. Kako bi se ubrzao pregled, neki programeri su predložili razbijanje serije zakrpa na manje i logičnije odvojene dijelove. Tijekom rasprave neki su sudionici također skrenuli pozornost na razvoj projekta od strane jednog developera i opasnost da bi kod mogao ostati neodržavan ako se nešto dogodi njegovom developeru (dva zaposlenika Red Hata su zainteresirana za projekt, ali njihov rad je i dalje ograničeni ispravci grešaka).

Bcachefs je razvijen pomoću tehnologija koje su već testirane u razvoju Bcache blok uređaja, dizajniranog za predmemoriju pristupa sporim tvrdim diskovima na brzim SSD diskovima (uključeno u kernel od izdanja 3.10). Bcachefs koristi Copy-on-Write (COW) mehanizam, u kojem promjene ne dovode do prepisivanja podataka - novo stanje se zapisuje na novu lokaciju, nakon čega se mijenja indikator trenutnog stanja.

Značajka Bcachefs-a je podrška za višeslojno povezivanje diskova, pri čemu je pohrana sastavljena od nekoliko slojeva - najbrži diskovi (SSD) povezani su na donji sloj, koji služe za predmemoriju često korištenih podataka, a gornji sloj čini kapacitetniji i jeftiniji diskovi koji pohranjuju manje tražene podatke. Predmemoriranje povratnog pisanja može se koristiti između slojeva. Pogoni se mogu dinamički dodavati i odvajati od particije bez prekida korištenja datotečnog sustava (podaci migriraju automatski).

Izvor: opennet.ru

Dodajte komentar