Bcachefs доведена до состояния, пригодного для включения в состав ядра Linux
1 ноября 2020 года
Кент Оверстрит (Kent Overstreet) объявил в списке рассылки разработчиков ядра Linux о готовности реализации файловой системы Bcachefs для рецензирования перед включением в основной состав ядра. Bcachefs развивается с использованием технологий, уже опробованных при разработке блочного устройства Bcache, предназначенного для кэширования доступа к медленным жёстким дискам на быстрых SSD-накопителях.
В файловой системе используется механизм Copy-on-Write (COW), при котором изменения не приводят к перезаписи данных - новое состояние записывается в новое место, после чего меняется указатель актуального состояния. Особенностью Bcachefs является поддержка многослойного подключения накопителей, при котором хранилище компонуется из нескольких слоёв - к нижнему слою подключаются наиболее быстрые накопители (SSD), которые используются для кэширования часто используемых данных, а верхний слой образуют более ёмкие и дешёвые диски, обеспечивающие хранение менее востребованных данных. Между слоями может применяться кэширование в режиме отложенной записи (writeback).
Кроме типовых возможностей POSIX ФС, например xattrs и ACL, Bcachefs предоставляет доступ к таким расширенным функциям, как возможность подключения к разделу нескольких накопителей, репликация (RAID 1/10), кэширование, срезы состояния (снапшоты), прозрачное сжатие данных (режимы LZ4, gzip и ZSTD), верификация целостности данных и метаданных по контрольным суммам, коды коррекции ошибок Рида—Соломона (RAID 5/6), хранение информации в зашифрованном виде (используются ChaCha20 и Poly1305). Накопители можно динамически добавлять и отсоединять от раздела без остановки использования файловой системы (данные мигрируют автоматически). Из пока не реализованных возможностей отмечается поддержка квот и поддержка экспорта через NFS.
По производительности Bcachefs опережает Btrfs и другие ФС на базе механизма Copy-on-Write, и демонстрирует производительность, близкую к Ext4 и Xfs. Реализация шифрования ФС по производительности близка к dm-crypt, но, при этом, dm-crypt не поддерживает аутентифицированное шифрование. Bcachefs хорошо масштабируется и протестирована в работе хранилища, размером 50 ТБ. Изначально проблемой Bcachefs было большое время монтирования, вызванное тем, что во время монтирования осуществлялся обход всех inode, dirent-ов и extent-ов. В новом наборе патчей проведена работа по решению этой проблемы и большие ФС теперь монтируются кардинально быстрее.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.