LXF167:Что за штука
|
|
|
Что за штука…BTRFS
Бен Эверард разглядывает новейшую файловую систему Linux.
В
B-T-R-F-S? Язык сломаешь. Более произносимого варианта нет?
О
Ну, некоторые произносят как “Butter FS”, другие предпочитают полную форму: “B-Tree FS”. Кое-кто называет даже “Better FS”, но это объясняется их шкурным интересом к проекту.
В
F-S — это «файловая система»? Файлы-то у меня есть, а вот с систематизацией, признаться, плоховато: хранятся они довольно беспорядочно. Стало быть, она меня спасет?
О
Ага. Ведь это совершенно особая файловая система. Расположение файлов и папок в привычном для вас виде – результат структуры каталогов, и в основе лежит довольно жесткая система, даже если вы этого не замечаете. Например, ваши личные файлы хранятся в папке home/<username>, установленные программы – в другом месте, системные журналы – тоже отдельно... но это я отвлекся. Главное, что расположение файлов к файловой системе не имеет никакого отношения. Файловая система – это способ кодировки всей этой информации на вашем жестком диске (а также USB-носителе, DVD или любом другом файловом хранилище). Благодаря им, ваш компьютер удерживает в памяти множество ноликов и единичек. Именно файловая система позволяет организовать склад данных, чтобы вы могли работать с файлами и каталогами, не думая о том, как или где они расположены.
В
ОК, насчет файловой системы понятно. А что такое В-дерево?
О
Деревья – это тип структуры данных, где информация хранится в узлах, соединенных ветвями. Каждая ветвь обозначает определенный тип отношений. Чем точнее определены эти отношения, тем быстрее будет добавить и найти данные внутри структуры.
B-дерево – особый тип дерева, где число потомков каждого внутреннего узла ограничивается неким диапазоном. Например, в B-дереве 2-3 у каждого узла будет 2 потомка, 3 потомка или ни одного (в последнем случае, узел не будет внутренним). Если вы добавите потомка к узлу, уже имеющему еще три, он распадется на два узла, в каждом из которых будет по два потомка.
Поскольку число потомков ограничено, размер дерева растет (вы можете добавлять данные в вашу файловую систему), а структура остается сбалансированной. То есть, одна часть дерева не перерастет другую.
В
Вся эта информатика, конечно, прекрасна, но что это значит для моих файлов?
О
Это уйма преимуществ, включая клонирование, создание подразделов, сжатие, оптимизацию работы SSD, а также возможность распределять файловые системы на многосоставные устройства.
В
Э, погодите минутку. Не все сразу. Скажем, клонирование: полагаю, это ведь не амбициозный план создания армии штурмовиков?
О
Верно, не он. Это эффективный способ создания новой копии файла. Вместо создания копии используется новый индексный дескриптор, указывающий на те же блоки данных.
В
В смысле, жесткая ссылка? Да я уже сто лет этим пользуюсь.
О
Вы мне не дали закончить! В начале принцип тот же, но если вы вносите изменения в этот файл, создается его копия. То есть если, копируя файл, вы его не меняете, он не займет лишнего места, а внесенные изменения не повлияют на оригинал. Этот метод также называют копированием при записи.
Для операций с отдельными файлами это эффективно, но не революционно. А вот применительно к большим объемам данных – уже впечатляет. К примеру, при создании мгновенных снимков состояния системы. Используя клонирование, вы можете сделать снапшот, практически не забирая дополнительное дисковое пространство. Объем данных увеличивается, только если вы вносите изменения в файлы, и только за счет этих изменений. А чтобы откатить к первоначальному варианту, нужно немногим более, чем пара нажатий клавиш.
В
Так, с клонированием разобрались. Что там дальше?
О
Подтома. Почти такие же, как на диске, только они существуют внутри файловой системы и не зависят от устаревших ограничений оборудования. В чем-то они напоминают папки, но управляются, как устройства. Например, при запуске настройки RAID.
Это позволяет более детально следить за состоянием вашего хранилища данных. Вам по-прежнему все понятно?
В
Подразделы внутри подразделов? Думаю, что да.
О
Отлично. Про сжатие файловой системы уже понятно из самого названия. Оно дает возможность использовать ZLIB и LZO-сжатие на уровне файловой системы. То есть ваши файлы могут использоваться как обычно, при этом занимая меньше места. Насколько именно – зависит от типа файлов. Уже сжатые, такие как фильмы в формате MPEG, песни в MP3 и им подобные, уменьшатся незначительно, а текстовые файлы – намного заметнее.
В
То есть вы бесплатно получаете больше места на диске? Круто!
О
Ну, не совсем бесплатно: отдавать придется не деньгами, но скоростью, ведь на сжатие и распаковку данных вашему компьютеру понадобится время. Окажется ли эта наценка чрезмерной, зависит от вашего оборудования и способа применения компьютера.
В
Ясно. Кажется, вы еще упоминали SSD? Имеются в виду Solid Disk Drives — твердотельные диски?
О
Именно так. В традиционных накопителях данные хранятся на вращающихся дисках. Характеристики производительности у них необычные, поскольку вам приходится ждать, пока считывающее устройство физически доберется до нужных данных.
С развитием файловых систем удалось уменьшить «шаг» таких устройств (почти как для иглы в проигрывателе, или – для самонадеянных юнцов – лазера на CD). Но на SSD вообще ничего не движется, так что об этих хитростях можно просто забыть. Конечно, с SSD имеют место свои заботы, и BTRFS создан для того, чтобы работать на обоих.
Нужно просто сообщить системе, что вы используете SSD, указав при построении флаг -o ssd, и все само образуется, как по волшебству.
В
А многосоставные устройства — это вроде RAID?
О
Ну, BTRFS поддерживает RAID, но это не ново. С ее помощью можно создать единую файловую систему, берущую данные с отдельных устройств, преобразуя их в один гигантский массив.
Накопители могут быть даже разного объема. Как и прочие опции, это дает возможность более гибкой настройки системы.
Есть и другие преимущества, которые в рамках статьи просто не уместились. Узнайте о них подробнее на https://btrfs.wiki.kernel.org.
В
Ого, сколько всего нового. Почему же это все появляется чохом, а не постепенно, как изменения в других файловых системах?
О
Расширенные файловые системы использовались в Linux последние лет десять. В каждой новой версии появлялись новые функции, но все это ограничивалось общностью первичной структуры. BTRFS в корне меняет такой подход. Благодаря полной реконструкции, разработчики смогли внедрить функции, реализация которых прежде казалась невозможной.
Все эти новшества – результат революционных изменений, в противовес постепенным, имевшим место в прежних файловых системах.
В
Звучит действительно революционно. А как мне ее установить?
О
Прежде чем это делать, имейте в виду, что на момент выхода данного номера большинство пока не считает этот продукт готовым к использованию – есть шанс повредить вашу файловую систему. Однако для тестовой системы – вполне подойдет; просто помните, что она может заупрямиться, и что резервная копия – ваш лучший друг.
Проще всего добраться до нее, установив дистрибутив с ее поддержкой. На данный момент, возможность выбора BTRFS при установке дают OpenSUSE 12.2 и Ubuntu 12.10. В других можно установить подраздел, смонтированный в BTRFS. Но ситуация довольно быстро меняется, так что пересмотрите повнимательнее документацию по своему дистрибутиву.
Как вариант, есть еще команда для конвертирования Ext3 и 4 в BTRFS: btrfs-convert. И вновь, она пока недостаточно стабильна, чтобы считаться готовым продуктом, так что создавайте резервные копии или уж действуйте на свой страх и риск. |
«Если, копируя файл, вы его не меняете, он не займет лишнего места.»