CentOS, ZFS и свежее ядро

27 февраля 2019

  • Подключаем репозитарий ELrepo:
    • rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    • yum install -y http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
  • Устанавливаем ml-ядро и средства разработки:
    • yum --enablerepo=elrepo-kernel install -y kernel-ml kernel-ml-devel kernel-ml-headers
    • grub2-set-default 0
    • reboot
  • Подключаем репозиторий ZFS:
    • yum install -y http://download.zfsonlinux.org/epel/zfs-release.el7_4.noarch.rpm
    • gpg --quiet --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-zfsonlinux
  • Устанавливаем ZFS:
    • yum install -y zfs
  • Проверяем наличие модуля и загружаем его:
    • dkms status
    • spl, 0.7.1, 4.12.8-1.el7.elrepo.x86_64, x86_64: installed
      zfs, 0.7.1, 4.12.8-1.el7.elrepo.x86_64, x86_64: installed
    • dkms autoinstall
    • modprobe zfs

Пояснения и подводные камни:

  • Главный подводный камень — необходимость явно устанавливать kernel-ml-devel и -headers.
    • В противном случае установка пакета zfs вызовет по автоматическим зависимостям установку пакета kernel-devel, который относится не к ядру из ELrepo, а к стандартному ядру 3.10 из RHEL/CentOS 7.x
    • В результате DKMS не сумеет собрать модули ZFS для ml-ядра из-за отсутствия сборочных исходников для него.
  • Кроме сборки модуля ядра через DKMS, существует вариант с установкой готового модуля (т.н. “kABI-tracking kmod”).
    • Достоинство: сервер не превращается в сборочную помойку.
    • Недостаток: готовый модуль собирается только под официальное ядро, поэтому для ядер из ELrepo данный вариант неприменим.
  • Репозитарий elrepo-kernel:
    • ..по умолчанию отключен (“enabled=0”), чтобы избежать автоматической установки новых ядер при “yum update/upgrade”, поэтому мы явно включаем его через “--enablerepo”
    • ..содержит две серии пакетов с ядром — kernel-ml для самых свежих и kernel-lt для стабильных. Данная инструкция проверялась только с ml-ядрами, но любители стабильности могут смело использовать её для lt.

Документация:



← Назад в Блог