Pêşxistina Bcachefs li Kernel Linux

Kent Overstreet, nivîskarê pergala cachkirina cîhaza bloka BCache SSD, ku beşek ji kernel Linux-ê ye, di axaftina xwe de li konferansa LSFMM 2023 (Linux Storage, Pergala Pelan, Rêvebiriya Bîrê) encamên xebata li ser pêşvebirina pergala pelan a Bcachefs kurt kir. & BPF Summit). di nav pêkhateya sereke ya kernel Linux de û li ser planên ji bo pêşdebirina pêşdetir a vê FS axivî. Di Gulanê de, komek nûvekirî ya paçên bi pêkanîna Bcachefs FS-ê ji bo vekolîn û tevlêbûna di pêkhateya sereke ya kernel Linux de hate pêşniyar kirin. FS Bcachefs nêzî 10 sal in pêşve diçe. Amadebûna ji bo vekolîna pêkanîna Bcachefs berî tevlêbûna di bingehê de di dawiya sala 2020-an de hate ragihandin, û guhertoya heyî ya paçeyan şîrove û kêmasiyên ku di dema vekolîna berê de hatine destnîşan kirin li ber çavan digire.

Armanca pêşkeftina Bcachefs ew e ku bigihîje asta XFS di performans, pêbawerî û pîvandinê de, di heman demê de taybetmendiyên din ên di Btrfs û ZFS de peyda dike, wek mînak tevlêkirina gelek cîhazên di dabeşkirinê de, nexşeyên hilanînê yên pir-çît, dubarekirin (RAID 1/10), caching, berhevkirina daneya şefaf (modulên LZ4, gzip û ZSTD), perçeyên dewletê (wêneyên wêneyê), verastkirina yekitiyê ji hêla kontrolê ve, şiyana hilanîna kodên rastkirina xeletiya Reed-Solomon (RAID 5/6), hilanîna agahdariya şîfrekirî (ChaCha20 û Poly1305). têne bikaranîn). Di warê performansê de, Bcachefs li pêş Btrfs û pergalên pelan ên din ên ku li ser bingeha mekanîzmaya Copy-on-Write-yê têne damezrandin, ye, û performansa nêzîkî Ext4 û XFS nîşan dide.

Ji destkeftiyên herî dawî yên di pêşkeftina Bcachefs de, stabîlkirina pêkanîna dîmenên ku ji bo nivîsandinê têne peyda kirin tê destnîşan kirin. Li gorî Btrfs-ê, dîmenên di Bcachefs-ê de naha pir çêtir têne pîvandin û ji pirsgirêkên xwerû yên Btrfs azad in. Di pratîkê de, dema ku hilanînê MySQL organîze dike, xebata wêneyan hate ceribandin. Bcachefs di heman demê de ji bo baştirkirina pîvandinê jî gelek xebat kiriye - pergala pelan di ceribandina di hilanîna 100 TB de baş pêk aniye, û tê çaverê kirin ku Bcachefs di pêşerojek nêzîk de di hilanîna 1 PB de were bicîh kirin. Ji bo neçalakkirina mekanîzmaya "kopî-li-nivîsandinê" (nocow) moda nû ya nocow hate zêdekirin. Di demsala havînê de, ew plan dikin ku bicîhanîna kodên rastkirina xeletiyê û RAIDZ bigihînin rewşek aram, û her weha dema ku pergalên pelan bi karûbarê fsck vesazkirin û kontrolkirina pergalên pelan vegerînin û kontrol bikin, pirsgirêkên bi xerckirina bîranîna zêde çareser bikin.

Ji planên ji bo pêşerojê, daxwaza bikaranîna zimanê Rust di pêşveçûna Bcachefs de tê gotin. Li gorî nivîskarê Bcachefs, ew ji kodkirinê hez dike, ne ku kodê xelet bike, û naha dema ku vebijarkek çêtir hebe nivîsandina kodê di C de dîn e. Rust jixwe di Bcachefs de di pêkanîna hin karûbarên cîhê bikarhêner de beşdar e. Digel vê yekê, fikir tê çêkirin ku hêdî hêdî Bcachefs li Rust bi tevahî ji nû ve binivîsin, ji ber ku karanîna vî zimanî bi girîngî dema debugkirinê xilas dike.

Wekî ku ji bo veguheztina Bcachefs di navgîniya bingehîn a kernel Linux de, dibe ku pêvajoya pejirandinê ji ber mezinahiya mezin a guhertinan (2500 paç û nêzîkê 90 hezar rêzikên kodê) dereng bimîne, ku vekolînek dijwar e. Ji bo bilezkirina lêkolînê, hin pêşdebiran pêşniyar kirine ku rêzikên patchê li beşên piçûktir û bi mentiqî veqetandî veqetînin. Di dema gotûbêjê de, hin beşdaran her weha bal kişandin ser pêşdebirina projeyê ji hêla yek pêşdebiran ve û xetera ku kod bêpar bimîne ger tiştek bi pêşdebirê wê were (du xebatkarên Red Hat bi projeyê re eleqedar in, lê karê wan hîn jî berdewam e. rastkirinên xeletiyên sînorkirî).

Bcachefs bi karanîna teknolojiyên ku berê di pêşkeftina cîhaza bloka Bcache de hatine ceribandin, hatî pêşve xistin, ku ji bo cachekirina gihandina ajokarên hişk ên hêdî li ser ajokarên SSD-ya bilez (ji nûvekirina 3.10-an ve di kernelê de tê de) hatî çêkirin. Bcachefs mekanîzmaya Copy-on-Write (COW) bikar tîne, ku tê de guhertin rê li ber nivîsandina daneyan nagirin - dewleta nû li cîhek nû tê nivîsandin, piştî ku nîşana rewşa heyî diguhere.

Taybetmendiyek Bcachefs piştgirî ji bo girêdana ajokeran a pir-qatî ye, ku tê de hilanînê ji çend qatan pêk tê - ajokarên zûtirîn (SSD) bi qata jêrîn ve têne girêdan, ku ji bo cachekirina daneyên pir caran têne bikar anîn têne bikar anîn, û qata jorîn pêk tê. dîskên jêhatîtir û erzantir ên ku daneya kêm daxwazî ​​hilînin. Cachkirina nivîsandinê dikare di navbera qatan de were bikar anîn. Ajokar dikare bi dînamîk li dabeşek were zêdekirin û jê were veqetandin bêyî ku karanîna pergala pelan qut bike (dane bixweber koç dikin).

Source: opennet.ru

Add a comment