Kukuza Bcachefs kwa Linux Kernel

Kent Overstreet, mwandishi wa mfumo wa kuweka kumbukumbu wa kifaa cha BCache SSD, ambayo ni sehemu ya kernel ya Linux, alitoa muhtasari wa matokeo ya kazi ya kukuza mfumo wa faili wa Bcachefs katika hotuba yake kwenye mkutano wa LSFMM 2023 (Hifadhi ya Linux, Mfumo wa Faili, Usimamizi wa Kumbukumbu. & BPF Summit). katika muundo mkuu wa Linux kernel na alizungumza kuhusu mipango ya maendeleo zaidi ya FS hii. Mnamo Mei, seti iliyosasishwa ya viraka na utekelezaji wa Bcachefs FS ilipendekezwa kwa ukaguzi na kujumuishwa katika muundo mkuu wa kernel ya Linux. FS Bcachefs imekuwa ikitengenezwa kwa takriban miaka 10. Utayari wa kukagua utekelezaji wa Bcachefs kabla ya kujumuishwa katika msingi ulitangazwa mwishoni mwa 2020, na toleo la sasa la viraka huzingatia maoni na mapungufu yaliyotambuliwa wakati wa ukaguzi uliopita.

Malengo ya ukuzaji wa Bcachefs ni kufikia kiwango cha XFS katika utendakazi, kutegemewa na kusawazisha, huku ikitoa vipengele vya ziada vilivyo katika Btrfs na ZFS, kama vile kujumuisha vifaa vingi katika kizigeu, mipangilio ya hifadhi ya tabaka nyingi, urudufishaji (RAID 1/10), caching, ukandamizaji wa data uwazi (njia za LZ4, gzip na ZSTD), vipande vya serikali (picha), uthibitishaji wa uadilifu kwa cheki, uwezo wa kuhifadhi misimbo ya kusahihisha makosa ya Reed-Solomon (RAID 5/6), uhifadhi uliosimbwa wa habari (ChaCha20 na Poly1305 hutumiwa). Kwa upande wa utendakazi, Bcachefs ziko mbele ya Btrfs na mifumo mingine ya faili kulingana na utaratibu wa Copy-on-Write, na huonyesha utendakazi karibu na Ext4 na XFS.

Kati ya mafanikio ya hivi karibuni katika maendeleo ya Bcachefs, uimarishaji wa utekelezaji wa snapshots zinazopatikana kwa kuandika huzingatiwa. Ikilinganishwa na Btrfs, vijipicha katika Bcachefs sasa vinaweza kuongezwa vyema na visivyo na matatizo yaliyo katika Btrfs. Kwa mazoezi, kazi ya snapshots ilijaribiwa wakati wa kuandaa nakala za MySQL. Bcachefs pia imefanya kazi nyingi ili kuboresha scalability - mfumo wa faili umefanya vizuri katika majaribio katika hifadhi ya TB 100, na Bcachefs inatarajiwa kutekelezwa katika hifadhi ya 1 PB katika siku za usoni. Hali mpya ya nocow imeongezwa ili kuzima utaratibu wa "copy-on-write" (nocow). Wakati wa majira ya joto, wanapanga kuleta utekelezaji wa kanuni za kurekebisha makosa na RAIDZ kwa hali imara, na pia kutatua matatizo na matumizi ya juu ya kumbukumbu wakati wa kurejesha na kuangalia mifumo ya faili na matumizi ya fsck.

Ya mipango ya siku zijazo, hamu ya kutumia lugha ya kutu katika ukuzaji wa Bcachef imetajwa. Kulingana na mwandishi wa Bcachefs, anapenda kuweka msimbo, sio kurekebisha msimbo, na sasa ni wazimu kuandika nambari C wakati kuna chaguo bora. Rust tayari inahusika katika Bcachefs katika utekelezaji wa baadhi ya huduma za nafasi ya mtumiaji. Zaidi ya hayo, wazo linasukwa ili kuandika upya Bcachefs katika Rust hatua kwa hatua, kwa kuwa kutumia lugha hii kwa kiasi kikubwa huokoa wakati wa kurekebisha.

Kuhusu kuhamisha Bcachefs kwenye mkondo mkuu wa kinu cha Linux, mchakato wa kupitishwa unaweza kucheleweshwa kwa sababu ya saizi kubwa ya mabadiliko (viraka 2500 na kama mistari elfu 90 ya msimbo), ambayo ni ngumu kukagua. Ili kuharakisha ukaguzi, baadhi ya wasanidi programu wamependekeza kugawanya mfululizo wa viraka katika sehemu ndogo na zilizotenganishwa kimantiki zaidi. Wakati wa majadiliano, washiriki wengine pia walizingatia maendeleo ya mradi na msanidi mmoja na hatari kwamba kanuni inaweza kuachwa bila kudumishwa ikiwa kitu kitatokea kwa msanidi wake (wafanyikazi wawili wa Red Hat wanavutiwa na mradi huo, lakini kazi yao bado iko. marekebisho machache ya hitilafu).

Bcachefs hutengenezwa kwa kutumia teknolojia ambazo tayari zimejaribiwa katika uundaji wa kifaa cha kuzuia Bcache, iliyoundwa ili kuhifadhi ufikiaji wa anatoa ngumu kwenye SSD za haraka (zilizojumuishwa kwenye kernel tangu kutolewa 3.10). Bcachefs hutumia utaratibu wa Copy-on-Write (COW), ambayo mabadiliko hayaongozi data ya kufuta - hali mpya imeandikwa kwa eneo jipya, baada ya hapo kiashiria cha hali ya sasa kinabadilika.

Kipengele cha Bcachefs ni usaidizi wa uunganisho wa safu nyingi za anatoa, ambayo uhifadhi unajumuisha tabaka kadhaa - anatoa za kasi zaidi (SSD) zimeunganishwa kwenye safu ya chini, ambayo hutumiwa kuhifadhi data inayotumiwa mara kwa mara, na fomu za safu ya juu. diski zenye uwezo zaidi na za bei nafuu ambazo huhifadhi data isiyohitajika sana . Caching ya maandishi inaweza kutumika kati ya tabaka. Hifadhi zinaweza kuongezwa kwa nguvu na kutengwa kutoka kwa kizigeu bila kukatiza utumiaji wa mfumo wa faili (data huhama kiotomatiki).

Chanzo: opennet.ru

Kuongeza maoni