Кент Оверстрит (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) - в такой конфигурации добавление второго накопителя приведёт к автоматической репликации данных на добавленный диск, без необходимости выполнения каких-либо действий пользователем. Среди других изменений:
Источник: https://www.opennet.ru/opennews/art.shtml?num=64396
- Добавлены команды "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-структур обеспечен вывод сведений о наличии возможности восстановления проблемных узлов. При записи в лог добавлена возможность раздельного определения лимитов на интенсивность вывода разных типов ошибок. Подобные лимиты позволяют предотвратить потерю сообщений об единичных аппаратных проблемах на фоне большого числа сообщений о программных ошибках. Для всех стадий восстановления добавлены индикаторы прогресса.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64396