Выпуск файловой системы Bcachefs 1.33.0

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

В новой версии добавлена функциональность «reconcile» (rebalance_v2), отмеченная как крупнейшие за последние два года изменение в ФС. В отличие от ранее доступного режима «rebalance», механизм «reconcile» позволяет выполнить ребалансировку не только данных (например, реплицирование нескольких копий на разные накопители), но и метаданных в ФС (например, для переноса метаданных после добавления в пул дополнительного накопителя). Кроме того, reconcile теперь применим для всех опций ввода/вывода, а не только для операций фонового копирования и сжатия. В reconcile также автоматически учитываются изменения опций или настроек устройств и сразу перереплицируются деградировавшие данные и метаданные.

В reconcile задействованы отдельные индексы для: высокоприоритетных операций; оптимизации обработки данных на дисковых накопителях; данных, запланированных для обработки, которую пока невозможно выполнить (например, из-за нехватки места). Добавлена поддержка создания файловой системы на одном накопителе в режиме с двойной репликацией (replicas=2) — в такой конфигурации добавление второго накопителя приведёт к автоматической репликации данных на добавленный диск, без необходимости выполнения каких-либо действий пользователем.

Среди других изменений:

  • Добавлены команды «reconcile status» и «reconcile wait». Добавлены опции монтирования «mount_trusts_udev» и «writeback_timeout». Переведены в число устаревших команды «data rereplicate», «data job drop_extra_replicas».

  • Добавлен режим восстановления «merge_btree_nodes», выполняющий проверку всех узлов в btree-структурах, подпадающих под операции слияния.

  • Проведена подготовка кода к переходу на использование языка Rust. Число используемых в коде операций goto сокращено с 2500 до 600. Вместо открыто кодированных векторов задействован макрос DARRAY (), предоставляющий функциональность, похожую динамические массивы C++ и Rust. Для обработки ошибок задействован макрос try (), заимствованный из Rust.

  • В команде «bcachefs fs usage» обеспечено корректное информирование о деградировавших данных.

  • Переработана обработка счётчиков, показываемых командной «bcachefs fs top». Упрощено добавление новых счётчиков и реализована возможность преобразования точек трассировки (tracepoint) в буферы вывода (printbufs).

  • Повышено качество сообщений об ошибках, которые теперь включают информацию о типах сбоев (программные или аппаратные), действиях для устранения ошибки (например, запуска процесса восстановления), полученных от блочных устройств кодах ошибок ввода/вывода, отсутствующих устройствах. При сканировании btree-структур обеспечен вывод сведений о наличии возможности восстановления проблемных узлов.

  • При записи в лог добавлена возможность раздельного определения лимитов на интенсивность вывода разных типов ошибок. Подобные лимиты позволяют предотвратить потерю сообщений об единичных аппаратных проблемах на фоне большого числа сообщений о программных ошибках.

  • Для всех стадий восстановления добавлены индикаторы прогресса.

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



Источник: http://www.opennet.ru/opennews/art.shtml? num=64396

© OpenNet