Несколько недель назад мы делимся здесь в блоге новость о принятии файловой системы Bcachefs в ветке linux-next, так как в основной ветке был отвергнут Линусом Торвальдсом и рекомендовал Кенту Оверстриту сначала оценить пригодность предложенных патчей в следующей экспериментальной ветке Linux, чтобы в случае успеха проверки BcacheFS можно было включить в ядро 6.7.
Спустя почти месяц работы(с момента последней попытки интегрировать BcacheFS в основную ветку), LИнус Торвальдс наконец дал добро и одобрил запрос на включение BcacheFS в основную ветку ядра Linux и добавил реализацию Bcachefs в репозиторий, в котором разрабатывается ветка ядра 6.7, релиз которой ожидается в начале января.
Как уже упоминалось в статье, которой мы поделились ранее, Попытки продвигать BcacheFS в основную ветку Linux начались в 2020 году. после чего потребовалось еще почти три года на устранение замечаний и недостатков, выявленных после экспертной оценки.
В этом году был предложен обновленный набор патчей. которые несколько раз отвергались, но, наконец, были приняты в ветку Linux-next в сентябре с целью тестирования функций будущих версий ядра Linux.
Для тех, кто не знает о BcacheFS, следует знать, что есть файловая система что развивается с использованием технологий, уже проверенных при разработке блочного устройства Bcache, предназначенная для кэширования медленного доступа к жестким дискам на быстрых твердотельных накопителях с упором на надежность и надежность, а также на полный набор функций, которые можно ожидать от современной файловой системы.
- Копирование при записи (COW), например zfs или btrfs.
- Полные данные и контрольная сумма метаданных
- Несколько устройств
- Репликация
- Стирающее кодирование (не стабильно)
- Кэширование, расположение данных
- сжатие
- шифрование
- снимок
- Режим «Сейчас»
- Рефссылка
- Расширенные атрибуты, списки управления доступом, квоты
- Масштабируемость – протестировано на емкости более 100 ТБ и ожидается, что масштабируемость будет намного выше (требовались тестировщики!)
- Высокая производительность, низкая задержка
В дополнение к этому, BcacheFS попытки объединить производительность, надежность и масштабируемость XFS с расширенными функциями, доступными в Btrfs и ZFS, такими как разбиение на несколько устройств, многоуровневая структура дисков, репликация (RAID 1/10), кэширование, прозрачное сжатие данных (LZ4), режимы gzip и ZSTD), состояние секторов, проверка целостности использование контрольных сумм, возможность хранения кодов коррекции ошибок Рида-Соломона (RAID 5/6), хранение информации в зашифрованном виде (используются ChaCha20 и Poly1305).
Что касается производительности, Bcachefs опережает Btrfs и другие файловые системы основан на механизме копирования при записи и демонстрирует скорость работы, близкую к Ext4 и XFS.
Патч, добавленный в ядро, включает около 95 тысяч строк кода. Проект уже более 10 лет разрабатывает Кент Оверстрит, который также разработал систему кэширования блочных устройств Bcache на SSD-накопителях, входящих в ядро.
Особенностью Bcachefs является поддержка соединений нескольких устройств слоев, в которых хранилище состоит из нескольких слоев: к нижнему слою подключены самые быстрые диски (SSD), который используется для кэширования часто используемых данных, а верхний слой состоит из более вместительных и экономичных дисков, обеспечить хранение менее используемых данных.
Кэширование может использоваться между слоями в режиме обратной записи. Диски можно динамически добавлять и отключать от раздела, не прекращая использование файловой системы (данные переносятся автоматически).
наконец, если вы заинтересован в возможности попробовать эту файловую систему самостоятельно, вы должны знать, что вам необходимо скомпилировать ядро для пользователя. Вы можете следовать инструкциям на по следующей ссылке.
Для тех, кто может узнать об этом больше, вы можете ознакомиться с подробностями в по следующей ссылке.