Код Bcachefs удалён из ядра Linux. Для дистрибутивов подготовлены DKMS-модули C Bcachefs

Линус Торвальдс удалил файловую систему Bcachefs из кодовой базы, на основе который формируется выпуск ядра Linux 6.18. В ядре 6.17 реализация Bcachefs была переведена в режим внешнего сопровождения, подразумевающего прекращение приёма изменений для Bcachefs в основной состав ядра, но код Bcachefs был оставлен для сглаживания процесса перехода. В настоящее время разработчик Bcachefs приступил к распространению своего проекта в виде отдельного модуля DKMS, а остававшийся в ядре код потерял актуальность.

Для исключения путаницы с разными версиями кода было решено удалить Bcachefs из состава ядра. Например, сторонние разработчики продолжают присылать исправления и сообщения об ошибках в список рассылки разработчиков ядра, а также периодически выявляются проблемы автоматизированными системами проверки (1, 2, 3). Пользователям, заинтересованным в использовании Bcachefs, рекомендуется перейти на установку актуальных DKMS-модулей, а разработчикам отправлять патчи в отдельный список рассылки.

DKMS (Dynamic Kernel Module Support) позволяет не привязываться к каждому обновлению ядра Linux и поддерживать реализацию Bcachefs в актуальном состоянии. При использовании инструментария DKMS модуль ядра поставляется в исходном коде и собирается на системе пользователя, непосредственно после установки пакета. После обновления ядра Linux в системе модуль автоматически пересобирается. Так как модули, собранные через DKMS, можно включить в состав initramfs, у пользователей сохранится возможность использования Bcachefs для корневой ФС.

Тем временем, Кент Оверстрит (Kent Overstreet), разработчик ФС Bcachefs, рассказал о состоянии подготовки DKMS-модулей для различных дистрибутивов Linux. DKMS-сборка Bcachefs поддерживается для ядре 6.16 и 6.17, а также будет обеспечена для предварительных версий ядра 6.18.
Доступны две ветки Bcachefs: “nightly” (ориентирована на тестирование последних изменений в кодовой базе) и “release” (предназначена для установки в рабочих системах). В будущем планируют публиковать ещё одну ветку – “stable”, которая будет на 1-3 месяца отставать по функциональности от ветки “release” для дополнительной стабилизации и включать бэкпортированные исправления ошибок. Также отмечается, что проект близок к снятию метки экспериментальной ФС.

Состояние поддержки дистрибутивов:

  • В дистрибутивах NixOS и Arch обеспечен первый уровень поддержки – Bcachefs уже поставляется в официальных репозиториях и пакеты переведены на DKMS, что не требует от существующих пользователей Bcachefs выполнения дополнительных действий для миграции c использования встроенного в ядро модуля на версию, использующую DKMS.
  • Для Debian и Ubuntu введён в строй внешний репозиторий с deb-пакетами bcachefs-kernel-dkms (DKMS-модуль для ядра) и bcachefs-tools (набор пользовательских утилит). Ведётся работа по продвижению пакетов с Bcachefs в основной состав Debian.
  • В Fedora пакет bcachefs-tools исключён из основного репозитория из-за правил, не допускающих размещение сторонних модулей к ядру. Тем не менее пакет сопровождается и доступен для установки через репозиторий COPR. Ведётся работа по созданию внешнего репозитория rpm.bcachefs.org для дистрибутивов на базе пакетного менеджера RPM.
  • В openSUSE поддержка BCacheFS отключена в пакетах с ядром Linux, а пакет bcachefs-tools остаётся в репозитории, но не обновлён и не поддерживает сборку DKMS-модуля. Взаимодействие с сопровождающими пока буксует на месте и если пакет bcachefs-tools так и останется без обновлений, пакеты для пользователей openSUSE планируется поставлять через внешний репозиторий rpm.bcachefs.org.
  • Для Slackware сторонний энтузиаст сопровождает пакет с Bcachefs

Напомним, что в Bcachefs предпринята попытка создания файловой системы, сочетающей уровень производительности, надёжности и масштабируемости XFS с расширенной функциональностью, имеющейся в Btrfs и ZFS. Bcachefs поддерживает такие возможности, как включение в раздел нескольких устройств, многослойные раскладки накопителей (нижний слой с часто используемыми данными на базе быстрых SSD, а верхний слой с менее востребованными данными из жестких дисков), репликация (RAID 1/10), кэширование, прозрачное сжатие данных (режимы LZ4, gzip и ZSTD), срезы состояния (снапшоты), верификация целостности по контрольным суммам, возможность хранения кодов коррекции ошибок Рида—Соломона (RAID 5/6), хранение информации в зашифрованном виде (используются ChaCha20 и Poly1305). По производительности Bcachefs опережает Btrfs и другие ФС на базе механизма Copy-on-Write, и демонстрирует скорость работы, близкую к Ext4 и XFS.

Дополнительно можно отметить проведение ресурсом Phoronix сравнения производительности Bcachefs, OpenZFS, Btrfs, Ext4, F2FS и XFS при использовании ядра Linux 6.17. Файловая система Bcachefs не продемонстрировала особой производительности и отставала от Btrfs в большинстве тестов. Чаще всего лидировали F2FS, XFS и EXT4. ФС OpenZFS с одной стороны оказалась лидером в тестах SQLite и заняла второе место в тесте Dbench, но в разы отстала в тестах Flexible IO Tester.








Release. Ссылка here.