Bcachefтерди Linux ядросуна жылдыруу

Кент Оверстрит, Linux ядросуна кирген SSD дисктериндеги BCache блоктук түзүлүштү кэштөө тутумунун автору, LSFMM 2023 конференциясында (Linux Storage, Filesystem, Memory Management & BPF Summit) сүйлөгөн сөзүндө Bcachefs программасын илгерилетүү боюнча иштердин жыйынтыгын чыгарды. файлдык системаны Linux ядросунун негизги курамына киргизип, бул ФСти андан ары өнүктүрүү пландары жөнүндө айтып берди. Май айында Bcachefs FS ишке ашыруу менен жаңыртылган патчтар топтому карап чыгууга жана негизги Linux ядросуна киргизүүгө сунушталган. FS Bcachefs 10 жылдан бери өнүгүп келе жатат. Bcachefsтин ишке ашырылышын ядрого киргизүүгө чейин карап чыгууга даяр экени 2020-жылдын аягында жарыяланган жана тактардын учурдагы версиясы мурунку кароодо аныкталган сын-пикирлерди жана кемчиликтерди эске алат.

Bcachefsтин максаты - Btrfs жана ZFS кошумча функцияларын камсыз кылуу менен бирге, XFS көрсөткүчтөрүнө, ишенимдүүлүгүнө жана масштабдуулугуна жетишүү, мисалы, көп түзмөктөрдү бөлүү, көп катмарлуу диск макеттери, репликация (RAID 1/10), кэштөө, ачык маалыматтар. кысуу (LZ4, gzip жана ZSTD режимдери), мамлекеттик тилкелер (сүрөттөр), текшерүү суммасын колдонуу менен бүтүндүктү текшерүү, Reed-Solomon катасын оңдоо коддорун сактоо мүмкүнчүлүгү (RAID 5/6), маалыматты шифрленген түрдө сактоо (ChaCha20 жана Poly1305 колдонулат) . Өндүрүмдүүлүк жагынан Bcachefs Btrfs жана башка файл системаларынан алдыда, Copy-on-Write механизмине негизделген жана Ext4 жана XFSге жакын иштөө ылдамдыгын көрсөтөт.

Bcachefs өнүктүрүүдөгү акыркы жетишкендиктерге жазылышы мүмкүн болгон сүрөттөрдү ишке ашырууну турукташтыруу кирет. Btrfs менен салыштырганда, Bcachefs'теги сүрөттөр азыр бир топ жакшыраак масштабда жана Btrfs'ге мүнөздүү көйгөйлөр жок. Практикада MySQL камдык көчүрмөлөрүн уюштурууда көз ирмемдик сүрөттөрдүн иши сыналган. Bcachefs масштабдуулугун жакшыртуу боюнча да көп иштерди аткарды - файл системасы 100 ТБ сактагычта сыналганда жакшы иштеди, ал эми Bcachefs жакынкы келечекте 1 PB сактагычында ишке ашырылышы күтүлүүдө. Көчүрүү-жазуу (nocow) механизмин өчүрүү үчүн жаңы nocow режими кошулду. Жай мезгилинде алар катаны оңдоо коддорун жана RAIDZти туруктуу абалга келтирүүнү, ошондой эле FSди fsck утилитасы менен калыбына келтирүүдө жана текшерүүдө эстутумду көп керектөө көйгөйлөрүн чечүүнү пландаштырууда.

Келечектеги пландар Bcachefs иштеп чыгууда Rust тилин колдонууну камтыйт. Bcachefs авторунун айтымында, ал кодду оңдоону эмес, программалоону жакшы көрөт жана азыр жакшыраак вариант пайда болгондон кийин C кодун жазуу жинди. Rust колдонуучу мейкиндигинде иштеген кээ бир утилиталарды ишке ашырууда Bcachefs менен буга чейин катышкан. Андан тышкары, Rust'та Bcachefs'ти акырындык менен толугу менен кайра жазуу идеясы иштелип чыгууда, анткени бул тилди колдонуу мүчүлүштүктөрдү оңдоо убактысын кыйла үнөмдөйт.

Bcachefsти Linux ядросунун негизги бөлүгүнө жылдырууга келсек, кабыл алуу процесси өзгөртүүлөрдүн (2500 патч жана 90 миңге жакын код саптары) чоң өлчөмүнөн улам кечигиши мүмкүн, аны карап чыгуу кыйын. Карап чыгууну тездетүү үчүн кээ бир иштеп чыгуучулар бир катар тактарды майда жана логикалык жактан бөлүнгөн бөлүктөргө бөлүүнү сунушташты. Талкуунун жүрүшүндө кээ бир катышуучулар долбоорду бир иштеп чыгуучу тарабынан иштеп чыгуусуна жана аны иштеп чыгуучуга бир нерсе болуп калса, код сакталбай калуу коркунучуна көңүл бурушту (Ред Хаттын эки кызматкери долбоорго кызыкдар, бирок алардын иши дагы эле чектелүү. катаны оңдоо).

Bcachefs тез SSD дисктериндеги жай катуу дисктерге (3.10-релизинен баштап ядрого киргизилген) кэшке кирүү үчүн иштелип чыккан Bcache блок түзүлүшүн иштеп чыгууда сыналган технологияларды колдонуу менен иштелип чыгууда. Bcachefs Copy-on-Write (COW) механизмин колдонот, мында өзгөртүүлөр маалыматтардын үстүнөн жазылууга алып келбейт - жаңы абал жаңы жерге жазылат, андан кийин учурдагы абалдын көрсөткүчү өзгөртүлөт.

Bcachefsтин өзгөчөлүгү анын сактагыч бир нече катмардан турган көп катмарлуу диск туташууларын колдоо болуп саналат - эң ылдам дисктер (SSDs) төмөнкү катмарга туташтырылган, алар көп колдонулган маалыматтарды кэштөө үчүн колдонулат жана үстүнкү катмар катмар азыраак колдонулган маалыматтарды сактоону камсыз кылган көбүрөөк сыйымдуулуктагы жана арзаныраак дисктерден түзүлөт. Кэштөө кайра жазуу режиминде катмарлардын ортосунда колдонулушу мүмкүн. Дисктерди файл тутумун колдонууну токтотпостон динамикалык түрдө кошууга жана бөлүмдөн ажыратууга болот (маалыматтар автоматтык түрдө көчүрүлөт).

Source: opennet.ru

Комментарий кошуу