Bcachef-ni Linux yadrosiga targ'ib qilish

Linux yadrosining bir qismi bo'lgan BCache SSD blokli qurilmalarni keshlash tizimining muallifi Kent Overstreet LSFMM 2023 konferentsiyasidagi nutqida Bcachefs fayl tizimini targ'ib qilish bo'yicha ish natijalarini sarhisob qildi (Linux Storage, Filesystem, Memory Management). & BPF Summit). Linux yadrosining asosiy tarkibiga kirdi va ushbu FSni yanada rivojlantirish rejalari haqida gapirdi. May oyida ko'rib chiqish va Linux yadrosining asosiy tarkibiga kiritish uchun Bcachefs FS-ni amalga oshirish bilan yangilangan yamoqlar to'plami taklif qilindi. FS Bcachefs taxminan 10 yildan beri ishlab kelmoqda. Bcachefs-ni yadroga kiritishdan oldin amalga oshirilishini ko'rib chiqishga tayyorligi 2020 yil oxirida e'lon qilingan va yamoqlarning joriy versiyasi oldingi ko'rib chiqishda aniqlangan sharhlar va kamchiliklarni hisobga oladi.

Bcachefs-ni ishlab chiqish maqsadi - Btrfs va ZFS-ga xos bo'lgan qo'shimcha funktsiyalarni ta'minlash bilan birga ishlash, ishonchlilik va miqyosda XFS darajasiga erishish, masalan, bo'limga bir nechta qurilmalarni kiritish, ko'p qatlamli saqlash tartibi, replikatsiya (RAID 1/10), keshlash, shaffof ma'lumotlarni siqish (LZ4, gzip va ZSTD rejimlari), holat bo'laklari (oniy tasvirlar), nazorat summalari bo'yicha yaxlitlikni tekshirish, Reed-Solomon xatolarni tuzatish kodlarini saqlash qobiliyati (RAID 5/6), ma'lumotlarni shifrlangan saqlash (ChaCha20 va Poly1305) ishlatiladi). Ishlash darajasi bo'yicha Bcachefs Btrfs va boshqa fayl tizimlaridan Kopiya-yozish mexanizmiga asoslangan va Ext4 va XFS-ga yaqin ish faoliyatini namoyish etadi.

Bcachefs-ni ishlab chiqishdagi so'nggi yutuqlardan yozish uchun mavjud bo'lgan suratlarni amalga oshirishning barqarorlashuvi qayd etilgan. Btrfs bilan solishtirganda, Bcachefs-dagi oniy tasvirlar endi yanada yaxshi kengaytirilgan va Btrfs-ga xos muammolardan xoli. Amalda MySQL-ning zahira nusxalarini tashkil qilishda oniy tasvirlarning ishi sinovdan o'tkazildi. Bcachefs miqyoslilikni yaxshilash boβ€˜yicha ham koβ€˜p ishlarni amalga oshirdi – fayl tizimi 100 TB xotirada sinovdan oβ€˜tkazdi va yaqin kelajakda Bcachefs 1 PB xotirada joriy etilishi kutilmoqda. "Yozishda nusxa ko'chirish" (nocow) mexanizmini o'chirish uchun yangi nocow rejimi qo'shildi. Yozda ular xatolarni tuzatish kodlari va RAIDZ-ni barqaror holatga keltirishni, shuningdek, fsck yordam dasturi yordamida fayl tizimlarini tiklash va tekshirishda yuqori xotira sarfi bilan bog'liq muammolarni hal qilishni rejalashtirmoqdalar.

Kelajakdagi rejalardan Bcachefs-ni ishlab chiqishda Rust tilidan foydalanish istagi qayd etilgan. Bcachefs muallifining soβ€˜zlariga koβ€˜ra, u kodni disk raskadrovka qilishni emas, balki kodlashni yaxshi koβ€˜radi, endi esa yaxshiroq variant mavjud boβ€˜lganda C tilida kod yozish aqldan ozgan. Rust allaqachon Bcachefs-da foydalanuvchi-kosmik yordam dasturlarini amalga oshirishda ishtirok etgan. Bundan tashqari, Rust-da Bcachefs-ni asta-sekin butunlay qayta yozish g'oyasi ishlab chiqilmoqda, chunki bu tildan foydalanish nosozliklarni tuzatish vaqtini sezilarli darajada tejaydi.

Bcachef-ni Linux yadrosining asosiy oqimiga ko'chirishga kelsak, qabul qilish jarayoni o'zgarishlarning katta hajmi (2500 ta yamoq va 90 mingga yaqin kod satri) tufayli kechiktirilishi mumkin, uni ko'rib chiqish qiyin. Ko'rib chiqishni tezlashtirish uchun ba'zi ishlab chiquvchilar yamoq seriyasini kichikroq va mantiqiy ravishda ajratilgan qismlarga ajratishni taklif qilishdi. Muhokama davomida ba'zi ishtirokchilar loyihani bitta ishlab chiquvchi tomonidan ishlab chiqilishiga va agar uni ishlab chiquvchiga biror narsa yuz bergan bo'lsa, kod saqlanib qolishi xavfiga e'tibor qaratdilar (Ikkita Red Hat xodimi loyihaga qiziqish bildirmoqda, ammo ularning ishi hali ham davom etmoqda. cheklangan xatolarni tuzatish).

Bcachefs tez SSD disklaridagi sekin qattiq disklarga kirishni keshlash uchun mo'ljallangan Bcache blok qurilmasini ishlab chiqishda allaqachon sinovdan o'tgan texnologiyalar yordamida ishlab chiqilgan (3.10 versiyasidan boshlab yadroga kiritilgan). Bcachefs Copy-on-Write (COW) mexanizmidan foydalanadi, bunda o'zgarishlar ma'lumotlarning qayta yozilishiga olib kelmaydi - yangi holat yangi joyga yoziladi, shundan so'ng joriy holat ko'rsatkichi o'zgaradi.

Bcachefs-ning o'ziga xos xususiyati drayvlarning ko'p qatlamli ulanishini qo'llab-quvvatlashdir, unda saqlash bir necha qatlamlardan iborat - eng tez drayvlar (SSD) tez-tez ishlatiladigan ma'lumotlarni keshlash uchun ishlatiladigan pastki qatlamga ulanadi va yuqori qatlam shakllanadi. kamroq talab qilingan ma'lumotlarni saqlaydigan yanada sig'imli va arzonroq disklar. Yozuvni keshlash qatlamlar orasida ishlatilishi mumkin. Drayvlar fayl tizimidan foydalanishni to'xtatmasdan dinamik ravishda qo'shilishi va bo'limdan ajratilishi mumkin (ma'lumotlar avtomatik ravishda ko'chiriladi).

Manba: opennet.ru

a Izoh qo'shish