LMDE и ZFS

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

Как обычно с каждой новой системой, один из первых вопросов, который интересует меня последнее время — поддержка ZFS. В LM она реализована пакетами одного из PPA-репозиториев — а последние, как мы уже видели в прошлой заметке, в LMDE не поддерживаются. С другой стороны, для неё должны подойти пакеты, собранные для обычного Debian’а — и таких пакетов есть непосредственно на сайте проекта ZFS on Linux.

Так что отправляюсь на соответствующую страницу сайта проекта и обнаруживаю, что поддержка Jessie, на которой базируется наша Betsy, имеет место быть. И чтобы её задействовать, нужно скачать пакетик, содержащий описание :

$ wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_4_all.deb

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

# dpkg -i zfsonlinux_4_all.deb

Увы, в моём случае процесс завершается ошибкой, объясняемой вот таким сообщением:

Unknown Debian GNU/Linux version!
Can not create /etc/apt/sources.list.d/zfsonlinux.list.
See /usr/share/doc/zfsonlinux/zfsonlinux.list.

Так что приходится следовать совету и смотреть указанный файл:

$ < /usr/share/doc/zfsonlinux/zfsonlinux.list

Из его содержимого причина ошибки становится ясной:

## This file is installed by the zfsonlinux package.

deb [arch=amd64] http://archive.zfsonlinux.org/debian %DIST% main
#deb-src http://archive.zfsonlinux.org/debian %DIST% main

# !! Enable these ONLY if you want/need the dailies - latest ZoL code !!
#deb [arch=amd64] http://archive.zfsonlinux.org/debian %DIST%-daily main
#deb-src http://archive.zfsonlinux.org/debian %DIST%-daily main

Ведь наша система носит имя не Jessie, а Betsy, которая, видимо, в пакете не предусмотрено. Кстати, посмотреть содержимое репозитория не получится ни через браузер, ни, скажем, через lftp, так что приходится действовать методом лобового напора. А именно: создаю файл /etc/apt/sources.list.d/zfsonlinux.list, тот самый, что dpkg отказался сгененрировать автоматически (хотя файлы zfsonlinux.gpg и pin-zfsonlinux были благополучно созданы) и вношу туда такие строки:

## This file is installed by the zfsonlinux package.

deb [arch=amd64] http://archive.zfsonlinux.org/debian jessie main
deb-src http://archive.zfsonlinux.org/debian jessie main

# !! Enable these ONLY if you want/need the dailies - latest ZoL code !!
#deb [arch=amd64] http://archive.zfsonlinux.org/debian jessie-daily main
#deb-src http://archive.zfsonlinux.org/debian jessie-daily main

После этого даю команду

$ apt update

нахожу нужный пакет

$ apt search zfs

и устанавливаю его:

$ apt install debian-zfs

В ответ на эту команду следует список её жёстких зависимостей и несколько предлагаемых и рекомендуемых пакетов, из которых я, прервав выполнение, дописываю в строку команды zfs-initramfs. После чего начинается скачивание, сборка и установка модулей, установка утилит поддержки и, наконец, генерация нового initrd.

А завершается всё это дело тем же сообщением об ошибке, что и попытка установить пакет описания репозитория — о невозможности создать файл zfsonlinux.list. Тем не менее, все необходимые пакеты были установлены и работали, новый initrd сгенерировался, и система могла с него загрузиться. Успешно было и выполнение команды

$ sudo modprobe zfs

что было тут же установлено таким образом:

$ dmesg | grep -i zfs
[   19.792308] ZFS: Loaded module v0.6.3-766_gfde0d6d, ZFS pool version 5000, ZFS filesystem version 5

То есть всё связанное с ZFS хозяйство казалось вполне работоспособным, что следовало немедленно проверить на практике.

Для проверки я пожертвовал ещё одним первичным разделом на своём экспериментальном винчестере. И, получив бессрочные права администратора

$ sudo -i

ибо все последующие действия будут выполняться от его имени, создал каталог /home/zlmde для монтирования будущего пула ZFS. Который тоже не замедлил создать:

# zpool create -m /home/zlmde zlmde sdd3

В пуле были созданы файловые системы (dataset в терминологии ZFS):

# zfs create zlmde/myaudio
# zfs create zlmde/myvideo

Установил для них нужные аттрибуты:

# chown -R alv:alv /home/zlmde
# zfs set atime=off zlmde/*
# zfs set xattr=off zlmde/*
# zfs set checksum=off zlmde/*

И выполнил экспортирование пула

# zpool export zlmde

А затем его обратное импортирование:

# zpool import zlmde

И, наконец, убедился, что все мои файловые системы имеют место быть смонтированными куда надо и как надо:

# mount | grep zfs
/home/zlmde on /home/zlmde type zfs (rw,noatime,noxattr,noacl)
/home/zlmde/myaudio on /home/zlmde/myaudio type zfs (rw,noatime,noxattr,noacl)
/home/zlmde/myvideo on /home/zlmde/myvideo type zfs (rw,noatime,noxattr,noacl)

В качестве последнего действия я проверил доступность пула и его dataset'ов в другой системе — для этого и требовался экспорт пула. Например, в собственно Linux Mint, в который я перезагружась, создаю идентичную точку монтирования:

$ sudo mkdir /home/zlmde

Присваиваю ей нужные атрибуты принадлежности:

$ sudo chown -R alv:alv /home/zlmde

И импортирую ранее созданный пул:

$=> sudo zpool import zlmde

После этого команда

$ sudo zpool status zlmde

сообщает об успехе этого предприятия:

[sudo] password for alv:
  pool: zlmde
 state: ONLINE
  scan: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	zlmde       ONLINE       0     0     0
	  sdd3      ONLINE       0     0     0

errors: No known data errors

А команда

$ mount G zfs

показывает все наличные dataset'ы там, где надо:

zlmde on /home/zlmde type zfs (rw,noatime,noxattr,noacl)
zlmde/myaudio on /home/zlmde/myaudio type zfs (rw,noatime,noxattr,noacl)
zlmde/myvideo on /home/zlmde/myvideo type zfs (rw,noatime,noxattr,noacl)

После этого остаётся только придумать, как избавиться от сообщения об ошибке по поводу файла описания репозитория — но об этом как-нибудь в другой раз.

Содержание

LMDE и ZFS: 2 комментария

  1. Помнится, автор не так давно пробовал btrfs как замену zfs под linux, вроде бы даже доволен был. Что же в итоге не устроило в оной, очень даже нативной для linux?

  2. Во-первых, давно, когда ZFS on Linux ещё не было.
    Во-вторых, именно пробовал.
    Не распробовал…

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