Promovimi i Bcachefs në përbërjen e bërthamës Linux

Kent Overstreet, autor i sistemit të mb caches për pajisjet me bllokë në SSD-në BCache, në fjalimin e tij në konferencën LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit), përmbledh rezultatet e punës për avancimin e sistemit të skedarëve Bcachefs në bërthamën kryesore të Linux-it dhe tregon planet për zhvillimin e mëtejshëm të këtij sistemi. Në maj, një grup i përmirësuar patch-esh me implementimin e sistemit të skedarëve Bcachefs u propozuar për rishikim dhe përfshirje në bërthamën kryesore të Linux-it. Bcachefs ka qenë në zhvillim për rreth 10 vjet. Kisha shpallur gatishmërinë për rishikimin e realizimit të Bcachefs para përfshirjes në bërthama që në fund të vitit 2020, dhe në këtë version të patch-eve janë marrë parasysh vërejtjet dhe papërsosmëritë e gjetura gjatë rishikimit të kaluar.

Qëllimi i zhvillimit të Bcachefs është arritja e nivelit XFS në performancë, besueshmëri dhe shkallëzueshmëri, duke ofruar përveç kësaj mundësi shtesë, të cilat janë karakteristike për Btrfs dhe ZFS, siç janë përfshirja e disa pajisjeve në një ndarje, konfigurimet me shumë shtresa të ruajtësve, replikimi (RAID 1/10), caching, kompresimi transparent i të dhënave (modet LZ4, gzip dhe ZSTD), snapshot-et e gjendjes, verifikimi i integritetit me checksum-e, aftësia për ruajtjen e kodave të korrigjimit të gabimeve të Reed-Solomon (RAID 5/6), ruajtja e informacionit në formë të enkriptuar (përdoren ChaCha20 dhe Poly1305). Në performancë, Bcachefs tejkalon Btrfs dhe sistemet e tjera të skedarëve që bazohen në mekanizmin Copy-on-Write, dhe tregon shpejtësi operimi të ngjashme me Ext4 dhe XFS.

Nga arritjet e fundit nĂ« zhvillimin e Bcachefs, Ă«shtĂ« theksuar stabilizimi i implementimit tĂ« snapshot-eve tĂ« disponueshĂ«m pĂ«r shkrim. Krahasuar me Btrfs, snapshot-et nĂ« Bcachefs tani shkallĂ«zohen shumĂ« mĂ« mirĂ« dhe janĂ« liruar nga problemet qĂ« i pĂ«rkasin Btrfs. NĂ« praktikĂ«, funksionaliteti i snapshot-eve Ă«shtĂ« testuar gjatĂ« organizimit tĂ« kopjimeve rezervĂ« tĂ« MySQL. Bcachefs gjithashtu ka bĂ«rĂ« njĂ« punĂ« tĂ« madhe nĂ« pĂ«rmirĂ«simin e shkallĂ«zueshmĂ«risĂ« — sistemi i skedarĂ«ve ka treguar rezultate tĂ« mira nĂ« testimet nĂ« ruajtjet me madhĂ«si 100 TB, dhe nĂ« njĂ« tĂ« ardhme tĂ« afĂ«rt pritet tĂ« implementohet Bcachefs nĂ« njĂ« ruajtje me madhĂ«si 1 PB. Ă«shtĂ« shtuar njĂ« mod nĂ« nocow pĂ«r tĂ« çaktivizuar mekanizmin "copy-on-write" (nocow). GjatĂ« verĂ«s, planifikohet qĂ« tĂ« arrihet njĂ« gjendje e stabilizuar pĂ«r implementimin e kodeve tĂ« korrigjimit tĂ« gabimeve dhe RAIDZ, si dhe tĂ« zgjidhen problemet me ndihmĂ«n e lartĂ« tĂ« memories gjatĂ« rikuperimit dhe verifikimit tĂ« FS me mjete fsck.

Sa i përket planeve për të ardhmen, përmendet dëshira për të përdorur gjatë zhvillimit të Bcachefs gjuhën Rust. Sipas autorit të Bcachefs, ai e do programimin dhe jo debuginimin e kodit, dhe tani është i çmendur për të shkruar kod në gjuhën C, kur ka një variant më të mirë. Rust është tashmë i angazhuar në Bcachefs në implementimin e disa mjeteve, të cilat ekzekutohen në hapësirën e përdoruesit. Për më tepër, ekziston ideja që gradualisht të rishkruhet plotësisht Bcachefs në Rust, pasi përdorimi i kësaj gjuhe kursen në mënyrë të konsiderueshme kohën për debuginim.

Sa i përket promovimit të Bcachefs në bërthamën kryesore të Linux-it, shtë një proces i mundshëm që mund të zgjatet për shkak të madhësisë mjaft të madhe të ndryshimeve (2500 patches dhe rreth 90 mijë rreshta kodi), të cilat janë të vështira për t'u revizuar. Për të përshpejtuar procesin e rishikimit, disa zhvillues propozuan ndarjen e serisë së patch-eve në pjesë më të vogla dhe logjikisht të ndara. Në procesin e diskutimit, disa pjesëmarrës gjithashtu vënë në dukje zhvillimin e projektit nga një zhvillues dhe rrezikun që kodi mund të mbetet pa mbështetje, në rast se ndodhin probleme me zhvilluesin. (Dy punonjës të Red Hat janë të interesuar për projektin, por puna e tyre është për momentin e kufizuar në korrigjimin e gabimeve).

Bcachefs po zhvillohet duke përdorur teknologji tashmë të provuara gjatë zhvillimit të pajisjes bllokuese Bcache, e cila është projektuar për të u ofruar qasje të shpejtë harduerëve të ngadalshëm të hard diskëve në SSD-të e shpejta (bëhet pjesë e kernelit që nga lëshimi 3.10). Në Bcachefs përdoret mekanizmi Copy-on-Write (COW), ku ndryshimet nuk çojnë në rishkrimin e të dhënave - gjendja e re shkruhet në një vend të ri, pas së cilës ndryshohet treguesi i gjendjes aktuale.

Veçoria dalluese e Bcachefs Ă«shtĂ« mbĂ«shtetja pĂ«r lidhjen shumĂ«shtresore tĂ« pajisjeve tĂ« ruajtjes, ku hapĂ«sira e ruajtjes ndĂ«rtohet nga disa shtresa — nĂ« shtresĂ«n e poshtme lidhen pajisjet mĂ« tĂ« shpejta (SSD), tĂ« cilat pĂ«rdoren pĂ«r tĂ« cache-uar tĂ« dhĂ«nat qĂ« pĂ«rdoren shpesh, ndĂ«rsa shtresĂ«n e sipĂ«rme e formojnĂ« disqe mĂ« tĂ« mĂ«dhenj dhe mĂ« ekonomikĂ«, qĂ« sigurojnĂ« ruajtjen e tĂ« dhĂ«nave mĂ« pak tĂ« kĂ«rkuara. Midis shtresave mund tĂ« pĂ«rdoret cache-imi nĂ« modalitetin e shkrimit tĂ« vonuar (writeback). Pajisjet e ruajtjes mund tĂ« shtohen dhe tĂ« shkĂ«puten nĂ« mĂ«nyrĂ« dinamike nga ndarja pa ndĂ«rprerĂ« pĂ«rdorimin e sistemit tĂ« skedarĂ«ve (tĂ« dhĂ«nat migrojnĂ« automatikisht).

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster