Просмотров: 15529

Файловые системы ближайшего будущего. Btrfs


Btrfs - это новейшая файловая система, которая в данный момент очень активно развивается, и, несмотря на ещё несколько незрелый вид, уже интегрирована в ядро ОС Linux. В целом, говоря предельно кратко, Btrfs  — это файловая система, созданная специально для Linux, основанная на структурах B-деревьев и экстентах, и работающая по принципу «копирование при записи» (copy-on-write).

Мне кажется, что для понимания необходимости создания этой файловой системы, необходимо хотя бы вкратце показать исторический фон, на котором она создавалась. В связи с этим стало уже стереотипным мнением, воспринимать Btrfs как прямой ответ на файловую систему ZFS, которую было запрещено включать в состав ядра Linux из-за лицензионной несовместимости с ним.

Btrfs logo

Феномен появления столь масштабного решения как ZFS, ряд возможностей которой отсутствовали в традиционных файловых системах Linux, нельзя было оставить незамеченным, поэтому Крис Мэйсон (Chris Mason), директор управления Linux Kernel Engineering в Oracle, инициировал разработку новой, не менее масштабной и амбициозной ФС, основанной c прицелом специально под ОС Linux.

В заключение нашего небольшого исторического экскурса, следует сообщить о переломном моменте в развитии Btrfs, который произошел в конце 2007 года, когда на совместном совещании ведущих разработчиков Linux из компаний Oracle, Red Hat, Novell, IBM, HP, Intel, посвященного созданию файловой системы нового поколения для Linux (Next Generation FileSystem, NGFS), было принято решение сделать ставку на совместное развитие btrfs, как наиболее универсальную и отвечающую всем современным вызовам ФС. После этого решения Btrfs получила уже официальный статус NGFS для Linux, что усилило её дальнейшее развитие, превратив в эпицентр инноваций в этой области.

Прежде чем привести список основных технических возможностей этой файловой системы, следует ещё раз подчеркнуть, что разработка этой ФС ещё в самом разгаре, и, не смотря на то, что многое уже сделано — многие возможности ещё далеки от совершенства и логического завершения.

Крис Мэйсон (Chris Mason) btrfs Orcale

Крис Мэйсон, ведущий разработчик btrfs (Oracle)

Как пример такой незавершенности, можно привести то, что до сих пор не доработан до конца инструмент для проверки файловой системы и исправления её ошибок (есть правда утилита для восстановления данных, написанная Йозефом. Работает она также пока в режиме ReadOnly, так что если у кого-то есть сломанные разделы с btrfs — стоит попробовать).

Также лишь совсем недавно вновь начал свою работу Git-репозиторий на kernel.org с набором утилит btrfs-progs , ориентированных на управление разделами с файловой системой Btrfs (кстати в новой версии появилась поддержка режима scrub , при котором осуществляется чтение и проверка всех данных и метаданных с целью выявления ошибок и нарушений целостности в файловой системе Btrfs).

Вот её основные особенности:

  • Динамическое выделение индексных дескрипторов (динамические иноды, dynamic inodes ). Иначе говоря, в этой ФС нет максимального количества обслуживаемых файлов;
  • Снимки файловой системы (snapshots), а также возможности делать снимки снимков и записываемые снимки (writeable snapshots);
  • Для продвинутого контроля целостности, применяются хеши на все данные и метаданные (тут нужно сразу заметить, так как от сравнения Btrfs и ZFS никак не уйти, что на данный момент в Btrfs применяется CRC-32C, что существенно скромнее, чем в ZFS);
  • Очень полезная возможность миграции с традиционных файловых систем ext3/ext4, что дает возможность очень прозрачного перехода на эту новую ФС;
  • Завершаются работы над поддержкой автоматического распознавания и объединения дубликатов (дедупликация);
  • Проверка файловой системы в рабочем режиме (online) и очень быстрая проверка в нерабочем режиме (offline);
  • Прозрачные возможности избирательного сжатия файлов;
  • Поддержка режима работы как RAID-массива (одна файловая система на нескольких томах);
  • Подтома (subvolumes) и эффективное клонирование файловой системы, быстрое создание инкрементальных архивов;
  • Прямая поддержка Device-mapper — важного компонента ядра Linux, с помощью которого организуется расширенное управление логическими томами;
  • И многое другое.

И хотя эта ФС пока активно развивается, в качестве иллюстрации точек её будущего роста и масштабности общей задумки, в качестве примера можно привести решение компании Oracle реализовать сетевой протокол новой распределенной файловой системы CRFS (фактически заменяющий устаревшие NFS и CIFS), который будет спроектирован и оптимизирован полностью под btrfs.

Крис Мэйсон (Chris Mason) btrfs Orcale

Крис Мэйсон доволен btrfs, несмотря на её острую критику

Второй похожий пример: после долгого анализа существующих ФС, консорциум Intel и Nokia выбрал для своей новейшей мобильной Linux-платформы MeeGo как раз btrfs, которая в сравнении с другими аналогами оказалась наиболее перспективной.

Свежее техническое описание устройства и возможностей btrfs можно найти в подробной статье одного из её разработчиков — Йозифа. Также обратите внимание на инструкцию «Создание и обслуживание разделов с файловой системой Btrfs»


Начало этой серии статей здесь. Следующая часть (продолжение) — вот здесь.

Игорь Савчук // Системный Администратор, 2011
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , , , , , , ,
Эта запись опубликована: Суббота, 14 января 2012 в рубрике Unix'овоеОбзоры.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз