Алексей Федорчук
Едва вычитав про поддержку ZFS в инсталляторе Antergos’а, я разумеется, сразу же отправился качать «освежённые» образы 64-битной сборки. И сначала хотел ограничится только minimal’ным вариантом. Ибо для начала задача ставилась очень узкая: проверить, а не врут ли мальчишки? Ведь плавали, знаем, что в этой теме они склонны… ну не совсем чтобы врать, но несколько преувеличивать. А для этой цели минимального образа казалось достаточно.
Однако в процессе скачивания я решил поделиться столь замечательной новостью с товарищами и коллегами. А пока сочинял соответствующую заметку, скачал заодно и образ полный. И, как оказалось, не напрасно. Ибо при установке с минимального образа ни малейшей ZFS не обнаружилось. Там вообще не было никаких опций разметки и выбора файловых систем — всё происходило на автомате, на Ext4. Так что я отложил этот изошник в сторону, и взялся устанавливать Antergos с образа полного. Да, конечно же, для начала — в виртуальной машине. Что, опять же, оказалось правильным.
При использовании полного образа система загружается в Live-режиме со средой GNOME по умолчанию. Где первым и естественным желанием будет убедиться — а не обманули ли с поддержкой ZFS «искаропки»? Сделать это можно, например, такой командой:
# lsmod | grep zfs
Вывод которой скажет нам — нет, не обманули, и все необходимые модули при старте были действительно загружены:
zfs 2633728 1 zunicode 331776 1 zfs zcommon 45056 1 zfs znvpair 61440 2 zfs,zcommon spl 86016 3 zfs,zcommon,znvpair zavl 16384 1 zfs
В том числе и модуль поддержки Solaris Porting Layer:
# lsmod | grep spl spl 86016 3 zfs,zcommon,znvpair
Будучи окрылённым этим обстоятельством, я приступил к установке системы. Процедура эта ничем не отличалась от той, что была описана ранее. Поэтому остановлюсь только на тех её моментах, которые важны в в контексте данного сюжета. И которые начинаются после выбора рабочей среды и дополнительного софта, открытием окна, не вполне точно называемом Тип установки (предполагается, что языком инсталляции был выбран русский, и описанные ранее меры предосторожности относительно раскладок клавиатуры — приняты):
На приведённом скриншоте видно, что в умолчальном режиме автоматической разметки (то есть использовании всего целевого диска с уничтожением его содержимого, если оно имелось) опция Использовать ZFS… имеется. Однако возникает подозрение (в последствие подтверждающееся), что в этом случае пул ZFS и файловые системы на нём будут созданы неким предопределённым образом. А каждому, кто уже имел дело с ZFS, разумеется, хотелось бы как-то контролировать этот процесс. А потому резонным кажется выбор ручной разметки.
Однако тут-то и будет засада. После выбора целевого носителя (если есть, из чего выбирать), создания на нём, при необходимости, таблицы разделов и нового раздела оказывается, что в списке доступных файловых систем как раз ZFS и отсутствует:
Так что, воленс-неволенс, приходится вернуться обратно и, включив соответствующую опцию положиться на автоматику (благо, установкой я занимался в виртуалке — в реале диска, содержимым которого я мог бы пожертвовать, у меня сейчас не имелось):
Хотя и здесь есть некоторые возможности для вмешательства руками. В частности, если в машине имеется более одного диска, можно задать тип пула — с расщеплением (подобно RAID 0), с зеркалированием (аналог RAID 1) или различными степенями избыточности. При установке на одиночный единственным вариантом будет, разумеется, None:
Имя пула определяется произвольно, не рекомендуются только имена, обычно приводимые в примерах (типа tank
, zpool
или rpool
). Ну а опция размера блока зависит от того, каков он физически на целевом носителе. И если там используется Advanced Format, то размер блока в 4 КБ лучше задать явным образом.
После этого появится окно сводки установки, в котором сообщается, что всё, что есть на целевом устройстве, будет удалено. А вместо того на нём будут созданы загрузочный раздел на 512 МБ (с файловой системой ext4, хотя об этом и не говорится вслух), пул ZFS на весь оставшийся объём и «раздел» подкачки внутри него:
О размере области подкачки явным образом также ничего не говорится. И, кстати, после установки определить его размер стандартной командой
$ swapon -s
тоже не получится — она останется безответной. Однако команда
$ sudo zfs list
в моём случае виртуальной машины с 2 ГБ памяти и диском на 64 ГЮ покажет такую картину:
NAME USED AVAIL REFER MOUNTPOINT mypool 6,80G 54,2G 3,70G / mypool/swap 3,09G 57,3G 16K -
То есть под подкачку было отведено полтора объёма оперативной памяти. Однако я забежал вперёд. А пока предстоит создать пользовательский аккаунт, дождаться установки пакетов и выполнить перезагрузку машины. После чего можно заниматься перекраиванием файловых систем внутри пула ZFS по собственному хотению. Благо процесс этот очень прост и многократно описан, в том числе и на нашем Блогосайте (например, здесь).
А в заключение скажу, что вот так, в будничной обстановке, мы стали свидетелями знаменательного события: настоящего прихода ZFS на десктопы применителей. Правда, только применителей Antergos. Но будем надеяться, что — пока. И инициативу его майнтайнеров подхватят, расширят, укрепят и закалят в тестах и инсталляциях создатели более иных дистрибутивов, начиная с Ubuntu’йцев и заканчивая героями фронтира от Fedora.
Потому что это не просто получение применителями Linux’а ещё одной нативной файловой системы (а точнее, системы размещения данных). И не просто очень хорошей системы (к этому вопросу я планирую вернуться в ближайшее время). Это — победа простого человечьего здравого смысла над лицензионными извращениями и юридическим крючкотворством. Ура, товарищи!
Как дела с производительностью? В моём случае mdadm + lvm рвёт в клочья raidz-1, разница в 4 раза.