Устанавливаем ZFS в Linux

Устанавливаем ZFS в Linux. Установка и настройка

Допускаете ли вы возможность того, что можете не сделать своевременно резервную копию важных файлов или папки и по какой-то роковой случайности можете их потерять? Возможна ли ошибочная команда «rm -rf» в вашей музыкальной библиотеке? Могут ли у вас быть повреждены основные системные файлы виртуальной машины? Люди не совершенны и все способны на ошибки, так что, чем скорее вы перейдете на ZFS, тем скорее сможете перестать беспокоиться о безвременной утрате драгоценных данных.

Установка и настройка ZFS в Linux очень проста для большинства дистрибутивов.

Arch или Manjaro linux

У пользователей Arch есть несколько вариантов установки ZFS. Так пакет AUR «zfs-dkms» целесообразен, если вы хотите использовать ветвь ядра LTS. Если нет, то другие два варианта — «zfs-linux-git» и «zfs-linux». Первый пакет, как видно из названия, собран из репозитория ZFS Git и, как следствие, будет получать обновления для более новых ядер намного быстрее. Последнее иногда отстает и порой блокирует обновления ядра ядра на вашем компьютере.
Как правило, лучше использовать «zfs-linux-git», поскольку обновления ядра будут очень быстрыми. Скомпилируйте его следующей командой:

yaourt -S zfs-linux-git # для пользователей yaourt
pacaur -S zfs-linux-git # для пользователей pacaur
sudo systemctl enable zfs.target
sudo systemctl enable zfs-import-cache
sudo systemctl enable zfs-mount
sudo systemctl enable zfs-import.target

Более подробную информацию можно найти на Arch Wiki

Debian

В Debian начало использования ZFS происходит с добавления в файл /etc/apt/sources.list следующего репозитория:

deb http://mirrors.kernel.org/debian/ stretch main contrib

Далее устанавливаем ZFS:

sudo apt update
sudo apt install linux-headers-$(uname -r) zfs-dkms

Apt автоматически включает службы systemd, поэтому все, что вам останется сделать, это перезагрузить машину.

Ubuntu

Начиная с Xenial, Ubuntu включает в себя модуль ядра ZFS. Все, что вам следует сделать, это добавить пользовательские инструменты и перезагрузиться:

sudo apt install zfsutils-linux

Fedora

Если верить ZFSOnLinux Wiki, то пользователи Fedora могут установить ZFS используя следующие простые команды:

sudo dnf install http://download.zfsonlinux.org/fedora/zfs-release$(rpm -E {33d8302486bd10b0fde64d2037652320e6f176a736d71849c0427b0d7398501a}dist).noarch.rpm
gpg --quiet --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-zfsonlinux
sudo dnf install kernel-devel zfs

Эти команды добавят ZoL репозиторий и установят ZFS.

Gentoo

Будучи source-based дистрибутивом, ZFS на Gentoo не требует DKMS. Чтобы установить его, сначала убедитесь, что у вашего ядра есть поддержка сжатия Deflate. В «make menuconfig» включите его:

Cryptographic API -->
        <*> Deflate compression algorithm

Затем разрешите использовать git-версии ZFS, выполнив следующие команды с правами root:

echo "=sys-kernel/spl-9999 **" >> /etc/portage/package.accept_keywords/zfs
echo "=sys-fs/zfs-kmod-9999 **" >> /etc/portage/package.accept_keywords/zfs
echo "=sys-fs/zfs-9999 **" >> /etc/portage/package.accept_keywords/zfs

После чего установите и активируйте ZFS:

Creating a ZFS “partition”

Теперь, когда вы установили поддержку файловой системы, вам нужно создать пул. Пулы могут быть очень сложными, охватывая многие диски и предлагая избыточность. Однако в этом примере будет использоваться один раздел без избыточности. Во-первых, требуется пустой раздел. ZFS в Linux можно использовать в качестве корневой файловой системы, но это не рекомендуется. Поэтому перераспределите другой диск, используя привычный вам инструмент управления разделами, например, GParted. Если вы изменяете размер корневой файловой системы, чтобы освободить место, вам понадобится Live образ, например, GParted Live Disk.

После разбивки и перераспределения создадим новый zpool:

sudo zpool create -m /your/mount/point yourpoolname /dev/sdXY
Устанавливаем ZFS в Linux. Установка и настройка

Использование ZFS в Linux

ZFS оперирует наборами данных(dataset) — которые по сути ячлвются, мини-разделами в томе ZFS. Вы можете монтировать датасеты в любом месте в котором пожелаете. Когда вы делаете снэпшот(snapshot), вы делаете снимок набора данных. Для создания снэпшота, выполните следующую команду:

sudo zfs snapshot yourpoolname/dataset1@snapshotname

ZFS позволяет создавать практически неограниченное количество снэпшотов в датасете. К сожалению, возврат к более раннему снимку требует удаления всех снимков, созданных после него. Откат к более раннему снимку осуществляется так

sudo zfs rollback yourpoolname/dataset1@snapshotname

Еще одна полезная функция ZFS — это функция клонирования. Клоны позволяют дублировать датасеты, не занимая при этом все пространство на диске повторно. Разумеется, все записи в датасет будут использовать дополнительное дисковое пространство. Вы должны сделать снимок датасета, прежде чем сможете клонировать его. Чтобы клонировать датасет, выполните в терминале:

sudo zfs list -t snapshot # List all available snapshots
sudo zfs clone yourpoolname/dataset1@snapshotname yourpoolname/clonename

Чтобы удалить снэпшот выполните:

sudo zfs destroy yourpoolname/dataset1@snapshotname

Для удаления клона выполните:

sudo zfs destroy yourpoolname/clonename

Одним из интересных вариантов использования ZFS в Linux является виртуализация. Сохранение файла образа VM в датасете позволяет легко откатываться и клонировать с минимальными потерями в производительности.

ZFS — очень мощная файловая система с огромным количеством функций. Поскольку невозможно описать их все в одной статье, я пошлю вас знакомиться с фантастической документацией FreeBSD. Хоть документация и написана для FreeBSD, очень многое применимо  в Linux (а также OSX, IllumOS и возможно Windows).  Если вы намерены использовать ZFS, то я рекомендую ознакомиться с понятием наборов данных(dataset).

Статья является переводом с английского статьи  Ryan El Kochta: ZFS Configuration on Linux – Setup and Basics

Читайте также продолжение этой статьи — Устанавливаем ZFS в Linux — часть 2. ZVols, LZ4, ARC, и ZILs


Leave a Comment