Новая ФС Bcachefs, сочетающая функциональность btrfs/zfs с производительностью ext4/xfs
22 августа 2015 года
Кент Оверстрит (Kent Overstreet) объявил об эволюционировании блочного устройства для кэширования доступа к медленным жестким дискам на быстрых SSD-накопителях Bcache в полноценную файловую систему Bcachefs. Благодаря использованию накопившихся за годы разработки Bcache решений, в Bcachefs удалось добиться сочетания высокой производительности с расширенными возможностями, такими как включение в раздел нескольких устройств, репликация (RAID), кэширование, прозрачное сжатие данных и верификация целостности по контрольным суммам.
В Bcachefs также реализовано большинство базовых возможностей POSIX ФС, в том числе xattrs и ACL. Интересной возможностью Bcachefs является многослойное подключение накопителей, при котором более быстрый накопитель (SSD) может быть подключен к нижнему слою и задействован для кэширования, а медленные диски могут обеспечивать хранение менее востребованных данных. Между слоями может применяться кэширование в режиме отложенной записи (writeback). Файловая система основана на использовании механизма Copy-on-Write (COW), при котором изменения не приводят к перезаписи данных - новое состояние записывается в новое место, после чего меняется указатель актуального состояния.
Из пока недоступных, но запланированных к обязательной реализации, возможностей отмечаются предварительное резервирование места (fallocate), квоты, снапшоты, поддержка драйверов SMR и raw-режима доступа к flash. Из задач также отмечается необходимость проведения оптимизаций - в тестах Bcachefs уже заметно обгоняет btrfs, но пока отстаёт от ext4. Из продиктованных архитектурой ограничений выделяется: достаточно большие требования к резервированию места под служебные данные (до 20%), необходимость выполнения сборщика мусора (в будущем не исключается реализация иного метода распределения данных), большое время монтирования (при монтировании осуществляется обход всех inode, dirent-ов и extent-ов в btree).
Комментируя возникновение новой ФС, разработчики утверждают, что в один прекрасный момент они осознали, что созданные для Bcache технологии и наработки содержат заметную часть функциональности файловой системы, и если развивать код в нужном направлении, благодаря продуманной архитектуре, можно будет получить отличную ФС. В конечном счёте, участники проекта поставили перед собой цель создания файловой системы, находящейся на уровне btrfs и zfs с позиции функциональности и ext4 и xfs в плане производительности и надёжности.
Код новой файловой системы находится на альфа-стадии разработки (дисковый формат может измениться), но субъективно достаточно стабилен (в своё время, Bcache разрабатывался для Google). В настоящее время код Bcachefs функционально более-менее завершён, что позволяет перейти к стадии полномасштабного тестирования для выявления неочевидных проблем. В простейшем случае для тестирования достаточно собрать ядро и инструментарий из Git, после чего можно отформатировать (bcacheadm format -C /dev/sda1) и примонтировать раздел (mount -t bcache /dev/sda1 /mnt). Для включения контрольных сумм и сжатия при монтировании можно указать "mount -o data_checksum=crc32c,compression=gzip".
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.