Bcachefsi edendamine Linuxi kerneli osaks

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

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster