Comments 9
Хотя эта файловая система входит в состав ОС Linux уже более десяти лет
В вики говорят, что ей ещё нет 10 лет, а добавили её в ядро совсем недавно, в 6.7 (вот тут упоминается, что это новая фича ядра).
А вообще статья похожа на перевод документации из разных мест. Например, часть про архитектуру подозрительно похожа на это, но в самой статье нет ни одной ссылки на первоисточники (ну хотя бы в начале можно было бы вставить ссылку на сайт проекта, если цель статьи обратить на него внимание)
хм, и где же самое интересное? тянет на довольно неплохую, но первую часть цикла статей скорее.
в bcachefs чрезвычайно важным отличительным функционалом является способ организации пулов хранения из многих разнообразных накопителей (там оно отличается от ssd кеша для пулов из жёстких дисков в zfs)
ещё очень интересным является вопрос возможности так организовать например работу простого массива из двух накопителей, чтобы какая-то область функционировала на уровне схожим с raid0, а другая - raid1, притом это не жёстко зафиксировано по объему (ещё со времён mdadm делать такое фиксированно банально через отдельные разделы можно было, конечно скорее для дома). btrfs например к сожалению так не умеет, хотя возможно, что архитектура позволяет реализовать, zfs тоже не умеет (zpool может только состоять из vdev собранных по разному, это плохая практика). Когда-то пробегал глазами по документации bcachefs и не помню отчего именно, но сложилось впечатление, что тут это возможно (потенциально хотя бы).
Вместо обрывков теории в статье лучше познакомиться с результатами тестов - https://www.phoronix.com/review/bcachefs-benchmarks-linux67
btrfs же тоже на B-tree, и CoW есть, и вот это вот все, в чем разница между btrfs и bcachefs?
В Bcachefs предпринята попытка добиться сочетания уровня производительности, надёжности и масштабируемости, свойственного XFS, и расширенной функциональности, имеющейся в Btrfs и ZFS, такой как включение в раздел нескольких устройств, многослойные раскладки накопителей, репликация (RAID 1/10), кэширование, прозрачное сжатие данных (режимы LZ4, gzip и ZSTD), срезы состояния (снапшоты), верификация целостности по контрольным суммам, возможность хранения кодов коррекции ошибок Рида—Соломона (RAID 5/6), хранение информации в зашифрованном виде (используются ChaCha20 и Poly1305). По производительности Bcachefs опережает Btrfs и другие ФС на базе механизма Copy-on-Write, и демонстрирует скорость работы, близкую к Ext4 и XFS.
Особенностью Bcachefs является поддержка многослойного подключения накопителей, при котором хранилище компонуется из нескольких слоёв - к нижнему слою подключаются наиболее быстрые накопители (SSD), которые используются для кэширования часто используемых данных, а верхний слой образуют более ёмкие и дешёвые диски, обеспечивающие хранение менее востребованных данных. Между слоями может применяться кэширование в режиме отложенной записи (writeback). Накопители можно динамически добавлять и отсоединять от раздела без остановки использования файловой системы (данные мигрируют автоматически).
К слову сказать, bcachefs очень глючная была 5 лет назад, понимаю 5 лет срок, но все же основная проблема была с отслеживанием живучести ssd Кеша, и вот если ssd терял данные, но сам вроде как работал, то все данные на разделе с bcachefs превращались в мусор.
Решена ли эта проблема в новых версиях?
ps как пример ситуации: вам попался поддельный ssd от проверенного поставщика, реальный размер 30GB, по этикетке и "видно в системе" 2tb, после 30gb данные перезаписываются, уведомлений нет. Вы вставили диск в живой массив и получили тыкву из всего массива.
Сам не юзал, но bcachefs приняли в ядро, что косвенно может свидетельствовать о том, что все критичные косяки уже исправлены.
Да я как то тестил её, держал кэш на бесплатной виртуалке в Японии, а основной массив по iSCSI в Мск. Бесплатный период кончился, виртуалка отключилась, основной массив стал мусором.
Bcachefs: файловая система, которая не ест ваши данные