Bcachefide reklaamimine Linuxi tuumasse

Linuxi kerneli osaks oleva BCache SSD plokkseadmete vahemällu salvestamise süsteemi autor Kent Overstreet võttis LSFMM 2023 konverentsil (Linux Storage, Filesystem, Memory Management) peetud kõnes kokku Bcachefsi failisüsteemi propageerimisel tehtud töö tulemused. & BPF Summit) Linuxi kerneli põhikoosseisu ja rääkis selle FS-i edasiarendamise plaanidest. Mais pakuti ülevaatamiseks ja Linuxi kerneli põhikoosseisu kaasamiseks uuendatud plaastrite komplekti Bcachefs FS-i juurutamisega. FS Bcachefs on arenenud umbes 10 aastat. Valmisolekust Bcachefide juurutamise ülevaatamiseks enne tuumasse lisamist teatati 2020. aasta lõpus ning plaastrite praegune versioon võtab arvesse eelmise ülevaatuse käigus tuvastatud kommentaare ja puudusi.

Bcachefsi arenduse eesmärk on jõuda XFS-i tasemele jõudluses, töökindluses ja mastaapsuses, pakkudes samal ajal Btrfsile ja ZFS-ile omaseid lisafunktsioone, nagu näiteks mitme seadme kaasamine partitsiooni, mitmekihilised salvestuspaigutused, replikatsioon (RAID 1/10), vahemällu salvestamine, andmete läbipaistev tihendamine (LZ4, gzip ja ZSTD režiimid), olekulõigud (hetktõmmised), terviklikkuse kontrollimine kontrollsummade abil, võimalus salvestada Reed-Solomoni veaparanduskoode (RAID 5/6), krüpteeritud teabe salvestamine (ChaCha20 ja Poly1305) kasutatakse). Jõudluse osas edestab Bcachefs Btrfsi ja muid failisüsteeme, mis põhinevad Copy-on-Write mehhanismil, ning demonstreerib jõudlust Ext4 ja XFS-i lähedal.

Viimastest saavutustest Bcachefi arenduses märgitakse kirjutamiseks saadaolevate hetktõmmiste rakendamise stabiliseerumist. Võrreldes Btrfsiga on Bcachefi hetktõmmised nüüd palju paremini skaleeritavad ja vabad Btrfs-ile omastest probleemidest. Praktikas testiti MySQL-i varukoopiate korraldamisel hetktõmmiste tööd. Bcachefs on palju tööd teinud ka skaleeritavuse parandamiseks – failisüsteem on 100 TB salvestusruumis testimisel hästi hakkama saanud ning lähiajal on oodata Bcachefsi juurutamist 1 PB salvestusruumis. Lisatud on uus nocow režiim, et keelata "kirjutamisel kopeerimine" (nocow) mehhanism. Suve jooksul on neil plaanis viia veaparanduskoodide ja RAIDZ juurutamine stabiilsesse olekusse, samuti lahendada fsck utiliidiga failisüsteemide taastamisel ja kontrollimisel probleeme suure mälukuluga.

Tulevikuplaanidest mainitakse soovi kasutada Bcachefide arendamisel Rusti keelt. Bcachefsi autori sõnul meeldib talle kodeerida, mitte koodi siluda ja nüüd on hull C-s koodi kirjutada, kui on parem variant. Rust osaleb juba Bcachefis mõne kasutajaruumi utiliidi juurutamisel. Pealegi hautakse välja idee Bcachefid Rustis järk-järgult täielikult ümber kirjutada, kuna selle keele kasutamine säästab oluliselt silumisaega.

Mis puudutab Bcachefide viimist Linuxi kerneli peavoolu, siis muudatuste suure mahu tõttu (2500 plaastrit ja umbes 90 tuhat koodirida) võib vastuvõtmisprotsess viibida, mida on raske üle vaadata. Ülevaatamise kiirendamiseks on mõned arendajad soovitanud jagada plaastri seeria väiksemateks ja loogiliselt eraldatud osadeks. Arutelu käigus juhtisid mõned osalejad tähelepanu ka ühe arendaja projekti arendamisele ja ohule, et kood võib jääda hooldamata, kui selle arendajaga peaks midagi juhtuma (kaks Red Hati töötajat tunnevad projekti vastu huvi, kuid nende töö on veel pooleli). piiratud veaparandused).

Bcachefs on välja töötatud tehnoloogiate abil, mida on juba katsetatud Bcache-ploki seadme väljatöötamisel, mis on loodud kiirete SSD-de aeglastele kõvaketastele juurdepääsu vahemällu salvestamiseks (sisaldub kernelis alates väljalaskest 3.10). Bcachefs kasutab Copy-on-Write (COW) mehhanismi, mille puhul muudatused ei too kaasa andmete ülekirjutamist – uus olek kirjutatakse uude asukohta, misjärel hetkeseisu indikaator muutub.

Bcachefi eripäraks on draivide mitmekihilise ühendamise tugi, mille puhul salvestusruum koosneb mitmest kihist – kõige kiiremad draivid (SSD-d) on ühendatud alumise kihiga, mida kasutatakse sageli kasutatavate andmete vahemällu salvestamiseks ja ülemine kiht moodustab mahukamad ja odavamad kettad, mis salvestavad vähem nõutud andmeid. Kihtide vahel saab kasutada tagasikirjutamise vahemällu. Draive saab partitsioonile dünaamiliselt lisada ja sealt eraldada ilma failisüsteemi kasutamist katkestamata (andmed migreeruvad automaatselt).

Allikas: opennet.ru

Lisa kommentaar