Bcachefs iekļaušana Linux kodolā

Kents Overstīts (Kent Overstreet), Linux kodolaika SSD disku blokierēšanas sistēmas BCache autors, savā uzstāšanās laikā konferencē LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit) apkopoja rezultātus, kas gūti, virzot failu sistēmu Bcachefs uz Linux kodola pamatu un pastāstīja par nākotnes attīstības plāniem šai failu sistēmai. Maijā tika piedāvāts atjaunināts patčus komplekts, lai to pārskatītu un iekļautu Linux kodolā. Failu sistēma Bcachefs attīstās jau apmēram 10 gadus. Par Bcachefs ieviešanas pārskatīšanas gatavību pirms iekļaušanas kodolā tika paziņots jau 2020. gada beigās, un šobrīd piedāvātajos patčos ir ņemti vērā iepriekšējo pārskatīšanas laikā atklātie komentāri un trūkumi.

Bcachefs izstrādes mērķis ir sasniegt XFS līmeni veiktspējā, uzticamībā un mērogojumā, vienlaikus piedāvājot papildu iespējas, kas raksturīgas Btrfs un ZFS, piemēram, vairāku ierīču iekļaušana daļā, daudzkārtējas disku konfigurācijas, replikācija (RAID 1/10), kešatmiņa, caurspīdīga datu saspiešana (LZ4, gzip un ZSTD režīmi), stāvokļa griezumi (snapshot), integritātes verificēšana ar kontrolsummām, Reed-Solomon kļūdu korekcijas kodu (RAID 5/6) glabāšana un informācijas glabāšana šifrētā formā (izmantojot ChaCha20 un Poly1305). Izpildes ziņā Bcachefs pārspēj Btrfs un citas Copy-on-Write mehānismā balstītās failu sistēmas, un demonstrē darbības ātrumu, kas ir tuvs Ext4 un XFS.

Nozīmīgākie Bcachefs attīstības sasniegumi ir stabilizētā uzrakstiem pieejamo snapshots īstenošana. Salīdzinājumā ar Btrfs snapshots Bcachefs tagad ir ievērojami labākā mērogojamība un ir brīvi no Btrfs raksturīgajām problēmām. Praksē snapshots ir pārbaudīti MySQL dublēšanas organizēšanai. Bcachefs arī ir veikta liela darba mērogojamības uzlabošanai — failu sistēma ir labi demonstrējusi sniegumu testēšanā, kad dati ir 100 TB lieli, un tuvākajā laikā tiek plānota Bcachefs ieviešana 1 PB lielā krātuvē. Tika ieviests jauns nocow režīms, lai atspējotu “copy-on-write” mehānismu (nocow). Vasarā plāno stabilizēt kļūdu labojumu kodu un RAIDZ īstenošanu, kā arī risināt augstās atmiņas patēriņa problēmas atjaunošanas un fsck utilīta pārbaudes laikā.

Nākotnes plānos ir minēta vēlme Bcachefs izstrādē izmantot Rust valodu. Saskaņā ar Bcachefs autora teikto, viņš mīl programmēt, nevis labot kodu, un tagad ir ārkārtīgi neprātīgi rakstīt kodu C valodā, kad ir pieejams labāks variants. Rust jau ir izmantots Bcachefs dažādu utilītu īstenošanā, kuras darbojas lietotāju telpā. Turklāt tiek apsvērta ideja pakāpeniski pilnībā pārrakstīt Bcachefs Rust valodā, jo šīs valodas izmantošana ievērojami ietaupa laiku atdzīvināšanā.

Runājot par Bcachefs virzīšanu uz Linux kodola galveno sastāvu, pieņemšanas process var pagarināties sakarā ar ievērojamo izmaiņu apjomu (2500 labojumu un apmēram 90 tūkstošus kodu rindu), kuru ir grūti pārskatīt. Lai paātrinātu pārskatīšanu, daži izstrādātāji ierosināja sērijas labojumus sadalīt mazākās un loģiski nošķirtās daļās. Diskusijas procesā daži dalībnieki arī norādīja uz projekta attīstību ar vienu izstrādātāju un risku, ka kods var palikt bez apkopšanas, ja ar to izstrādātāju kaut kas notiek (projektu interesē divi Red Hat darbinieki, bet viņu darbs pagaidām ir ierobežots ar kļūdu labošanas darbu).

Bcachefs attīstās, izmantojot tehnoloģijas, kas jau pārbaudītas, izstrādājot blokierīci Bcache, kas paredzēta lēnu cietā diska piekļuves kešatmiņai ātrajos SSD diskos (iekļauta kodolā, sākot ar versiju 3.10). Bcachefs izmanto Copy-on-Write (COW) mehānismu, kurā izmaiņas nenoved pie datu pārrakstīšanas — jauna stāvokļa rakstīšana notiek jaunā vietā, pēc kuras tiek mainīts aktuālā stāvokļa rādītājs.

Bcachefs iezīme ir atbalsts daudzslāņu disku savienošanai, kurā krātuve tiek veidota no vairākiem slāņiem — apakšējais slānis ir savienots ar visātrākajiem diskiem (SSD), kuri tiek izmantoti, lai kešotu bieži izmantoto datus, savukārt augšējo slāni veido ietilpīgāki un lētāki diski, kas nodrošina mazāk pieprasīto datu glabāšanu. Starp slāņiem var tikt izmantota atpalikušās rakstīšanas (writeback) kešatmiņa. Diskus var dinamiski pievienot un atvienot no nodalījuma, neapturot failu sistēmas lietošanu (dati automātiski migrē).

Avots: opennet.lv

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster