Antergos и якобы ZFS, а также попутные соображения

Алексей Федорчук

В первой заметке про «освежённый» Antargos было сказано, что в нём была обещана поддержка ZFS в инсталляторе, именуемом Cnchi. Однако, вчитавшись, я понял: обещание это касалось светлого будущего, некоторой перспективы, ибо формулировалось буквально следующими словами:

Добавление модулей ядра для ZFS, подготовленных к поддержке ZFS в Cnchi v0.14.

Что, разумеется, следовало скорее понимать так: поддержка ZFS появится в инсталляторе грядущей версии 0.14 (текущая его версия, на момент сборки «освежёбраза» — 0.12).

Увидеть любой дистрибутив Linux’а, устанавливаемый на zpool штатным его инсталлятором, без шума и пыли, стало голубой мечтой моей старости с того момента, как я узнал о существовании проекта ZFS on Linux http://zfsonlinux.org/. Поэтому я не мог пройти мимо возможности поглядеть, насколько приблизились к её реализации майнтайнеры Antergos’а.

Правда, будучи знакомым с обещаниями такого рода в некоторых других дистрибутивах (например, в Sabayon’е), которые при детальном рассмотрении оказывались несколько преувеличенными, я осуществил этот погляд в Virtualbox’е. И не в Antergos’е, где виртуалку ещё предстояло установить и настроить, а в LM 17.3 Rosa, где, как и во всех Ubuntu’идах, и то, и другое выполняется — проще некуда, даже если бы хотелось (о чём говорится в соответствующем цикле).

Далее я создал и настроил виртуальную машину, включив EFI:

ant-vbox_000

И в live-режиме присобачил к ней ещё один, новосозданный, диск (как добавить диск уже существующий, было описано ранее):

ant-vbox_001

Каковой и появляется в списке устройств при повторном запуске виртуальной машины в live-режиме:

ant-vbox_002

Ибо ZFS показывает себя во всём блеске именно в многодисковых конфигурациях.

Меню начальной загрузки в EFI-режиме выглядит так:

ant-zfs-vbox_001

Если стразу же после загрузки Live-среды запустить инсталлятор — никакого намёка на поддержку ZFS в нём, разумеется, не обнаружится. Что и не удивительно — в виртуальной системе не имеется ни spl-, ни zfs-модулей. Хотя соответствующие пакеты имеются в официальном репозитории, где их можно отыскать и отметить для установки через Pamac:

ant-zfs-vbox_002

Кстати, запускать Pamac лучше всего таким образом:

$ sudo pamac-manager

Команда sudo в live-режиме Antergos’а беспарольна. А вот при установке через Pamac, запущенный обычным образом, пароль будет запрошен. А каков он, этот пароль, я так и не нашёл. Да, честно говоря, особенно и не искал…

В общем, после нажатия соответствующей кнопки выводится список пакетов, подлежащих установке:

ant-zfs-vbox_003

А потом они буквально мгновенно оказываются помеченными как установленные. Однако искать бинарные модули там, где им положено располагаться (то есть в /lib/modules/4.2*), бесполезно (да и не успели бы они откомпилироваться за такое короткое время). Вместо этого в каталоге /usr/src обнаруживаются исходники и spl-, zfs-модулей и сопутствующих утилит.

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

Как-нибудь я и с мужем могу.

И заниматься этим в live-режиме, то есть по определению «на один раз», ни малейшего желания не возникает. Тем более, что по том всё равно систему на zpool тоже придётся устанавливать «как-нибудь», и это «как-нибудь» многократно описывалось ранее для разных дистрибутивов, в том числе и для Archlinux’а.

В общем, остаётся констатировать, что светлое будущее, в котором реализуется моя голубая мечта, по прежнему остаётся в отдалённой перспективе. Хотя, казалось бы, никаких принципиальных сложностей для её осуществления не видно. Более того, это можно сделать двумя путями.

Первый путь прост — в наглую забить на несовместимость лицензий ядра Linux и ZFS, и включить бинарные модули поддержки последней в установочные образы дистрибутивов. Да, это значит не просто поступиться принципами, но и в ступить «с законами в конфликт». Хотя и согласуется со здравым смыслом.

Однако в своё время Брайан Беллендорф придумал ловкий финт ушами для преодоления этого противоречия в мировом масштабе — распространение исходников для сборки модулей поддержки ZFS отдельно от исходников ядра. А в масштабе одного отдельно взятого дистрибутива можно пойти дальше. И просто встроить в инсталлятор скрипт, вызываемый при выборе ZFS в списке доступных файловых систем. И выполняющий те же действия, которые мы проделываем при включении поддержки ZFS в загруженной live-среде или уже установленной системе. После чего автоматизировать процессы создания ZFS-пула и datasets на нём — как это проделывается для BTRFS с её subvolumes в инсталляторах некоторых дистрибутивов (например, openSUSE).

Я понимаю, что на пути технической реализации этой принципиально простой схемы, вероятно, встретится немало сложностей. Однако, как мне кажется, дело того стоит, не так ли?

Добавить комментарий