Bcachef reklamavimas Linux branduolyje

Kentas Overstreetas, BCache SSD blokų įrenginių talpyklos sistemos, kuri yra Linux branduolio dalis, autorius, savo kalboje LSFMM 2023 konferencijoje (Linux Storage, Filesystem, Memory Management) apibendrino Bcachefs failų sistemos propagavimo darbo rezultatus. & BPF Summit) į pagrindinę Linux branduolio sudėtį ir kalbėjo apie tolesnio šios FS plėtros planus. Gegužės mėn. buvo pasiūlytas peržiūrėti ir įtraukti į pagrindinę Linux branduolio sudėtį atnaujintas pataisų rinkinys su Bcachefs FS įdiegimu. FS Bcachefs kuria apie 10 metų. Pasirengimas peržiūrėti Bcachefs diegimą prieš įtraukiant į branduolį buvo paskelbtas 2020 metų pabaigoje, o dabartinėje pataisų versijoje atsižvelgta į ankstesnės peržiūros metu nustatytas pastabas ir trūkumus.

Bcachefs kūrimo tikslas yra pasiekti XFS našumo, patikimumo ir mastelio keitimo lygį, kartu suteikiant papildomų funkcijų, būdingų Btrfs ir ZFS, pvz., kelių įrenginių įtraukimas į skaidinį, kelių sluoksnių saugojimo išdėstymas, replikacija (RAID 1/10), talpyklos kaupimas, skaidrus duomenų glaudinimas (LZ4, gzip ir ZSTD režimai), būsenos pjūviai (momentinės nuotraukos), vientisumo patikrinimas pagal kontrolines sumas, galimybė saugoti Reed-Solomon klaidų taisymo kodus (RAID 5/6), šifruotas informacijos saugojimas (ChaCha20 ir Poly1305). yra naudojami). Kalbant apie našumą, „Bcachefs“ lenkia „Btrfs“ ir kitas failų sistemas, pagrįstas „Copy-on-Write“ mechanizmu, ir demonstruoja našumą, artimą Ext4 ir XFS.

Iš naujausių Bcachefs kūrimo laimėjimų pažymimas momentinių vaizdų, kuriuos galima rašyti, diegimo stabilizavimas. Palyginti su Btrfs, momentinės nuotraukos Bcachefs dabar yra daug geriau keičiamos ir be problemų, būdingų Btrfs. Praktikoje momentinių vaizdų darbas buvo išbandytas organizuojant MySQL atsargines kopijas. „Bcachefs“ taip pat daug nuveikė, kad pagerintų mastelį – failų sistema puikiai pasirodė testuojant 100 TB saugykloje, o artimiausiu metu „Bcachefs“ turėtų būti įdiegta 1 PB saugykloje. Pridėtas naujas nocow režimas, išjungiantis „kopijavimo rašant“ (nocow) mechanizmą. Per vasarą jie planuoja stabilizuoti klaidų taisymo kodų ir RAIDZ diegimą, taip pat išspręsti problemas dėl didelio atminties suvartojimo atkuriant ir tikrinant failų sistemas su fsck programa.

Iš ateities planų minimas noras panaudoti Rust kalbą kuriant Bcachefs. Pasak Bcachefs autoriaus, jam patinka koduoti, o ne derinti kodą, o dabar beprotiška rašyti kodą C kalba, kai yra geresnis variantas. Rust jau dalyvauja „Bcachefs“ diegdama kai kurias vartotojo erdvės paslaugas. Be to, kyla mintis palaipsniui visiškai perrašyti Bcachefs į Rust, nes naudojant šią kalbą žymiai sutaupoma derinimo laikas.

Kalbant apie „Bcachefs“ perkėlimą į pagrindinį „Linux“ branduolio srautą, priėmimo procesas gali užtrukti dėl didelio pakeitimų dydžio (2500 pataisų ir apie 90 tūkst. kodo eilučių), kuriuos sunku peržiūrėti. Norėdami pagreitinti peržiūrą, kai kurie kūrėjai pasiūlė suskaidyti pataisų seriją į mažesnes ir logiškiau atskirtas dalis. Diskusijos metu kai kurie dalyviai atkreipė dėmesį ir į vieno kūrėjo vykdomą projekto vystymą bei pavojų, kad kodas gali likti neprižiūrėtas, jei jo kūrėjui kas nors nutiktų (projektu domisi du „Red Hat“ darbuotojai, tačiau jų darbas vis dar vyksta riboti klaidų pataisymai).

„Bcachefs“ sukurta naudojant technologijas, jau išbandytas kuriant „Bcache“ bloko įrenginį, skirtą prieigai prie lėtų standžiųjų diskų, esančių greituose SSD diskuose (įtraukta į branduolį nuo 3.10 leidimo), talpykloje saugoti. „Bcachefs“ naudoja „Copy-on-Write“ (COW) mechanizmą, kurio pakeitimai nesukelia duomenų perrašymo – nauja būsena įrašoma į naują vietą, po kurios pasikeičia esamos būsenos indikatorius.

„Bcachefs“ ypatybė yra daugiasluoksnio diskų prijungimo palaikymas, kai saugykla susideda iš kelių sluoksnių – greičiausi diskai (SSD) yra prijungti prie apatinio sluoksnio, kurie naudojami dažnai naudojamiems duomenims kaupti talpykloje, o viršutinis sluoksnis formuoja. talpesni ir pigesni diskai, kuriuose saugomi mažiau reikalingi duomenys. Rašymo talpyklą galima naudoti tarp sluoksnių. Diskus galima dinamiškai pridėti ir atskirti nuo skaidinio nenutraukiant failų sistemos naudojimo (duomenys migruoja automatiškai).

Šaltinis: opennet.ru

Добавить комментарий