Bcachef reklamēšana Linux kodolā

Kents Overstrīts, BCache SSD bloku ierīču kešatmiņas sistēmas, kas ir daļa no Linux kodola, autors, savā runā LSFMM 2023 konferencē (Linux Storage, Filesystem, Memory Management) apkopoja Bcachefs failu sistēmas popularizēšanas darba rezultātus. & BPF Summit) galvenajā Linux kodola sastāvā un runāja par šīs FS turpmākās attīstības plāniem. Maijā pārskatīšanai un iekļaušanai Linux kodola galvenajā sastāvā tika ierosināts atjaunināts ielāpu komplekts ar Bcachefs FS ieviešanu. FS Bcachefs ir izstrādājis apmēram 10 gadus. Gatavība pārskatīt Bcachefs ieviešanu pirms iekļaušanas kodolā tika paziņota 2020. gada beigās, un pašreizējā ielāpu versijā ir ņemtas vērā iepriekšējās pārskatīšanas laikā konstatētās piezīmes un nepilnības.

Bcachefs izstrādes mērķis ir sasniegt XFS līmeni veiktspējas, uzticamības un mērogojamības ziņā, vienlaikus nodrošinot papildu funkcijas, kas raksturīgas Btrfs un ZFS, piemēram, vairāku ierīču iekļaušanu nodalījumā, daudzslāņu krātuves izkārtojumus, replikāciju (RAID 1/10), kešatmiņa, caurspīdīga datu saspiešana (LZ4, gzip un ZSTD režīmi), stāvokļa šķēlumi (momentuzņēmumi), integritātes pārbaude ar kontrolsummu palīdzību, iespēja saglabāt Rīda-Zālamana kļūdu labošanas kodus (RAID 5/6), šifrēta informācijas glabāšana (ChaCha20 un Poly1305). tiek izmantoti). Veiktspējas ziņā Bcachefs apsteidz Btrfs un citas failu sistēmas, kuru pamatā ir Copy-on-Write mehānisms, un demonstrē veiktspēju tuvu Ext4 un XFS.

No jaunākajiem sasniegumiem Bcachefs izstrādē tiek atzīmēta rakstīšanai pieejamo momentuzņēmumu ieviešanas stabilizācija. Salīdzinot ar Btrfs, momentuzņēmumi programmā Bcachefs tagad ir daudz labāk mērogojami, un tajos nav problēmu, kas raksturīgas Btrfs. Praksē momentuzņēmumu darbs tika pārbaudīts, organizējot MySQL dublējumus. Bcachefs ir arī paveicis lielu darbu, lai uzlabotu mērogojamību - failu sistēma ir labi veikusi testēšanu 100 TB krātuvē, un ir paredzēts, ka Bcachefs tuvākajā nākotnē tiks ieviests 1 PB krātuvē. Ir pievienots jauns nocow režīms, lai atspējotu "kopēšanas uz rakstīšanas" (nocow) mehānismu. Vasaras laikā viņi plāno stabilā stāvoklī novest kļūdu labošanas kodu un RAIDZ ieviešanu, kā arī atrisināt problēmas ar lielu atmiņas patēriņu, atjaunojot un pārbaudot failu sistēmas ar fsck utilītu.

No nākotnes plāniem tiek minēta vēlme izmantot Rust valodu Bcachefs izstrādē. Pēc Bcachefs autora domām, viņam patīk kodēt, nevis atkļūdot kodu, un tagad ir traki rakstīt kodu C valodā, kad ir labāks variants. Rust jau ir iesaistīts Bcachefs dažu lietotāja telpas utilītu ieviešanā. Turklāt tiek radīta ideja pakāpeniski pilnībā pārrakstīt Bcachefs Rust, jo šīs valodas lietošana ievērojami ietaupa atkļūdošanas laiku.

Kas attiecas uz Bcachef pārvietošanu uz Linux kodola galveno virzienu, pieņemšanas process var aizkavēties lielo izmaiņu (2500 ielāpi un aptuveni 90 tūkstoši koda rindu) dēļ, ko ir grūti pārskatīt. Lai paātrinātu pārskatīšanu, daži izstrādātāji ir ierosinājuši sadalīt ielāpu sēriju mazākās un loģiski atdalītās daļās. Diskusijas laikā daži dalībnieki vērsa uzmanību arī uz viena izstrādātāja projekta izstrādi un briesmām, ka kods var palikt neapkopts, ja kaut kas notiktu ar tā izstrādātāju (par projektu interesējas divi Red Hat darbinieki, taču viņu darbs vēl turpinās ierobežoti kļūdu labojumi).

Bcachefs ir izstrādāts, izmantojot tehnoloģijas, kas jau ir pārbaudītas Bcache bloka ierīces izstrādē, kas paredzētas, lai kešatmiņā saglabātu piekļuvi lēniem cietajiem diskiem ātrajos SSD (iekļauts kodolā kopš 3.10. izlaiduma). Bcachefs izmanto Copy-on-Write (COW) mehānismu, kurā izmaiņas neizraisa datu pārrakstīšanu - jaunais stāvoklis tiek ierakstīts jaunā vietā, pēc kura mainās pašreizējā stāvokļa indikators.

Bcachefs iezīme ir atbalsts daudzslāņu disku savienošanai, kurā krātuve sastāv no vairākiem slāņiem - ātrākie diskdziņi (SSD) ir savienoti ar apakšējo slāni, kas tiek izmantots bieži izmantoto datu kešatmiņai, un augšējais slānis veido formas. ietilpīgāki un lētāki diski, kas glabā mazāk pieprasītus datus. Atrakstīšanas kešatmiņu var izmantot starp slāņiem. Diskus var dinamiski pievienot nodalījumam un atdalīt no tā, nepārtraucot failu sistēmas lietošanu (dati tiek migrēti automātiski).

Avots: opennet.ru

Pievieno komentāru