Antaŭenigante Bcachefs al la Linuksa Kerno

Kent Overstreet, la verkinto de la BCache SSD bloka aparato kaŝmemorsistemo, kiu estas parto de la Linukso-kerno, resumis la rezultojn de la laboro pri promocio de la dosiersistemo Bcachefs en sia parolado ĉe la LSFMM 2023-konferenco (Linukso Stokado, Dosiersistemo, Memoradministrado. & BPF Summit). en la ĉefan kunmetaĵon de la Linukso-kerno kaj parolis pri planoj por la pluevoluigo de ĉi tiu FS. En majo, ĝisdatigita aro de flikoj kun la efektivigo de la Bcachefs FS estis proponita por revizio kaj inkludo en la ĉefa komponado de la Linukso-kerno. FS Bcachefs disvolviĝas dum ĉirkaŭ 10 jaroj. La preteco por revizii la efektivigon de Bcachefs antaŭ inkludo en la kernon estis anoncita fine de 2020, kaj la nuna versio de la diakiloj konsideras la komentojn kaj mankojn identigitajn dum la antaŭa revizio.

La disvolva celo de Bcachefs estas atingi la XFS-nivelon en rendimento, fidindeco kaj skaleblo, dum li provizas pliajn funkciojn proprajn al Btrfs kaj ZFS, kiel inkluzivi plurajn aparatojn en sekcio, plurtavolajn stokadajn aranĝojn, reproduktadon (RAID 1/10), kaŝmemoro, travidebla datumkunpremado (LZ4, gzip kaj ZSTD-reĝimoj), ŝtattranĉaĵoj (momentfotoj), integreckonfirmo per ĉeksumoj, la kapablo stoki Reed-Solomon-erarĝustigkodojn (RAID 5/6), ĉifritan konservadon de informoj (ChaCha20 kaj Poly1305). estas uzataj). Koncerne rendimenton, Bcachefs estas antaŭ Btrfs kaj aliaj dosiersistemoj bazitaj sur la Copy-on-Write-mekanismo, kaj montras rendimenton proksime al Ext4 kaj XFS.

El la plej novaj atingoj en la disvolviĝo de Bcachefs, oni rimarkas la stabiligon de la efektivigo de momentfotoj disponeblaj por verkado. Kompare kun Btrfs, momentfotoj en Btrfs nun estas signife pli bone skalaj kaj liberaj de la problemoj propraj al Btrfs. En praktiko, la laboro de momentfotoj estis provita dum organizado de MySQL-sekurkopioj. Bcachefs ankaŭ faris multan laboron por plibonigi skaleblon - la dosiersistemo bone funkciis en testado en 100 TB-stokado, kaj Bcachefs estas atendita esti efektivigita en 1 PB-stokado en proksima estonteco. Nova nocow-reĝimo estis aldonita por malŝalti la "kopi-sur-skribi" (nocow) mekanismon. Dum la somero, ili planas alporti la efektivigon de eraraj korektaj kodoj kaj RAIDZ al stabila stato, kaj ankaŭ solvi problemojn kun alta memorkonsumo dum restarigo kaj kontrolado de dosiersistemoj per la fsck-utilo.

El la planoj por la estonteco, oni mencias la deziron uzi la Rust-lingvon en la evoluo de Bcachefs. Laŭ la aŭtoro de Bcachefs, li ŝatas kodi, ne sencimigi kodon, kaj nun estas freneze skribi kodon en C kiam estas pli bona eblo. Rust jam estas implikita en Bcachefs en la efektivigo de kelkaj el la uzantspacaj iloj. Krome, la ideo estas elkovita iom post iom tute reverki Bcachefs en Rust, ĉar uzi ĉi tiun lingvon signife ŝparas sencimigan tempon.

Koncerne movi Bcachefs en la ĉeftendencon de la Linukso-kerno, la adoptprocezo povas esti prokrastita pro la granda grandeco de la ŝanĝoj (2500 flikoj kaj ĉirkaŭ 90 mil linioj de kodo), kiu estas malfacile reviziebla. Por akceli revizion, iuj programistoj sugestis disigi la pecetserion en pli malgrandajn kaj pli logike apartigitajn partojn. Dum la diskuto, kelkaj partoprenantoj ankaŭ atentigis pri la disvolviĝo de la projekto fare de unu programisto kaj la danĝero, ke la kodo povus esti lasita neprizorgata, se io okazos al ĝia programisto (du dungitoj de Red Hat interesiĝas pri la projekto, sed ilia laboro ankoraŭ estas. limigitaj eraroj).

Bcachefs estas evoluigita uzante teknologiojn jam testitajn en la evoluo de la Bcache-bloka aparato, dizajnita por konservi aliron al malrapidaj malmolaj diskoj sur rapidaj SSD-diskoj (inkluditaj en la kerno ekde eldono 3.10). Bcachefs uzas la mekanismon Copy-on-Write (COW), en kiu ŝanĝoj ne kondukas al anstataŭigo de datumoj - la nova stato estas skribita al nova loko, post kio la nuna ŝtatindikilo ŝanĝiĝas.

Trajto de Bcachefs estas subteno por plurtavola konekto de diskoj, en kiu stokado konsistas el pluraj tavoloj - la plej rapidaj diskoj (SSD) estas konektitaj al la malsupra tavolo, kiuj estas uzataj por konservi ofte uzatajn datumojn, kaj la supraj tavoloj. pli ampleksaj kaj pli malmultekostaj diskoj, kiuj stokas malpli postulatajn datumojn. Reskriba kaŝmemoro povas esti uzata inter tavoloj. Diskoj povas esti dinamike aldonitaj kaj dekroĉitaj de sekcio sen interrompi la uzon de la dosiersistemo (datenoj migras aŭtomate).

fonto: opennet.ru

Aldoni komenton