Hyrwyddo Bcachefs i'r Cnewyllyn Linux

Crynhodd Kent Overstreet, awdur system caching dyfais bloc BCache SSD, sy'n rhan o'r cnewyllyn Linux, ganlyniadau'r gwaith ar hyrwyddo system ffeiliau Bcachefs yn ei araith yng nghynhadledd LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit) i brif gyfansoddiad y cnewyllyn Linux a siaradodd am gynlluniau ar gyfer datblygu'r FS hwn ymhellach. Ym mis Mai, cynigiwyd set wedi'i diweddaru o glytiau gyda gweithrediad y Bcachefs FS i'w hadolygu a'u cynnwys ym mhrif gyfansoddiad y cnewyllyn Linux. Mae FS Bcachefs wedi bod yn datblygu ers tua 10 mlynedd. Cyhoeddwyd y parodrwydd ar gyfer adolygu gweithrediad Bcachefs cyn eu cynnwys yn y craidd ar ddiwedd 2020, ac mae fersiwn gyfredol y clytiau yn ystyried y sylwadau a'r diffygion a nodwyd yn ystod yr adolygiad blaenorol.

Nod datblygu Bcachefs yw cyrraedd lefel XFS mewn perfformiad, dibynadwyedd a scalability, tra'n darparu nodweddion ychwanegol sy'n gynhenid ​​​​yn Btrfs a ZFS, megis cynnwys dyfeisiau lluosog mewn rhaniad, cynlluniau storio aml-haen, atgynhyrchu (RAID 1/10), caching, cywasgu data tryloyw (modiau LZ4, gzip a ZSTD), tafelli cyflwr (cipluniau), gwirio cywirdeb checksum, y gallu i storio codau cywiro gwallau Reed-Solomon (RAID 5/6), storio gwybodaeth wedi'i hamgryptio (ChaCha20 a Poly1305 yn cael eu defnyddio ). O ran perfformiad, mae Bcachefs ar y blaen i Btrfs a systemau ffeiliau eraill yn seiliedig ar y mecanwaith CopΓ―o-ar-Write, ac mae'n dangos perfformiad yn agos at Ext4 a XFS.

O'r cyflawniadau diweddaraf yn natblygiad Bcachefs, nodir sefydlogi gweithrediad y cipluniau sydd ar gael i'w hysgrifennu. O gymharu Γ’ Btrfs, mae cipluniau mewn Bcachefs bellach yn llawer gwell graddadwy ac yn rhydd o'r problemau sy'n gynhenid ​​​​yn Btrfs. Yn ymarferol, profwyd gwaith cipluniau wrth drefnu copΓ―au wrth gefn MySQL. Mae Bcachefs hefyd wedi gwneud llawer o waith i wella scalability - mae'r system ffeiliau wedi perfformio'n dda wrth brofi mewn storfa 100 TB, a disgwylir i Bcachefs gael ei weithredu mewn storfa 1 PB yn y dyfodol agos. Mae modd nocow newydd wedi'i ychwanegu i analluogi'r mecanwaith "copi-ar-ysgrifennu" (nocow). Yn ystod yr haf, maent yn bwriadu dod Γ’ gweithrediad codau cywiro gwallau a RAIDZ i gyflwr sefydlog, yn ogystal Γ’ datrys problemau gyda defnydd cof uchel wrth adfer a gwirio systemau ffeiliau gyda'r cyfleustodau fsck.

O'r cynlluniau ar gyfer y dyfodol, sonnir am yr awydd i ddefnyddio'r iaith Rust yn natblygiad Bcachefs. Yn Γ΄l awdur Bcachefs, mae'n hoffi codio, nid i debug cod, ac yn awr mae'n wallgof ysgrifennu cod yn C pan fo opsiwn gwell. Mae Rust eisoes yn ymwneud Γ’ Bcachefs wrth weithredu rhai o'r cyfleustodau gofod defnyddiwr. Ar ben hynny, mae'r syniad yn cael ei ddeor i ailysgrifennu Bcachefs yn llwyr yn Rust yn raddol, gan fod defnyddio'r iaith hon yn arbed amser dadfygio yn sylweddol.

O ran symud Bcachefs i brif ffrwd y cnewyllyn Linux, efallai y bydd y broses fabwysiadu yn cael ei gohirio oherwydd maint mawr y newidiadau (2500 o glytiau a thua 90 mil o linellau cod), sy'n anodd ei adolygu. Er mwyn cyflymu'r adolygiad, mae rhai datblygwyr wedi awgrymu rhannu'r gyfres glytiau yn rhannau llai sydd wedi'u gwahanu'n fwy rhesymegol. Yn ystod y drafodaeth, tynnodd rhai cyfranogwyr sylw hefyd at ddatblygiad y prosiect gan un datblygwr a'r perygl y gallai'r cod gael ei adael heb ei gynnal pe bai rhywbeth yn digwydd i'w ddatblygwr (mae gan ddau o weithwyr Red Hat ddiddordeb yn y prosiect, ond mae eu gwaith yn dal i fod). atgyweiriadau bygiau cyfyngedig).

Datblygir Bcachefs gan ddefnyddio technolegau a brofwyd eisoes wrth ddatblygu dyfais bloc Bcache, a gynlluniwyd i storio mynediad i yriannau caled araf ar yriannau SSD cyflym (wedi'u cynnwys yn y cnewyllyn ers rhyddhau 3.10). Mae Bcachefs yn defnyddio'r mecanwaith CopΓ―o-ar-Write (COW), lle nad yw newidiadau yn arwain at drosysgrifo data - mae'r cyflwr newydd yn cael ei ysgrifennu i leoliad newydd, ac ar Γ΄l hynny mae'r dangosydd cyflwr presennol yn newid.

Un o nodweddion Bcachefs yw cefnogaeth ar gyfer cysylltiad gyriannau aml-haen, lle mae storio yn cynnwys sawl haen - mae'r gyriannau cyflymaf (SSDs) wedi'u cysylltu Γ’'r haen isaf, a ddefnyddir i storio data a ddefnyddir yn aml, ac mae'r haen uchaf yn ffurfio disgiau mwy capacious a rhatach sy'n storio data llai o alw. Gellir defnyddio caching writeback rhwng haenau. Gellir ychwanegu gyriannau yn ddeinamig at raniad a'u gwahanu oddi wrth raniad heb dorri ar draws y defnydd o'r system ffeiliau (mae data'n mudo'n awtomatig).

Ffynhonnell: opennet.ru

Ychwanegu sylw