Новая ФС 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".

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Новая ФС Bcachefs, сочетающая функциональность btrfs/zfs с производительностью ext4/xfs», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.