LINUX.ORG.RU

Файловая система Bcachefs официально перестала быть экспериментальной

 , , , ,


0

3

Кент Оверстрит (Kent Overstreet) опубликовал выпуск файловой системы Bcachefs 1.38.6 и объявил об официальном снятии с проекта метки экспериментальной разработки. Последнее время число поступающих сообщений о проблемах сократилось, а выявляемые ошибки стали менее серьёзными и замысловатыми.

Выпуск охватывает два пакета: bcachefs-kernel-dkms с модулем ядра, собираемым при помощи системы DKMS (Dynamic Kernel Module Support), и bcachefs-tools с запускаемой в пространстве пользователя утилитой bcachefs, реализующей команды для создания (mkfs), монтирования, восстановления и проверки ФС. Пакеты собраны для Debian, Ubuntu, Arch 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 Гбайт/с при запуске 48 клиентов dbench (для сравнения в XFS получен результат в 16 Гбайт/с). Подготовлены, но отложены до следующего релиза, патчи, доводящие производительность в тестах dbench до 19 Гбайт/с (данные патчи требуют дополнительного тестирования или изменения дискового формата). При тестировании утилитой fio (github.com) производительность 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 поддерживает такие возможности, как включение в раздел нескольких устройств, многослойные раскладки накопителей (нижний слой с часто используемыми данными на базе быстрых SSD, а верхний слой с менее востребованными данными из жестких дисков), репликация (RAID 1/10), кэширование, прозрачное сжатие данных (режимы LZ4, gzip и ZSTD), срезы состояния (снапшоты), верификация целостности по контрольным суммам, коды коррекции ошибок, хранение информации в зашифрованном виде (используются ChaCha20 и Poly1305).

Из значительных нововведений, добавленных в Bcachefs за последние месяцы, упоминаются:

  • Механизм reconcile (rebalance_v2), который в отличие от режима rebalance позволяет выполнить ребалансировку не только данных (например, реплицирование нескольких копий на разные накопители), но и метаданных в ФС (например, для переноса метаданных после добавления в пул дополнительного накопителя). Reconcile применим для всех операций ввода/вывода, а не только для операций фонового копирования и сжатия. В reconcile автоматически учитываются изменения настроек устройств и сразу перереплицируются деградировавшие данные и метаданные.
  • Поддержка кодов коррекции ошибок, позволяющих восстанавливать повреждённые данные по аналогии с RAID 5/6. Реализация основана на кодировании Рида-Соломона, способном исправить до N ошибок в страйпе (stripe) при наличии N избыточных блоков. Обеспечено автоматическое восстановление деградировавших страйпов. Возможность применения кодов восстановления применима в конфигурациях с накопителями разного размера.

>>> Источник: OpenNET

★★★★★

Проверено: CrX ()
Последнее исправление: CrX (всего исправлений: 1)

Новость настолько не интересная оказалась для аудитории, что даже ФС-срач толком не начался/идёт без огонька.

wandrien ★★★★
()

Я на ext3 и ext4 ещё сижу, даже boot в ext2. Лень на btrfs переходить. А тут ещё новое…

AnonymUser
()
Ответ на: комментарий от wandrien

Так срач по вкусовщине обычно вырастает, а так вроде всем очевидно

нужна надежность - ставть екст4,

нужны фичи - ставь зэтфс,

нужны острые ощущения - ставь бтрфс.

Ну и часть из тех кто хочет фичи ждет когда бкешфс стабилизируют, чтобы её потыкать.

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)
Ответ на: комментарий от ya-betmen

нужны острые ощущения - ставь бтрфс.

Вот на этом моменте обычно вылезает кто-нибудь с анекдотическим свидетельством «у меня бтрфс уже 7 лет верой и правдой служит, и почти ни разу не было с ней проблем, надо просто [тем-то не пользоваться, то-то делать так-то, и ещё чтоб повезло], вы всё врёте», и далее начинается срач. Но тут либо любители подобных аргументов естественным путём столкнулись хоть с чем-то (ведь это функция от времени использования), либо просто подобные срачи давно всем надоели. :)

CrX ★★★★★
()
Ответ на: комментарий от CrX

Во-во, давайте в эту сторону двигаться.

Есть ещё параллельная ветка срачей «нужен ли LVM».

Всё равно про новость уже всё обсудили.

wandrien ★★★★
()
Ответ на: комментарий от wandrien

Есть ещё параллельная ветка срачей «нужен ли LVM».

Вот тут-то чего сраться? Очевидно нет.

ya-betmen ★★★★★
()

Корень на ней держать можно уже?

BydymTydym ★★
()
Ответ на: комментарий от Vsevolod-linuxoid

C xfs косяки были и не так уж и мало. У меня были падения драйвера до перезагрузки, если место кончилось. Был баг, когда диск расширил, а все равно места нет. Лечилось перемонтированием диска.

usermod
()
Ответ на: комментарий от CrX

с анекдотическим свидетельством «у меня бтрфс уже 7 лет верой и правдой служит, и почти ни разу не было с ней проблем, надо просто [тем-то не пользоваться, то-то делать так-то, и ещё чтоб повезло], вы всё врёте»

Начну тогда ;) У меня год бтрфс без нареканий работает на 3 устройствах. Тьфу, тьфу, тьфу, тук, тук, тук.

ptah_alexs ★★★★★
()
Ответ на: комментарий от ptah_alexs

У меня год бтрфс без нареканий работает на 3 устройствах. Тьфу, тьфу, тьфу, тук, тук, тук.

У тебя кажется диск головой застучал =Р

GAMer ★★★★★
()
Ответ на: комментарий от ya-betmen

нужна надежность - ставть екст4,нужны фичи - ставь зэтфс, нужны острые ощущения - ставь бтрфс.

Я бы в ZFS совместил и фичи и надёжность, а EXT4 и XFS дал скорость, в зависимости от требований - одной или другой.

GAMer ★★★★★
()
Ответ на: комментарий от GAMer

Да, но в быту можно сломать ту же зтф просто забив свободное место, что экст4 переживет без проблем. Я это в надежность заношу.

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)
Ответ на: комментарий от ya-betmen

сломать ту же зтф просто забив свободное место

На proxmox'е забивалось, не ломалась. Наверное просто забивать покилобайтно надо было )

GAMer ★★★★★
()
Ответ на: комментарий от wandrien

очеивжно что тут тоже учёный опять изнасиловал дурналиста

mumpster ★★★★★
()
Ответ на: комментарий от CrX

кстати, у меня по гарантии должен приехать ТТД. а данные? а на этом наши полномочия всё! вот с того ;-)

ну и да - extX по своему устройству неоптимальна для ТТД. это технический факт. просто прими это за данность.

а чтобы пояснить полноценно - нужно тут простыню на 100500 экранов накатать раз сам этого не понимаешь, недосуг мне да и не место, есть профильные места

mumpster ★★★★★
()
Ответ на: комментарий от mumpster

а чтобы пояснить полноценно - нужно тут простыню на 100500 экранов накатать раз сам этого не понимаешь, недосуг мне да и не место, есть профильные места

Можно не катать, а просто ссылку дать. Хотя я не представляю, что там может быть на 100500 экранов в таком простом вопросе, ведь можно просто ключевые слова дать. И почему у меня ext4 никакой TBW не жрёт? Есть SSD на 60 ГБ, с 2013 года 24/7 трудится, в ext4.

CrX ★★★★★
()
Ответ на: комментарий от ptah_alexs

нет. вот как раз с COW есть варианты, чем NetApp со своей вафлей и воспользовалась

mumpster ★★★★★
()
Ответ на: комментарий от CrX

60гб ттд и видимо под рут ничо не грозит. вангую там в худшем случае mlc. q а вот с tlc/qlc - есть варианты, плохие. потому что в отличие от НЖМД тут вариантов нет если чо

и да - показатели в студию!

177 Wear_Leveling_Count 0x0013 099 099 000 Pre-fail Always - 13
241 Total_LBAs_Written 0x0032 099 099 000 Old_age Always - 14621475555
~c 2019

PS: и ссылки нету. есть профильные объёмные pdfки и т.п. по ссылкам обычно только шлак и шляпа в духе «учёные путешествуют во времени»

mumpster ★★★★★
()
Последнее исправление: mumpster (всего исправлений: 1)
Ответ на: комментарий от mumpster

и да - показатели в студию!

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   050    Pre-fail  Always       -       1
  9 Power_On_Hours          0x0012   100   100   000    Old_age   Always       -       20000
 12 Power_Cycle_Count       0x0012   100   100   000    Old_age   Always       -       211
168 SATA_Phy_Error_Count    0x0012   100   100   000    Old_age   Always       -       4
170 Bad_Blk_Ct_Lat/Erl      0x0003   100   100   010    Pre-fail  Always       -       3/226
173 MaxAvgErase_Ct          0x0012   100   100   000    Old_age   Always       -       134 (Average 116)
192 Unsafe_Shutdown_Count   0x0012   100   100   000    Old_age   Always       -       111
218 CRC_Error_Count         0x000b   100   100   050    Pre-fail  Always       -       0
241 Lifetime_Writes_GiB     0x0012   100   100   000    Old_age   Always       -       4105

На Power_On_Hours можно не смотреть, он уже много лет как на этом значении застрял.

PS: и ссылки нету. есть профильные объёмные pdfки и т.п. по ссылкам обычно только шлак и шляпа в духе «учёные путешествуют во времени»

Эти профильные объёмные pdfки секретные и распространяются только на флопиках, а в интернете отсутствуют? Или почему на них нельзя дать ссылку?

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от CrX

вылезает кто-нибудь

🤡

у меня бтрфс уже 7 лет верой и правдой служит

У меня почти 9, на HDD.

и почти ни разу не было с ней проблем

Вообще ни разу.

dataman ★★★★★
() автор топика
Ответ на: комментарий от CrX

потому что ссылок нет. потому что я их скачивал и смотрел много лет, пока занимался СХД. начиная года этак с 2000. и определённые выводы сделал. и выписки тоже. и многих ссылок уже физически нет, sunsolve например.

и времени и желания это всё причёсывать чобы потешить одного анонима в инете - нет совсем.

поэтому просто прими за данность, что extX - не дружелюбна к ТТД. ибо такая задача ей в принципе не ставилась. когда ЦО её начал разрабатывать, ЭСППЗУ ещё только в пультах ТВ массово использовались. а вафля нетаповская - дружелюбна. но так получилось не намеренно, это побочка от замысла как работает.

по твоему логу - ты очень мало пишешь, типичный мелкий рут где ничего не происходит. и даже тут extX успела потратить 4ТБ. отключи atime.))))

и я так понимаю, что Wear_Leveling у тя отсутствует как класс? ;-) впрочем как и сказал, для MLC это не сильно страшно

mumpster ★★★★★
()
Ответ на: комментарий от mumpster

поэтому просто прими за данность

Нет, так это не работает. Без не то что пруфов, а даже просто объяснения на словах, не приму.

Более того, мне по твоим постам всё уже понятно: ты где-то что-то видел, сам толком не понял, теперь транслируешь. Без подробностей и ссылок попрошу просто больше не тратить моё время.

по твоему логу - ты очень мало пишешь, типичный мелкий рут где ничего не происходит. и даже тут extX успела потратить 4ТБ. отключи atime.))))

Офигеть ты умный! :D

CrX ★★★★★
()

Всё классно, не понятно главного: Ждём эту ФС в ядре или в музее файловых систем имени reiser4.

Если второе второе, то можно на ноль умножать все метрики и показатели.

shahid ★★★★★
()
Ответ на: комментарий от shahid

Хоть и хочется надеяться на первый вариант, он выглядит менее вероятным, чем второй. Но это ложная дихотомия, есть и третий вариант. Тот, в котором существует openzfs.

CrX ★★★★★
()
Ответ на: комментарий от shahid

Я думаю, что эта ФС в обозримом будущем будет жить вне ядра. И я не думаю, что это такая уж большая проблема. ZFS в таком состоянии с рождения (на линуксе) и ничего, люди пользуются.

vbr ★★★★★
()
Ответ на: комментарий от vbr

ZFS в таком состоянии с рождения (на линуксе) и ничего, люди пользуются.

Проблема в экономической целесообразности. Поддержка сторонней лабуды вне валильной кодовой базы порождает риски профукать сроки или даже данные (файлуха), если рандомный devops/сисадм с рынка не сможет правильно сдружить сторонний модуль в рандомное ядро — экономическая бессмысленная роскошь.

Без обкатки тяжелым продакшеном, сферическая ФС становится стабильной неэкспериментальной примерно никогда.

Безусловно, на локалхосте можно наслаждаться установкой ZFS из под шлакварных портков или затрояненного AUR, или на БЗДе (если она запуститься за пределами виртуалки), но это удовольствие для особых ценителей, чья молодость прошла мимо Шишкинских патчей reiser4.

shahid ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.