Povýšení Bcachefů na linuxové jádro

Kent Overstreet, autor cachovacího systému blokového zařízení BCache SSD, který je součástí linuxového jádra, shrnul výsledky práce na propagaci souborového systému Bcachefs ve svém vystoupení na konferenci LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit). do hlavního složení linuxového jádra a hovořil o plánech dalšího vývoje tohoto FS. V květnu byla navržena aktualizovaná sada oprav s implementací Bcachefs FS ke kontrole a zahrnutí do hlavního složení linuxového jádra. FS Bcachefs se vyvíjí zhruba 10 let. Připravenost na přezkoumání implementace Bcachefů před zařazením do jádra byla oznámena na konci roku 2020 a aktuální verze oprav zohledňuje připomínky a nedostatky zjištěné při předchozí kontrole.

Cílem vývoje Bcachefs je dosáhnout úrovně XFS ve výkonu, spolehlivosti a škálovatelnosti a zároveň poskytovat další funkce vlastní Btrfs a ZFS, jako je zahrnutí více zařízení do oddílu, vícevrstvé rozložení úložiště, replikace (RAID 1/10), ukládání do mezipaměti, transparentní komprese dat (režimy LZ4, gzip a ZSTD), stavové řezy (snapshoty), ověřování integrity kontrolními součty, možnost ukládat kódy opravy chyb Reed-Solomon (RAID 5/6), šifrované ukládání informací (ChaCha20 a Poly1305 Jsou používány). Z hlediska výkonu je Bcachefs před Btrfs a dalšími souborovými systémy založenými na mechanismu Copy-on-Write a předvádí výkon blízký Ext4 a XFS.

Z posledních úspěchů ve vývoji Bcachefs je zaznamenána stabilizace implementace snímků dostupných pro psaní. Ve srovnání s Btrfs jsou nyní snímky v Bcachefs mnohem lépe škálovatelné a bez problémů, které jsou Btrfs vlastní. V praxi byla testována práce snapshotů při organizaci záloh MySQL. Bcachefs také udělal hodně práce na zlepšení škálovatelnosti – souborový systém si vedl dobře při testování ve 100 TB úložišti a očekává se, že Bcachefs bude v blízké budoucnosti implementován do 1 PB úložiště. Byl přidán nový režim nocow, který deaktivuje mechanismus „copy-on-write“ (nocow). Během léta plánují uvést implementaci kódů pro opravu chyb a RAIDZ do stabilního stavu a také vyřešit problémy s vysokou spotřebou paměti při obnově a kontrole souborových systémů pomocí utility fsck.

Z plánů do budoucna je zmíněna touha využít jazyk Rust při vývoji Bcachefů. Autor Bcachefs podle svých slov rád kóduje, ne ladí kód, a teď je šílené psát kód v C, když je lepší možnost. Rust se již v Bcachefs podílí na implementaci některých utilit pro uživatelský prostor. Navíc se rodí myšlenka postupně zcela přepsat Bcachefs v Rustu, protože používání tohoto jazyka výrazně šetří čas na ladění.

Co se týče přesunu Bcachefů do hlavního proudu linuxového jádra, proces přijetí může být zpožděn kvůli velkému rozsahu změn (2500 záplat a asi 90 tisíc řádků kódu), což je obtížné přezkoumat. Aby se urychlila kontrola, někteří vývojáři navrhli rozdělit sérii patchů na menší a logičtěji oddělené části. Někteří účastníci během diskuse také upozorňovali na vývoj projektu jedním vývojářem a nebezpečí, že by kód mohl zůstat neudržovaný, pokud by se jeho vývojáři něco stalo (o projekt mají zájem dva zaměstnanci Red Hatu, ale jejich práce je stále omezené opravy chyb).

Bcachefs je vyvíjen pomocí technologií, které již byly testovány při vývoji blokového zařízení Bcache, určeného pro cache přístup k pomalým pevným diskům na rychlých SSD discích (zahrnutých v jádře od vydání 3.10). Bcachefs využívá mechanismus Copy-on-Write (COW), ve kterém změny nevedou k přepsání dat – nový stav je zapsán na nové místo, načež se změní indikátor aktuálního stavu.

Charakteristickým rysem Bcachefs je podpora vícevrstvého spojení disků, ve kterém je úložiště složeno z několika vrstev – ke spodní vrstvě jsou připojeny nejrychlejší disky (SSD), které slouží k ukládání často používaných dat do mezipaměti, a horní vrstva tvoří prostornější a levnější disky, které ukládají méně požadovaná data. Mezi vrstvami lze použít ukládání zpětného zápisu do mezipaměti. Jednotky lze dynamicky přidávat a odpojovat od oddílu bez přerušení používání systému souborů (data migrují automaticky).

Zdroj: opennet.ru

Přidat komentář