LINUX.ORG.RU

Файловая система Bcachefs официально перестала быть экспериментальной

 , , , ,


0

2

Кент Оверстрит (Kent Overstreet) опубликовал выпуск файловой системы Bcachefs 1.38.6 и объявил об официальном снятии с проекта метки экспериментальной разработки. Последнее время число поступающих сообщений о проблемах сократилось, а выявляемые ошибки стали менее серьёзными и замысловатыми.

Выпуск охватывает два пакета: bcachefs-kernel-dkms с модулем ядра, собираемым при помощи системы DKMS (Dynamic Kernel Module Support), и bcachefs-tools с запускаемой в пространстве пользователя утилитой bcachefs, реализующей команды для создания (mkfs), монтирования, восстановления и проверки ФС. Пакеты собраны для Debian, Ubuntu, Arch Linux и ожидаются для Fedora, openSUSE и NixOS. DKMS-модуль поддерживает работу с ядрами Linux, начиная с 6.16.

Несмотря на непримечательный номер версии, обусловленный отсутствием изменений в дисковом формате, выпуск 1.38.6 включает ряд серьёзных оптимизаций производительности. В код для работы со структурами в формате btree, журналирования и обеспечения работы файловой системы внесено около 200 изменений, повышающих производительность. Логика подтверждения транзакций ужата в 4КБ машинного кода, добавлены оптимизации для исключения возникновения конкурирующих блокировок (lock contention) при работе с btree, полностью избавлен от блокировок процесс сброса состояния журнала (journal flush).

На сервере с 48-ядерном CPU AMD в Bcachefs удалось добиться пропускной способности 16.5 Гбайт/с при запуске 48 клиентов dbench (для сравнения в XFS получен результат в 16 Гбайт/с). Подготовлены, но отложены до следующего релиза, патчи, доводящие производительность в тестах dbench до 19 Гбайт/с (данные патчи требуют дополнительного тестирования или изменения дискового формата). При тестировании утилитой fio (github.com) производительность Bcachefs составила 700 тысяч операций в секунду при выполнении операций случайной записи 4-килобайтными блоками (XFS демонстрирует в этом тесте миллион операций в секунду, при том, что XFS ограничивается ремапингом блоков, а Bcachefs обрабатывает полный цикл CoW (Copy-on-Write) с проверкой контрольных сумм и обновлением структуры btree).

Помимо оптимизаций в выпуске Bcachefs 1.38.6 реализована поддержка подключения до 255 устройств к одной ФС. В репозитории apt.bcachefs.org началось формирование пакетов для Ubuntu 26.04. Инфраструктура непрерывной интеграции и автоматизированного тестирования переведена на проверку сборок на базе DKMS. В следующие несколько месяцев планируется сосредоточить внимание на оптимизации работы файловой системы с несколькими устройствами хранения.

Кроме того, продолжается работа по переписыванию кода на языке Rust. Отмечается, что поддержка Rust в ядре достигла знакового момента — все значительные дистрибутивы при формировании пакетов с ядром 7.0 по умолчанию активировали настройку CONFIG_RUST для сборки ядра с поддержкой Rust. В проекте Bcachefs на Rust уже переписан набор утилит bcachefs-tools, запускаемый в пространстве пользователя, включая реализацию API для работы со структурами btree. В следующем релизе планируется интегрировать подготовленные обвязки на Rust в DKMS-модуль ядра и начать переписывание базового кода Bcachefs. Предполагается, что использование Rust повысить гибкость, стабильность и удобство работы с кодом, сделает проект более интересным для молодых инженеров и позволит в будущем реализовать формальную верификацию надёжности.

Проектом Bcachefs развивается файловая система, нацеленная на сочетание расширенной функциональности, свойственной Btrfs и ZFS, и уровня производительности, надёжности и масштабируемости, характерного для XFS. Bcachefs поддерживает такие возможности, как включение в раздел нескольких устройств, многослойные раскладки накопителей (нижний слой с часто используемыми данными на базе быстрых SSD, а верхний слой с менее востребованными данными из жестких дисков), репликация (RAID 1/10), кэширование, прозрачное сжатие данных (режимы LZ4, gzip и ZSTD), срезы состояния (снапшоты), верификация целостности по контрольным суммам, коды коррекции ошибок, хранение информации в зашифрованном виде (используются ChaCha20 и Poly1305).

Из значительных нововведений, добавленных в Bcachefs за последние месяцы, упоминаются:

  • Механизм reconcile (rebalance_v2), который в отличие от режима rebalance позволяет выполнить ребалансировку не только данных (например, реплицирование нескольких копий на разные накопители), но и метаданных в ФС (например, для переноса метаданных после добавления в пул дополнительного накопителя). Reconcile применим для всех операций ввода/вывода, а не только для операций фонового копирования и сжатия. В reconcile автоматически учитываются изменения настроек устройств и сразу перереплицируются деградировавшие данные и метаданные.
  • Поддержка кодов коррекции ошибок, позволяющих восстанавливать повреждённые данные по аналогии с RAID 5/6. Реализация основана на кодировании Рида-Соломона, способном исправить до N ошибок в страйпе (stripe) при наличии N избыточных блоков. Обеспечено автоматическое восстановление деградировавших страйпов. Возможность применения кодов восстановления применима в конфигурациях с накопителями разного размера.

>>> Источник: OpenNET

★★★★★

Проверено: CrX ()
Последнее исправление: CrX (всего исправлений: 1)

Новость настолько не интересная оказалась для аудитории, что даже ФС-срач толком не начался/идёт без огонька.

wandrien ★★★★
()

Я на ext3 и ext4 ещё сижу, даже boot в ext2. Лень на btrfs переходить. А тут ещё новое…

AnonymUser
()
Ответ на: комментарий от wandrien

Так срач по вкусовщине обычно вырастает, а так вроде всем очевидно

нужна надежность - ставть екст4,

нужны фичи - ставь зэтфс,

нужны острые ощущения - ставь бтрфс.

Ну и часть из тех кто хочет фичи ждет когда бкешфс стабилизируют, чтобы её потыкать.

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)
Ответ на: комментарий от ya-betmen

нужны острые ощущения - ставь бтрфс.

Вот на этом моменте обычно вылезает кто-нибудь с анекдотическим свидетельством «у меня бтрфс уже 7 лет верой и правдой служит, и почти ни разу не было с ней проблем, надо просто [тем-то не пользоваться, то-то делать так-то, и ещё чтоб повезло], вы всё врёте», и далее начинается срач. Но тут либо любители подобных аргументов естественным путём столкнулись хоть с чем-то (ведь это функция от времени использования), либо просто подобные срачи давно всем надоели. :)

CrX ★★★★★
()
Ответ на: комментарий от CrX

Во-во, давайте в эту сторону двигаться.

Есть ещё параллельная ветка срачей «нужен ли LVM».

Всё равно про новость уже всё обсудили.

wandrien ★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.