Современная Linux-файловая система Bcachefs, использующая копирование при записи (copy-on-write) и предлагающая шифрование, снимки, сжатие и другие расширенные возможности, призванные конкурировать с Btrfs и ZFS, достигла важной вехи. В блоге проекта руководитель Кент Оверстрит сообщил, что файловая система больше не считается экспериментальной.
Новость поступила одновременно с выпуском Bcachefs 1.38.6, который сосредоточен на улучшении производительности.
“Мы больше не экспериментальные. Я снял метку с сайта несколько месяцев назад, основываясь на том, что поток отчётов об ошибках замедлился, а сами отчёты стали менее серьёзными и с ними легко справляться. Считайте это запоздалым официальным объявлением :)”
Однако это не означает, что Bcachefs уже готова для всех промышленных систем. Это просто значит, что проект теперь рассматривает файловую систему как вышедшую из экспериментальной фазы. Тем не менее, для тех, кто следит за Bcachefs, это важное изменение. Кроме того, версия 1.38.6 обращает внимание на два основных направления недавней разработки: механизм Reconcile и избыточное кодирование (erasure coding).
Reconcile отслеживает, где находятся данные, где они должны быть и что нужно изменить при обновлении параметров файловой системы или изменении состояния устройств. В результате Bcachefs может перемещать данные в фоне, перереплицировать их или включать избыточное кодирование без ручного вмешательства пользователя.
Избыточное кодирование также больше не считается экспериментальным. Bcachefs использует кодирование Рида-Соломона, которое также применяется в RAID5 и RAID6. Проект утверждает, что его стратегия позволяет избежать традиционной проблемы “дыры записи” в RAID. Вместо прямого обновления существующих полос (stripes) новые данные сначала реплицируются, а затем в фоне преобразуются в полосы.
Данный выпуск также включает множество улучшений производительности. Оверстрит сообщает, что бенчмаркинг и профилирование привели к появлению более 200 патчей в коде ядра btree-структур, журнала и файловой системы. Ключевые изменения включают ускоренный путь фиксации транзакций, новые методы избежания блокировок в btree-коде, а также безблокировочный путь сброса журнала.
В конфигурации с одним устройством Оверстрит отмечает, что Bcachefs 1.38.6 достигла 16,5 ГБ/с в тестах dbench на 48-ядерной системе AMD EPYC 9454, тогда как XFS в том же тесте показала 16 ГБ/с. С дополнительными патчами, не вошедшими в этот выпуск, сообщается, что Bcachefs достигла 19 ГБ/с. В тестах случайной записи блоками по 4 КБ с помощью fio Bcachefs выдала 700 000 IOPS, в то время как XFS достигла 1 миллиона IOPS на том же оборудовании.
Также ведётся работа с Rust. Код пространства пользователя Bcachefs уже переписан на Rust, и команда планирует следующим шагом добавить привязки Rust к модулю DKMS. Поначалу Rust будет использоваться для модульных и тестов производительности, рассматриваясь как необязательная зависимость, прежде чем произойдут более крупные изменения в коде ядра.
Как вы, вероятно, знаете, после драмы между Оверстритом и Торвальдсом Bcachefs больше не включена в ядро и теперь поставляется как модуль DKMS, начиная с Linux 6.18. На сайте указана поддержка для Linux 6.16 и новее, а также приведены инструкции по сборке для Gentoo, Void, NixOS, Arch, Debian, Ubuntu, Fedora и openSUSE.
Так стабильна ли Bcachefs сейчас? Согласно заявлению проекта, метка “экспериментальная” убрана. Однако, если вы планируете использовать её для важных данных или в критически важных для бизнеса системах, разумно проявлять осторожность. Файловые системы завоёвывают доверие со временем, на многих нагрузках, системах и в аварийных ситуациях.
Тем не менее, Bcachefs 1.38.6 представляет собой не просто очередной выпуск, и есть надежда, что в будущих версиях встроенная поддержка Bcachefs в ядре Linux снова будет включена по умолчанию.





Пока нет комментариев. Будьте первым!