Bcachefsi edendamine Linuxi kernelisse

Kent Overstreet, BCache'i SSD-ühenduse blokkhäälestuse tuuma koostisse kuuluv autor, kokkuvõttes oma esitluses LSFMM 2023 (Linuxi salvestamine, failisüsteem, mälu haldamine ja BPF tippsündmus) tutvustas Bcachefs failisüsteemi edendamise töö tulemusi tuuma peamisse koosseisu ning jagas plaane selle failisüsteemi edasiseks arendamiseks. Mais esitati arvustamiseks ja tuumasse lisamiseks ajakohastatud patšide kogum Bcachefs failisüsteemi rakendamisega. Bcachefs failisüsteem on juba umbes 10 aastat arenenud. Bcachefsi rakenduse arvustamise valmidusest tuuma lisamiseks kuulutati juba 2020. aasta lõpus ja praegustes patšides on arvesse võetud eelneva arvustamise käigus esitatud märkusi ja puudusi.

Bcachefs arendamise eesmärk on saavutada XFS tasemel jõudlus, usaldusväärsus ja skaleeritavus, pakkudes samal ajal täiendavaid funktsioone, mis on iseloomulikud Btrfs ja ZFS-le, nagu mitme seadme ühendamine partitsiooniga, kihilised salvestussüsteemid, replikatsioon (RAID 1/10), vahemälu, läbipaistev andmete tihendamine (LZ4, gzip ja ZSTD režiimid), olekukatked (snapshoti), terviklikkuse kontrollimine kontrollsummade kaudu, Reed-Salomoni veakorrektsioonikoodide salvestamine (RAID 5/6) ning teabe salvestamine krüpteeritud kujul (kasutades ChaCha20 ja Poly1305). Jõudluselt ületab Bcachefs Btrfs ja teisi Copy-on-Write põhiseid failisüsteeme ning demonstreerib töökiirus, mis on lähedane Ext4 ja XFS-le.

Viimastest Bcachefsi arendustest on välja toodud kirjutamiseks kättesaadavate snapshots'ide stabiliseerimine. Võrreldes Btrfs-iga skaleeruvad Bcachefs'i snapshots nüüd oluliselt paremini ning on vabad Btrfs-ile iseloomulikest probleemidest. Praktikas on snapshots'i tööd testitud MySQL'i varundamise korraldamisel. Bcachefs's on samuti tehtud suurt tööd skaleeritavuse parendamiseks — failisüsteem on hästi toiminud 100 TB suurustes salvestustes ning varsti oodatakse Bcachefs'i rakendamist 1 PB suuruses salvestuses. Uuendatud on nocow režiimi, mis keelab 'copy-on-write' mehhanismi (nocow). Suve jooksul plaanitakse viia stabiilseks vigade korrigeerimise koodide ja RAIDZ rakendamine ning lahendada mälu kõrge tarbimise probleem taastamise ja FS kontrollimise utiliidiga fsck.

Tuleviku plaanides mainitakse soovi kasutada Bcachefsi arendamisel programmeerimiskeelt Rust. Bcachefsi autori arvates meeldib talle programmeerida, mitte koodi siluda, ja nüüd on meeletu kirjutada koodi keeles C, kui on saadaval parem variant. Rusti kasutatakse juba Bcachefssis mõnede kasutajaruumi käivitatavate utiliitide rakendamisel. Veelgi enam, plaan on järk-järgult Bcachefs täielikult Rustis ümber kirjutada, kuna selle keele kasutamine säästab oluliselt silumise aega.

Mis osas Bcachefsi edendamisest Linuxi tuuma põhikoosseisu, võib heakskiitmine venida, kuna muudatused on piisavalt suured (2500 patši ja umbes 90 tuhat rida koodi), mida on raske üle vaadata. Ülevaatamise kiirendamiseks on mõned arendajad pakkunud patšiseeria jagamist väiksemateks ja loogiliselt eristatavateks osadeks. Arutelu käigus märkisid mõned osalejad ka seda, et projekti arendab üks arendaja, mis toob endaga ohu, et kood võib jääda hoolduseta, juhul kui arendajaga juhtub midagi (projekti vastu on huvi üles näidanud kaks Red Hati töötajat, kuid nende töö piirdub seni vigade parandamisega).

Bcachefs areneb areneb tehnoloogiate abil, mida on juba katsetatud Bcache plokkseadmise arendamisel, mis on mõeldud aeglaste kõvaketaste juurdepääsu kiiruskaubanduseks kiirete SSD-dega (kuulub tuumasse alates versioonist 3.10). Bcachefs-is kasutatakse Copy-on-Write (COW) mehhanismi, kus muudatused ei põhjusta andmete ülekirjutamist — uus olek kirjutatakse uude asukohta, seejärel muudetakse kehtiva oleku viidatud koht.

Bcachefs-i eripära on mitmekihiline salvestusseade, kus salvestus koosneb mitmest kihist — alumise kihi külge ühendatakse kõige kiiremad salvestusseadmed (SSD), mida kasutatakse sageli kasutatavate andmete vahekottideks, ning ülemise kihi moodustavad mahukamad ja odavamad kettad, mis pakuvad salvestust vähem nõutud andmetele. Kihtide vahel võib kasutada kirjutamise vahepealse salvestuse (writeback) vahepealset kirjutamist. Salvestusseadmeid saab dünaamiliselt lisada ja eemaldada partitsioonist ilma failisüsteemi kasutamise katkestamata (andmed migreeruvad automaatselt).

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster