Кент Оверстрит (Kent Overstreet) опубликовал выпуск файловой системы Bcachefs 1.38.6 и объявил об официальном снятии с проекта метки экспериментальной разработки. Последнее время число поступающих сообщений о проблемах сократилось, а выявляемые ошибки стали менее серьёзными и замысловатыми.
Выпуск охватывает два пакета: bcachefs-kernel-dkms с модулем ядра, собираемым при помощи системы DKMS (Dynamic Kernel Module Support), и bcachefs-tools с запускаемой в пространстве пользователя утилитой bcachefs, реализующей команды для создания (mkfs), монтирования, восстановления и проверки ФС. Пакеты собраны для Debian, Ubuntu, ਆਰਚ 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 GB/sec при запуске 48 клиентов dbench (для сравнения в XFS получен результат в 16 GB/sec). Подготовлены, но отложены до следующего релиза, патчи, доводящие производительность в тестах dbench до 19 GB/sec (данные патчи требуют дополнительного тестирования или изменения дискового формата). При тестировании утилитой fio производительность 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 ਪ੍ਰਤੀ ਭਾਗ ਮਲਟੀਪਲ ਡਿਵਾਈਸਾਂ, ਮਲਟੀ-ਲੇਅਰਡ ਸਟੋਰੇਜ ਲੇਆਉਟ (ਤੇਜ਼ SSDs 'ਤੇ ਅਧਾਰਤ ਅਕਸਰ ਐਕਸੈਸ ਕੀਤੇ ਡੇਟਾ ਦੇ ਨਾਲ ਇੱਕ ਹੇਠਲੀ ਪਰਤ, ਅਤੇ ਹਾਰਡ ਡਰਾਈਵਾਂ ਤੋਂ ਘੱਟ ਅਕਸਰ ਐਕਸੈਸ ਕੀਤੇ ਡੇਟਾ ਦੇ ਨਾਲ ਇੱਕ ਸਿਖਰਲੀ ਪਰਤ), ਪ੍ਰਤੀਕ੍ਰਿਤੀ (RAID 1/10), ਕੈਚਿੰਗ, ਪਾਰਦਰਸ਼ੀ ਡੇਟਾ ਕੰਪਰੈਸ਼ਨ (LZ4, gzip, ਅਤੇ ZSTD ਮੋਡ), ਸਟੇਟ ਸਲਾਈਸ (ਸਨੈਪਸ਼ਾਟ), ਚੈੱਕਸਮ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਕਸਾਰਤਾ ਤਸਦੀਕ, ਗਲਤੀ ਸੁਧਾਰ ਕੋਡ, ਅਤੇ ਏਨਕ੍ਰਿਪਟਡ ਡੇਟਾ ਸਟੋਰੇਜ (ChaCha20 ਅਤੇ Poly1305 ਦੀ ਵਰਤੋਂ ਕਰਕੇ) ਵਰਗੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।
Из значительных нововведений, добавленных в Bcachefs за последние месяцы, упоминаются:
- Механизм «reconcile» (rebalance_v2), который в отличие от режима «rebalance» позволяет выполнить ребалансировку не только данных (например, реплицирование нескольких копий на разные накопители), но и метаданных в ФС (например, для переноса метаданных после добавления в пул дополнительного накопителя). Reconcile применим для всех операций ввода/вывода, а не только для операций фонового копирования и сжатия. В reconcile автоматически учитываются изменения настроек устройств и сразу перереплицируются деградировавшие данные и метаданные.
- Поддержка кодов коррекции ошибок, позволяющих восстанавливать повреждённые данные по аналогии с RAID 5/6. Реализация основана на кодировании Рида-Соломона, способном исправить до N ошибок в страйпе (stripe) при наличии N избыточных блоков. Обеспечено автоматическое восстановление деградировавших страйпов. Возможность применения кодов восстановления применима в конфигурациях с накопителями разного размера.
ਸਰੋਤ: opennet.ru
