В прошлой новелле говорилось о файловых системах, которые можно назвать традиционными: вне зависимости от их возраста, они основаны на принципах, давно применяемых во всех файловых системах UNIX-подобных операционок.

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

Правда, в настоящее время таких файловых сред существует, насколько мне известно два. Из которых Linux’ом поддерживается… эээ… полторы. Первая — btrfs, которая поддерживается как нативная, хотя и в экспериментальном пока режиме. Вторая же — ZFS, с нативностью которой возникает ряд оговорок, о которых я скажу позднее.

Начнём с btrfs, которую прочат в файловые системы будущего. Как уже сказано выше, это – интегрированная среда, включающая файловую систему и систему управления томами. Последнее достигается за счёт использования так называемых субтомов (subvolumes) — самостоятельных частей файловой системы, не имеющих, однако, фиксированного размера, и разрастающихся, в пределах выделенного под них раздела, по мере заполнения.

Забегая вперёд, отмечу, что номенклатура субтомов отличается от таковой разделов и выглядит так: @/субтом1, @/субтом2 и так далее, причём имя субтома выбирается абсолютно произвольно. Хотя желательно вкладывать в него смысл, понятный хотя бы создателю. Это нам понадобится в Новелле тридцать седьмой.

Когда (и если) btrfs утвердится как стандартная (она до сих пор имеет статус экспериментальной), то система управления логическими томами — LVM, упомянутая в конце предыдущей новеллы, превратится в анахронизм.

Из других особенностей btrfs следует отметить механизм копирования при записи (copy-on-write), создание моментальных снимков текущего состояния файловой системы (снапшотов), компрессия данных, способствующая не столько экономии места на диске, сколько быстродействию считывания, оптимизация для работы с SSD-накопителями, увеличивающая скорость удаления с них файлов и способствует их «долголетию».

Кроме того, btrfs отличается рекордным быстродействием, оставляя позади по большинству показателей все традиционные файловые системы. Правда, операция по удалению большого количества мелких файлов не является её сильной стороной.

Очень важно, что btrfs даёт возможность безболезненной конверсии в неё из ext2fs/ext3fs, а в последнее время и из ext4fs, даже для корневого раздела. Возможна также и обратная процедура.

Из кардинальных недоработок btrfs отмечается отсутствие в ней средства проверки целостности файловой системы, аналогичного утилите fsck для семейства ext2/ext3/ext4. Точнее, такое средство — btrfsck есть, но эта утилита в настоящее время только выявляет ошибки, но не способна их исправить. Этим и объяснялся её экспериментальный статус — то есть неготовность к промышленному использованию. Однако тестовая версия полнофункциональной btrfsck уже доступна, и в скором времени можно ожидать её стабильной реализации.

О ZFS нужно сказать лишь несколько слов, и исключительно для полноты картины: в Linux практического применения она (пока?) не имеет. Эта файловая среда была разработана фирмой Sun, ныне в Бозе почившей, для использования в ОС Solaris. И успешно портирована на FreeBSD. Как и btrfs, это интегрированная файловая среда, объединяющая функции собственно файловой системы, системы управления логическими томами, а отчасти и программных RAID. Точнее, наоборот — btrfs возникла позже ZFS и отчасти под её влиянием.

До недавнего времени ZFS не могла напрямую поддерживаться ядром Linux как нативная из-за несовместимости лицензий. И использование её было возможно только через механизм FUSE (Filesystem in Userspace — файловая система в пользовательском пространстве), из-за чего она теряла большинство своих преимуществ, в частности, быстродействие. Однако пару лет назад Брайан Белендорф (Brian Behlendorf) нашёл чисто техническое средство борьбы с юридическим крючкотворством.

Это — обычный модуль ядра Linux, распространяемый под лицензией CDDL, отдельно от GPL-лицензированного кода ядра этой ОС. Чем и обходится антагонистическое противоречие — запрет на распространение бинарников, в которых смешан код под этими лицензиями. А не так давно (в январе 2011 года) индийская компания KQ Infotech выпустила финальную версию модуля, основанную на разработках Брайана и готовую к практическому использованию. Правда, насколько я знаю, он (пока?) не включён в состав ни одного дистрибутива Linux.


Назад | К содержанию | Вперёд