Настройте ZFS в Linux с помощью yum

Я пользователь Fedora Linux, работаю yum upgradeежедневно. Хотя эта привычка позволяет мне запускать все новейшее программное обеспечение (одна из четырех основ Fedora является «первой», и она соответствует этому), она также подчеркивает любую несовместимость между платформой хранения ZFS и новым ядром.

Сначала я просто скомпилировал ZFS вручную из репозитория Git после каждого обновления ядра. Если бы я забыл, ZFS не распознается при следующей загрузке. К счастью, я быстро научился настраивать динамическую поддержку модулей ядра ( DKMS ) для ZFS. Однако это решение не идеально. Во-первых, он не использует мощную систему yum , которая может помочь в разрешении зависимостей и обновлении. Кроме того, с помощью yum довольно легко переключаться между вашим собственным пакетом и исходным пакетом.

В этой статье я продемонстрирую, как настроить репозиторий yum для упаковки ZFS. Решение состоит из двух шагов:

  1. Создание пакетов RPM из репозитория ZFS Git
  2. Настройте репозиторий yum для размещения пакетов

Создание пакетов RPM

Чтобы создать пакеты RPM, вам необходимо установить набор инструментов RPM. Yum предоставляет группы для сборки инструментов:

sudo dnf group install 'C Development Tools and Libraries' 'RPM Development Tools'

После их установки вы должны установить все пакеты, необходимые для сборки ZFS из репозитория ZFS Git. Пакеты относятся к трем группам:

  1. Автоинструменты для создания файлов сборки из конфигураций платформы
  2. Библиотеки для создания ядра ZFS и пользовательских инструментов
  3. Библиотеки для создания пакетов RPM
sudo dnf install libtool autoconf automake gettext createrepo \
    libuuid-devel libblkid-devel openssl-devel libtirpc-devel \
    lz4-devel libzstd-devel zlib-devel \
    kernel-devel elfutils-libelf-devel \
    libaio-devel libattr-devel libudev-devel \
    python3-devel libffi-devel

Теперь вы готовы создавать свои собственные пакеты.

Сборка OpenZFS

OpenZFS предоставляет отличную инфраструктуру. Чтобы его построить:

  1. Клонируйте репозиторий с помощью gitи переключитесь на branch/tag, который вы хотите использовать.
  2. Запустите Autotools, чтобы сгенерировать make-файл.
  3. Запускаем make rpmи, если все работает, файлы RPM будут помещены в папку сборки.
git clone --branch=zfs-2.0.0-rc3 https://github.com/openzfs/zfs.git zfs
$ cd zfs
$ ./autogen.sh
$ ./configure
$ make rpm

Настроить yum repo

В yum репо – это серверный или локальный путь, который включает файлы метаданных и RPM. Потребитель устанавливает файл конфигурации INI, и yumкоманда автоматически разрешает метаданные и загружает соответствующие пакеты.

Fedora предоставляет createrepoинструмент для создания репозитория yum. Сначала создайте репо и скопируйте все файлы RPM из папки ZFS в репо. Затем запустите, createrepo --updateчтобы включить все пакеты в метаданные:

$ sudo mkdir -p /var/lib/zfs.repo
$ sudo createrepo /var/lib/zfs.repo
$ sudo cp *.rpm /var/lib/zfs.repo/
$ sudo createrepo --update /var/lib/zfs.repo

fСоздайте новый файл конфигурации, /etc/yum.repos.dчтобы включить путь репо:

echo \
"[zfs-local]\\nname=ZFS Local\\nbaseurl=file:///var/lib/zfs.repo\\nenabled=1\\ngpgcheck=0" |\
sudo tee /etc/yum.repos.d/zfs-local.repo

$ sudo dnf --repo=zfs-local list available --refresh

Наконец-то вы достигли конца пути! У вас есть работающее репо yum и пакеты ZFS. Теперь вам просто нужно их установить:

sudo dnf install zfs
$ sudo /sbin/modprobe zfs

Запустите, sudo zfs versionчтобы увидеть версию вашей пользовательской среды и инструментов ядра. Поздравляю! У вас есть ZFS для Fedora .