Промовирање на Bcachefs во кернелот на Linux

Кент Оверстрит, авторот на системот за кеширање на блок уреди BCache SSD, кој е дел од кернелот на Linux, ги сумираше резултатите од работата за промовирање на датотечен систем Bcachefs во својот говор на конференцијата LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit) во главниот состав на Linux кернелот и зборуваше за плановите за понатамошен развој на овој FS. Во мај, ажуриран сет на закрпи со имплементација на Bcachefs FS беше предложен за преглед и вклучување во главниот состав на кернелот Linux. FS Bcachefs се развива околу 10 години. Подготвеноста за преглед на имплементацијата на Bcachefs пред вклучувањето во јадрото беше објавена на крајот на 2020 година, а тековната верзија на закрпи ги зема предвид коментарите и недостатоците идентификувани во текот на претходниот преглед.

Развојната цел на Bcachefs е да се достигне нивото на XFS во перформанси, доверливост и приспособливост, истовремено обезбедувајќи дополнителни функции својствени за Btrfs и ZFS, како што се вклучување на повеќе уреди во партиција, распореди за повеќеслојни складишта, репликација (RAID 1/10), кеширање, транспарентна компресија на податоци (режими LZ4, gzip и ZSTD), делови на состојби (снимки), проверка на интегритетот со контролни суми, можност за складирање на кодови за корекција на грешка на Рид-Соломон (RAID 5/6), шифрирано складирање на информации (ChaCha20 и Poly1305 се користат). Во однос на перформансите, Bcachefs е пред Btrfs и другите датотечни системи базирани на механизмот Copy-on-Write и демонстрира перформанси блиски до Ext4 и XFS.

Од најновите достигнувања во развојот на Bcachefs, забележано е стабилизирање на имплементацијата на снимките достапни за пишување. Во споредба со Btrfs, снимките во Bcachefs сега се многу подобро скалабилни и ослободени од проблемите својствени за Btrfs. Во пракса, работата на снимките беше тестирана при организирање на бекап на MySQL. Bcachefs, исто така, направи многу работа за подобрување на приспособливоста - датотечниот систем се покажа добро при тестирањето во складирање од 100 TB, а Bcachefs се очекува да се имплементира во складиштето од 1 PB во блиска иднина. Додаден е нов режим nocow за да се оневозможи механизмот „copy-on-write“ (nocow). Во текот на летото, тие планираат да ја доведат имплементацијата на кодовите за корекција на грешки и RAIDZ во стабилна состојба, како и да ги решат проблемите со голема потрошувачка на меморија при обновување и проверка на датотечните системи со помошта fsck.

Од плановите за иднината се споменува желбата да се користи јазикот Rust во развојот на Bcachefs. Според авторот на Bcachefs, тој сака да кодира, а не да дебагира код, а сега е лудо да пишуваш код во C кога има подобра опција. Rust е веќе вклучен во Bcachefs во имплементацијата на некои од комуналните услуги за кориснички простор. Покрај тоа, се создава идејата за постепено целосно препишување на Bcachefs во Rust, бидејќи користењето на овој јазик значително заштедува време за дебагирање.

Што се однесува до преместувањето на Bcachefs во мејнстримот на кернелот Linux, процесот на усвојување може да биде одложен поради големата големина на промените (2500 закрпи и околу 90 илјади линии код), што е тешко да се прегледа. За да се забрза прегледот, некои програмери предложија да се раздели серијата закрпи на помали и логично поделени делови. За време на дискусијата, некои учесници, исто така, привлекоа внимание на развојот на проектот од страна на еден развивач и на опасноста кодот да остане неодржлив доколку нешто се случи со неговиот развивач (двајца вработени во Red Hat се заинтересирани за проектот, но нивната работа сè уште е ограничени поправки на грешки).

Bcachefs е развиен со користење на технологии кои се веќе тестирани во развојот на блок-уредот Bcache, дизајниран за кеширање на пристап до бавни хард дискови на брзи SSD-дискови (вклучени во кернелот од објавувањето 3.10). Bcachefs користи механизам Copy-on-Write (COW), во кој промените не доведуваат до препишување на податоците - новата состојба се запишува на нова локација, по што се менува индикаторот за моментална состојба.

Карактеристика на Bcachefs е поддршката за повеќеслојно поврзување на дискови, во кои складирањето се состои од неколку слоеви - најбрзите дискови (SSD) се поврзани со долниот слој, кои се користат за кеширање често користени податоци, а горниот слој се формира пообемни и поевтини дискови кои складираат помалку барани податоци. Кеширањето за запишување може да се користи помеѓу слоевите. Дисковите може динамички да се додаваат и одвојуваат од партицијата без да се прекине употребата на датотечниот систем (податоците мигрираат автоматски).

Извор: opennet.ru

Додадете коментар