Я собрал все грабли, но установил Veeam Agent на Oracle Linux 6.10

Под катом особенности установки Veeam Agent на сервер Oracle Linux 6.10. Все встреченные в процессе инсталляции ошибки и пути их исправления.

TL;DR – список команд в самом конце.

Прежде чем подумать об использовании агентов для резервного копирования серверов, стоит убедиться, что агент поддерживает версию операционной системы, на которую его планируется установить.

Проверим список всех поддерживаемых ОС для Veeam Agent версии 4.0 по ссылке.

В отношении Oracle Linux и поддержки в документации указаны следующие версии:
Oracle Linux 6 – 8.2 (RHCK)
Oracle Linux 6 (starting from UEK R1) – Oracle Linux 8.0 (up to UEK R6)

Правда с небольшой сноской – «Pre-built binary veeamsnap kernel module packages are not compatible with these distributions. Use the dkms packages instead

Как видно из документации, агент поддерживает OL начиная с версии 6, вплоть до версии 8.2. Поддерживаются ядра как RHCK – Red Hat Compatible Kernel, так и UEK – Unbreakable Enterprise Kernel.

Вводные:

[root@ol-10-host ~]# cat /etc/oracle-release
Oracle Linux Server release 6.10

[root@ol-10-host ~]# uname -r
4.1.12-124.48.2.el6uek.x86_64

Veeam самой актуальной на момент написания статьи версии – 10.0.1.4584 с агентом 4.0.1.2365.

Займемся инсталляцией агента

Создаю новую Protection Group, в которую я добавляю свой хост под управлением Oracle Linux 6.10.

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

Обратимся к логам, которые находятся в:

C:\ProgramData\Veeam\Backup\Rescan\Rescan_of_Test

C:\ProgramData\Veeam\Backup\ – Место, где Veeam хранит свои логи.
Rescan\Rescan_of_Test – это логи хостов в Protection Group (моя группа называется Test).
Находим лог с говорящим именем – Task.ol-10-host.vmik.lab

Переходим в конец лога и сразу же бросается в глаза ошибка:

[SshEpInvoker]     Error: Package: veeamsnap-4.0.1.2365-1.noarch (/veeamsnap-4.0.1.2365-1.noarch)
[SshEpInvoker]                Requires: dkms
[SshEpInvoker]     Exit code: [1]

Вспоминаем сноску выше, а также находим некоторую информацию в документации:

dkms — required by the veeamsnap package for building the kernel module for Veeam Agent for Linux Driver.

Кажется, все понятно. На хосте должен быть установлен пакет dkms, но его нет. Займемся установкой dkms в Oracle Linux:

# yum install dkms
Loaded plugins: security, ulninfo
Setting up Install Process
No package dkms available.
Error: Nothing to do

Неожиданно и, одновременно, вполне ожидаемо. В стандартных репозиториях данного пакета может и не быть.

По запросу Oracle Linux 6 dkms первой же ссылкой будет статья от Oracle в которой написано, что пакет dkms имеется в репозитории EPEL (Extra Packages for Enterprise Linux), но только для версии Oracle Linux 7 и выше. Oracle Linux 6 этот пакет обошел стороной.

Некоторое время поисков не вывело меня на «легальный» способ установки dkms в Oracle Linux, поэтому я решил воспользоваться пакетом dmks из EPEL репозитория, заботливо предоставленного Fedora Linux.

# rpm -ivh https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/Packages/d/dkms-2.4.0-1.20170926git959bd74.el6.noarch.rpm

Retrieving https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/Packages/d/dkms-2.4.0-1.20170926git959bd74.el6.noarch.rpm
warning: /var/tmp/rpm-tmp.invfo2: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
error: Failed dependencies:
        elfutils-libelf-devel is needed by dkms-2.4.0-1.20170926git959bd74.el6.noarch
        gcc is needed by dkms-2.4.0-1.20170926git959bd74.el6.noarch
        kernel-devel-uname-r is needed by dkms-2.4.0-1.20170926git959bd74.el6.noarch

Зависимости, они повсюду. Смотрим, в каком пакете у нас может быть kernel-devel-uname-r

# yum provides kernel-devel-uname-r
kernel-devel-2.6.32-754.35.1.el6.x86_64 : Development package for building
: kernel modules to match the kernel

По итогу нам необходимо установить пакет kernel-devel, также дополнительные зависимости в виде gcc и elfutils-libelf-devel:

# yum install kernel-devel elfutils-libelf-devel gcc

Вновь устанавливаю dkms. В этот раз успешно:

Возвращаюсь в консоль Veem, нахожу хост с OL и сперва удаляю все, что он попытался установить до этого, затем пробую установить агента вновь:

Уже лучше, но все еще не то:

Процесс установки прошел немного дальше, но как можно заметить, теперь у нас новая ошибка:

«Failed to install Veeam Agent for Linux: non-matching package versions»

В логах тоже не особо информативно

«Failed to execute command modinfo, output: ERROR: modinfo: could not find module veeamsnap»

Очевидны проблемы с модулем veeamsnap. Поиски выводят на очередную KB от Veeam. Согласно KB проверяем статус dkms на машине, где устанавливается агент:

# dkms status
veeamsnap, 4.0.1.2365: added

Как можно заметить, модуль добавлен, но не скомпилирован. Пробуем скомпилировать модуль veeamsnap:

# dkms build -m veeamsnap -v 4.0.1.2365
Your kernel headers for kernel 4.1.12-124.48.2.el6uek.x86_64 cannot be found at /lib/modules/4.1.12-124.48.2.el6uek.x86_64/build or /lib/modules/4.1.12-124.48.2.el6uek.x86_64/source.

Понятно, отсутствуют требуемые исходные коды текущего ядра для сборки модуля. Устанавливаем:

# yum install kernel-uek-devel-`uname -r` kernel-headers

Yum установит пакет kernel-uek-devel версии, аналогичной текущему работающему ядру. Пробуем вновь выполнить dkms build:

# dkms build -m veeamsnap -v 4.0.1.2365
Kernel preparation unnecessary for this kernel.  Skipping...
Building module:
cleaning build area...
make -j1 KERNELRELEASE=4.1.12-124.48.2.el6uek.x86_64 -C /lib/modules/4.1.12-124.48.2.el6uek.x86_64/build M=/var/lib/dkms/veeamsnap/4.0.1.2365/build......
cleaning build area...
DKMS: build completed.

Теперь проверим статус dkms:

# dkms status
veeamsnap, 4.0.1.2365, 4.1.12-124.48.2.el6uek.x86_64, x86_64: built

Как можно заметить, статус veeamsnap изменен с added на built.

Возвращаюсь в консоль Veeam и запускаю процесс установки агента без предварительного удаления всех компонентов.  Система очень быстро рапортует о том, что агент уже установлен и работает:

Создаю задачу резервного копирования, пробую сделать резервную копию всей машины:

Failed to load module [veeamsnap] with parameters [zerosnapdata=1 debuglogging=0 snapstore_block_size_pow=14 change_tracking_block_size_pow=18 logdir=/var/log/veeam fixflags=0 logmaxsize=15728640]. 

Очередная ошибка.

Возвращаюсь в консоль Veeam и пробую вновь переустановить агент. На этот инсталлятор сообщает об успехе на всех этапах установки.

Важный момент, сперва я удаляю все остатки агента через Uninstall, затем устанавливаю заново через Install:

Вновь запускаю задачу резервного копирования, пробую сделать резервную копию всей машины. Успешно:

Вот так, через несколько разных документаций устанавливается агент под Oracle Linux 6.

В качестве заключения:

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

# yum install kernel-devel elfutils-libelf-devel gcc
# rpm -ivh https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/Packages/d/dkms-2.4.0-1.20170926git959bd74.el6.noarch.rpm
# yum install kernel-uek-devel-`uname -r` kernel-headers

Теперь можно устанавливать агент и, скорее всего, он даже установится с первого раза без чтения документации.

Leave a Reply

Your email address will not be published. Required fields are marked *