Kent Overstreet, Linuxi SSD-seadmiste blokiseadmise BCache'i pĂ”hiĂŒlesande autor, esitles LSFMM 2023 konverentsil (Linux Storage, Filesystem, Memory Management & BPF Summit) Bcachefs'i failisĂŒsteemi arendamise tulemusi, mis nĂ€itas, kuidas see on jĂ”udnud Linuxi pĂ”hituumiku koosseisu, ning rÀÀkis tuleviku plaanidest seoses selle failisĂŒsteemi edasise arendamisega. Mais esitati peareview'iks ja Linuxi pĂ”hituumiku koosseisu lisamiseks uuendatud patchide kogum Bcachefs'i failisĂŒsteemi rakendusega. Bcachefs'i failisĂŒsteem on arenenud juba pea 10 aastat. Bcachefs'i rakenduse ĂŒlevaatamise valmidusest, et see saaks lisada Linuxi pĂ”hituumikku, kuulutati juba 2020. aasta lĂ”pupoole, ning kĂ€esolevates patchides on arvesse vĂ”etud eelneva ĂŒlevaatamise kĂ€igus leitud puuduseid ja mĂ€rgiseid.
Bcachefs'i arendamise eesmĂ€rk on saavutada XFS-i tasemel jĂ”udlus, usaldusvÀÀrsus ja skaleeritavus, pakkudes samal ajal tĂ€iendavaid funktsioone, mis on iseloomulikud Btrfs-ile ja ZFS-ile, nagu toimetamine mitme seadmega, mitme tasandi salvestuslahendused, replikaat (RAID 1/10), vahemĂ€lu, lĂ€bipaistev andmete tihendamine (LZ4, gzip ja ZSTD reĆŸiimid), olekute kiirete (snapshoti), kontrollsummadega terviklikkuse kontrollimine, Error Correction Codes (ECC) salvestamine (RAID 5/6), ja teabe salvestamine krĂŒpteeritud kujul (kasutatakse ChaCha20 ja Poly1305). JĂ”udluse osas ĂŒletab Bcachefs Btrfs-i ja teisi Copy-on-Write mehhanismiga failisĂŒsteeme ning nĂ€itab töösagedust, mis on Stek4 ja XFS-iga sarnane.
Viimaste saavutuste seas Bcachefsi arenduses on mĂ€rgitud stabiilsete kirjutatavate hetkepiltide rakenduste stabiliseerimine. VĂ”rreldes Btrfs-iga skaleeruvad Bcachefsi hetkepildid nĂŒĂŒd mĂ€rgatavalt paremini ja on vabad Btrfs-i iseloomulike probleemide poolest. Praktikas on hetkepiltide tööd proovitud MySQL-i varundamise korraldamisel. Bcachefs-is on samuti tehtud suur töö skaleeritavuse parandamiseks â failisĂŒsteem on hĂ€sti toiminud testimisel 100 TB suurustes salvestites ja peagi oodatakse Bcachefsi rakendamist 1 PB suuruses salvestis. Uus nocow reĆŸiim on lisatud, et keelata âcopy-on-writeâ mehhanism (nocow). Suve jooksul plaanitakse saavutada stabiilne olek vigade parandamise koodide ja RAIDZ rakendamise osas ning lahendada mĂ€lu kĂ”rge tarbimise probleemid failisĂŒsteemi taastamise ja kontrollimise tööriistaga fsck.
Tulevikuplaanide seas on soov kasutada Bcachefsi arendamisel Rusti keelt. Bcachefsi autori arvates meeldib talle kodeerida, mitte koodi siluda, ja nĂŒĂŒd on meeletu kirjutada koodi C keeles, kui on olemas parem variant. Rusti on juba rakendatud Bcachefs-is mĂ”nedes kasutajaruumi tööriistades. Veelgi enam, plaanitakse jĂ€rk-jĂ€rgult tĂ€ielikult ĂŒmber kirjutada Bcachefs Rustis, kuna selle keele kasutamine sÀÀstab mĂ€rkimisvÀÀrselt silumise aega.
Mis puudutab Bcachefsi edendamist Linuxi pĂ”hiytu kaudu, siis vastuvĂ”tuprotsess vĂ”ib venida tĂ€nu piisavalt suurele muudatuste mahule (2500 patshi ja umbes 90 tuhat koodi rida), mida on raske ĂŒle vaadata. Ălevaatamise kiirendamiseks on mĂ”ned arendajad soovitanud jagada patshivihiku vĂ€iksemateks ja loogiliselt eraldatud osadeks. Arutelu kĂ€igus on mĂ”ned osalejad samuti mĂ€rkinud, et projekti arendab ainult ĂŒks arendaja ning ohtu, et kood vĂ”ib jÀÀda hooldamata, kui temaga peaks midagi juhtuma (projekti suhtes on huvi ĂŒles nĂ€idanud kaks Red Hati töötajat, kuid nende töö piirdub hetkel ainult vigade parandamisega).
Bcachefs areneb arenen arendatud tehnoloogiate abil, mis on juba testitud Bcache plokiseadmestiku arendamisel, mis on mĂ”eldud aeglaste kĂ”vaketaste kiiremaks juurdepÀÀsuks kiirete SSD-de kaudu (sisaldub kerneli alates versioonist 3.10). Bcachefs kasutab Copy-on-Write (COW) mehhanismi, kus muudatused ei pĂ”hjusta andmete ĂŒlekirjutamist â uus olek salvestatakse uude kohta, mille jĂ€rel muudetakse kehtiva oleku viidatud kohta.
Bcachefs'i eripĂ€ra on mitmekihiline kettaliides, kus salvestus koosneb mitmest kihist â alumisele kihile on ĂŒhendatud kĂ”ige kiiremad seadmed (SSD-d), mida kasutatakse sageli kasutatavate andmete vahemĂ€luks, ning ĂŒlemine kiht koosneb suurema mahuga ja odavamatest ketastest, mis tagavad vĂ€hem nĂ”udlike andmete salvestamise. Kihistuste vahel vĂ”ib rakendada vahemĂ€lu viivitusega kirjutamise reĆŸiimis (writeback). Salvestusseadmeid saab dĂŒnaamiliselt lisada ja eemaldada sektsioonist ilma failisĂŒsteemi kasutamise peatamiseta (andmed migreeruvad automaatselt).
Allikas: opennet.ru
