Bcachef файлдарын Linux ядросына жылжыту

Linux ядросының бөлігі болып табылатын BCache SSD блоктық құрылғыларды кэштеу жүйесінің авторы Кент Оверстрит LSFMM 2023 конференциясында сөйлеген сөзінде Bcachefs файлдық жүйесін ілгерілету жұмыстарының нәтижелерін қорытындылады (Linux сақтау, файлдық жүйе, жадты басқару & BPF Summit) Linux ядросының негізгі құрамына кірді және осы ТЖ-ны одан әрі дамыту жоспарлары туралы айтты. Мамыр айында Linux ядросының негізгі құрамына шолу және қосу үшін Bcachefs FS іске асырылған патчтардың жаңартылған жиынтығы ұсынылды. 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 енгізуді тұрақты күйге келтіруді, сонымен қатар fsck утилитасы арқылы файлдық жүйелерді қалпына келтіру және тексеру кезінде жадты көп тұтыну мәселелерін шешуді жоспарлап отыр.

Болашаққа арналған жоспарлардың ішінде Bcachefs әзірлеуде Rust тілін қолдануға деген ұмтылыс айтылған. Bcachefs авторының айтуынша, ол кодты жөндеуді емес, кодтауды ұнатады, ал қазір жақсырақ нұсқа болған кезде Си тілінде код жазу ақылсыздық. Rust қазірдің өзінде Bcachefs-те кейбір пайдаланушы-ғарыштық утилиталарды жүзеге асыруға қатысады. Сонымен қатар, Rust ішіндегі Bcachefs-ті біртіндеп толығымен қайта жазу идеясы әзірленуде, өйткені бұл тілді пайдалану отладтау уақытын айтарлықтай үнемдейді.

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

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

Bcachefs ерекшелігі - сақтау бірнеше қабаттардан тұратын дискілердің көп деңгейлі қосылуын қолдау - ең жылдам дискілер (SSD) жиі пайдаланылатын деректерді кэштеу үшін пайдаланылатын төменгі қабатқа қосылады, ал жоғарғы қабат пішіндері аз сұранысқа ие деректерді сақтайтын неғұрлым сыйымды және арзан дискілер. Жазбаша кэштеу қабаттар арасында қолданылуы мүмкін. Дискілерді файлдық жүйені пайдалануды үзбестен динамикалық түрде бөлімге қосуға және одан ажыратуға болады (деректер автоматты түрде тасымалданады).

Ақпарат көзі: opennet.ru

пікір қалдыру