Дата публикации:Mon, 08 Dec 2025 18:13:04 +0300
Кент Оверстрит (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-структур обеспечен вывод сведений о наличии возможности восстановления проблемных узлов. Добавлена возможность раздельного определения лимитов на интенсивность вывода в лог разных типов ошибок для предотвращения потери сообщений об аппаратных проблемах на фоне большого числа сообщений о программных ошибках. Для всех стадий восстановления добавлены индикаторы прогресса.
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=64396