CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
28.04.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки :: Файловые системы

Знакомство с btrfs

Страницы: 1 :: 2 :: 3 :: ... :: 5 :: следующая

Содержание

Эта статья написана по мотивам серии заметок, размещавшихся на блогосайте Алисы и alv'а по мере их сочинения. Ныне они собраны воедино, приведены в соответствие друг с другом, причёсаны, исправлены и дополнены. Автор выражает свою признательность Михаилу Рудаченко aka Ali и остальным участникам обсуждения соответствующей темы на форуме POSIX.ru.

Вводные соображения

Казалось бы, ZFS, интегрировав в себе файловую систему и систему управления разделами и томами, поставила точку в длинной истории тех и других. Если не затрагивать серверного сегмента, то обеспечиваемая ею легкость администрирования устройств хранения данных и быстродействие файловых операций неожиданно сделало анахронизмом все прочие системы этого назначения — в тех ОС, для которых она разрабатывалась (Solaris, OpenSolaris и его клоны) и на которые она портирована (FreeBSD и, по слухам, NetBSD).

Одна беда — на некоторые ОС она не может быть портирована в принципе, из-за лицензионных соображений. В число таких ОС попадает и Linux, несколько более популярный, нежели почти все перечисленные выше системы, вместе взятые: непосредственная интеграция ZFS в ядро невозможна из-за несовместимости лицензии. Конечно, предприимчивые пользователи Linux (уж чего-чего, а предприимчивости записным линуксоидам не занимать стать) немедленно прикрутили её через FUSE (Filesystem in Userspace — файловая система в пользовательском пространстве). Однако, исходя из общих соображений, представляется очевидным, что это не то.

Linux-мир не мог не ответить на наглое бесчинство компании Sun, выпустившей ZFS под лицензией CDDL. И таким ответом стала файловая система btrfs, разрабатываемая Крисом Мейсоном (Chris Mason) под эгидой компании Oracle, при участии волонтёров от FOSS-сообщества и распространяемая на условиях GPL. Работа над btrfs была начата в середине 2007 года, а уже к концу 2008 года был обещан её первый стабильный релиз, что было бы беспрецедентным случаем в области разработки файловых систем.

Чуда не произошло — и в ушедшем году btrfs в стабильной форме мы не увидели. Однако начало наступившего года было всё же ознаменовано радостными событиями: выходом в свет версии 0.17 — раз, её инкорпорацией в пре-релизное ядро linux-2.6.29-rc1 — два, и обещанием включить её поддержку в релиз ядра — три.

Волею обстоятельств личного характера во время Всенародного Рождественского запоя в ночь с 25-го на 14-е мне пришлось отложить до лучших времён и FreeBSD, и OpenSolaris, обратившись к Linux’у. Благо выход бета версии Zenwalk 5.4 дал к тому хороший повод. А поскольку после длительного общения с ZFS все “действующие” Linux’овые файловые системы оставляли чувство глубокого неудовлетворения, находящаяся в предродовой стадии ext4 не обещала ничего принципиально нового, завершения работы над файловой системой tux3 можно ждать разве что к турецкой Пасхе, взоры невольно обратились к btrfs. Тем более, что в ней были обещаны практически все особенности, делающие ZFS такой привлекательной для конечного пользователя — разве что кроме возможности вскипятить мировой океан.

Пацан решил — пацан сделал. После комплекса предварительных мероприятий btrfs была водружена на один из разделов одного из моих винчестеров и в первом приближении опробована в работе — пока в сугубо тестовом режиме. Благоприятный итог первого знакомства дал основание его расширить и углУбить. В результате чего вниманию читателей и предлагается настоящая статья.

Основные особенности

Похоже, что btrfs действительно аккумулирует все передовые достижения Unix-like файловых систем за всё время их развития.

Действительно, на Btrfs Wiki её особенности сформулированы следующим образом:

Основанное на экстентах хранилище файлов (максимальный размер файла 264)

Со времён появления из недр проекта BSD файловой системы UFS механизмы хранения файлов развивались одновременно в двух направлениях: по пути внутренней фрагментации логических блоков — для экономии дискового пространства, и по пути группировки блоков в единицы, которые могут быть считаны одной атомарной операцией — для повышения производительности. Экстенты наиболее полно воплощены в XFS. В btrfs мы видим нечто похожее.

Эффективное с точки зрения экономии пространства размещение маленьких файлов.

Ничего не напоминает? Правильно, подход к маленьким файлам в Reiserfs. Что не удивительно — Крис Мейсон участвовал в её разработке.

Эффективное индексирование каталогов.

Представляется самоочевидным.

Динамическое выделение inodes

Шаг в этом направлении был сделан ещё в XFS.

Перезаписываемые снапшоты

Пожалуй, до сих пор эта идея лучше всего воплощена была в ZFS. В btrfs она дополнена снапшотами снапшотов.

Субтома — отдельные корни внутри единой файловой системы.

Похоже на то, как это реализовано в ZFS — с поправкой на различия терминологии.

Уровни зеркалирования и расщепления данных…

обеспечивающие надёжность или (и) быстродействие.

Контрольные суммы для данных и метаданных, для расчета которых доступны различные алгоритмы.

Обеспечивают восстановление целостности данных при сбоя.

Сжатие данных…

… на предмет экономии дискового пространства.

Интегрированная поддержка множественных устройств, с несколькими алгоритмами raid...

... а именно стриппингом, полной (зеркалирование) и частичной избыточностью. Что делает ненужным отдельные инструменты для создания программных RAID-массивов. Возможность подключения устройств "на лету" полностью перекрывает существующие средства управления логическими томами (LVM).

Онлайновая проверка целостности файловой системы.

Некогда предмет гордости UFS2 во FreeBSD — проверка смонтированных файловых систем в процессе работы.

Очень быстрая оффлайновая проверка целостности файловой системы.

Альтернатива предыдущему методу — если он почему-либо нежелателен: проверка отмонтированных файловых систем. В зависимости от ситуации, и тот, и другой метод обеспечивают быстрое восстановление работоспособности системы после сбоев — при современных объемах дисков это важно не только для серверов.

Эффективное инкрементное резервирование данных и зеркалирование файловых систем.

В комментариях не нуждается. “Не шутите с данными, ибо шутки эти глупы и неприличны”, как сказал бы Козьма Прутков.

Онлайновая дефрагментация файловой системы.

Для Unix-like файловых систем обычно не актуально, но может быть востребовано на файловых системах, сильно заполненных. Вообще, при разработке btrfs большое внимание уделяется поддержки “старых” (не в смысле возраста разработки, а в смысле времени использования) файловых систем.

К этому следует добавить также:

Журналирование по алгоритму Copy on Write

ранее реализованное в ZFS, и

конверсию файловых систем ext2/ext3 в btrfs без потери данных

Особенность, которая, насколько мне известно, не имеет ни аналогов, ни предтеч. Ну а о её значении можно особо не распространяться. Причём предполагается, что со временем механизм конверсии будет распространён и на ext4.

Наконец:

Режим оптимизации для работы на твердотельных устройствах, активизируемый посредством опций монтирования.

Вопрос этот приобретает всё большую актуальность — в связи с ростом объемов SSD-накопителей, падением их стоимости и всё более широким использованием в нетбуках, а в перспективе — и на десктопах. При этом ни одна из современных файловых систем общего назначения не ориентирована на эти устройства. Так что и тут btrfs оказывается уникальной.

Не все из перечисленных особенностей btrfs реализованы в настоящее время, и не всегда в полном объёме. Однако ко времени выхода её релиза (а можно предполагать, что он совпадёт с выходом ядра 2.6.29 — или наоборот) следует ожидать воплощения большей их части.

И тогда возникает вопрос: а его ещё остаётся желать от файловой системы?




Страницы: 1 :: 2 :: 3 :: ... :: 5 :: следующая

Комментарии

Страницы комментариев: 1 :: 2 :: следующая

аноним, Thu Feb 5 19:41:26 2009:
Не очень понятен поросячий восторг по поводу конвертирования ext3 в btrfs. Конверторы из
одной фс в другую существуют в природе уже давно.
Просто они не особо популярны, т.к. это никому
не нужно.
Алексей Федорчук, Thu Feb 5 16:03:55 2009:
> К тому времени, как её допилят, она уже безнадёжно устареет
___
Ага. Потому что к тому времени лично товарисч вот этот анонизмус:
> аноним, четверг, 5 февраля 2009 г. 13:47:49:
___
создаст новую суперфайловую мегасистему, которой

>восторгайтесь сейчас :)
аноним, Thu Feb 5 13:47:49 2009:
К тому времени, как её допилят, она уже безнадёжно устареет, так что восторгайтесь сейчас :)
onanim, Mon Feb 2 01:20:52 2009:
Если допилят - тогда и будем восторгаться и бурно радоваться. А пока что btrfs - нестабильная YAFS
Lena, Sun Feb 1 17:59:50 2009:
Что там была за хрень про шрифты и "налезания"?
Konqueror все пристойно отображает. И даже очень...
Юрий, Fri Jan 30 09:17:06 2009:
Спасибо, хороший обзор.
Qiwichupa, Fri Jan 30 05:22:32 2009:
Интересно что будет насчет утилит восстановления и вообще управления данными. Допустим если прикрутил я диск к уже существующей точке монтирования, а потом мне понадобилось, допустим, сменить один из включенных в эту точку дисков. Прокатит ли простое клонирование, можно ли будет управлять данными - например переносить инфу с одного из дисков на другой, освобождая диск для замены или просто при желании от него избавиться.
Buy, Fri Jan 30 01:34:45 2009:
>"пацан сказал - пацан сделал" зачем это?

А затем, шо btrfs риальна нааармальная тема!
:)))
Интересная статья, вот зажегся тоже потестить.
AVATAR, Thu Jan 29 23:19:36 2009:
"пацан сказал - пацан сделал" зачем это?
Фридрих, Thu Jan 29 21:15:10 2009:
2 аноним, четверг, 29 января 2009 г. 18:25:55:

> кстати, вы видели вообще, как выглядит
> дизайн сайта не с вашими шрифтами?

Видел.

> буквы налезают друг на друга под
> оффтопиком(лиса,асёл), макосью(лиса, сафари)
> и пенгвином (лиса и конкуер)

Конечно ШГ, спору нет, но насчёт налезающих букв - это вы загнули. Под оффтопиком не проверял, но под пингвином (лиса) вроде ничё так, вполне читабельно.

З.Ы. Судя по терминологии, прозреваю в вас ЛОРовский анонимный разум ;-)

Страницы комментариев: 1 :: 2 :: следующая

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds