Насърчаване на Bcachefs в състава на ядрото на Linux

Кент Оверстрит (Kent Overstreet), автор входящей в состав ядра Linux системы кэширования блочных устройств на SSD-накопителях BCache, в своём выступлении на конференции LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit) обобщил результаты работы по продвижению файловой системы Bcachefs в основной состав ядра Linux и рассказал о планах по дальнейшему развитию данной ФС. В мае для рецензирования и включения в основной состав ядра Linux был предложен обновлённый набор патчей с реализацией ФС Bcachefs. ФС 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 ТБ, и в ближайшее время ожидается внедрение Bcachefs в хранилище размером 1 ПБ. Добавлен новый режим 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), которые используются для кэширования часто используемых данных, а верхний слой образуют более ёмкие и дешёвые диски, обеспечивающие хранение менее востребованных данных. Между слоями может применяться кэширование в режиме отложенной записи (writeback). Накопители можно динамически добавлять и отсоединять от раздела без остановки использования файловой системы (данные мигрируют автоматически).

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster