veeam backup agent: Module veeamsnap not found in directory

У меня довольно специфический вопрос, и я некоторое время "хожу кругами" и не могу понять, в каком месте я ошибаюсь и делаю что то "не то".

В проекте, в котороем я работаю, принято использовать veeam backup (community edition). Это значит, что на сервера устанавливается veeam backup agent, иструкция по установке которого лежит тут.

Этот агент начинает общаться с сервером бэкапов, и "сливать" ему бэкап - образы - ну, в общем, бэкапить то, что я ему скажу.

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

Но вот беда. После того, как я устанавливаю backup agent, настраиваю его и заупскаю процесс бэкапа - бэкап не происходит. При этом сервер мне присылвает письмо, в котором содерждится ошибка

    Failed to create volume snapshot
    Failed to take volume snapshot
    Failed to perform backup
    Child execution has failed. Exit code: [1]
    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]
    Processing finished with errors at 2022-06-02 13:12:07 UTC

Ключевым здесь является, конечно же, "Failed to load module [veeamsnap]"

На машинке, на которой я пытаюсь делать бэкап, картина такая:

    konst@pve:~$ sudo dkms status
    veeamsnap, 5.0.2.4567: added
    konst@pve:~$ sudo modprobe veeamsnap
    modprobe: FATAL: Module veeamsnap not found in directory /lib/modules/5.15.30-2-pve

При этом на диске, как мне кажется, есть исходники этой штуки.

Потому что поиск veeamsnap на диске даёт такой результат:

    konst@pve:~$ sudo find / -name veeamsnap
    /var/lib/dkms/veeamsnap
    /usr/share/doc/veeamsnap

А при заходе в /usr/src/veeamsnap-5.0.2.4567 я вижу много .c и.h - файлов.

Есть статья, которая рассказывает, как скомпилировать соответствующий модуль ядра, при этом она начинается со слов о том, что "Please note that for Veeam Agent for Linux 2.0.0.400 packages with pre-compiled modules are available.".

То есть - "не беспокойтесь, Вам ничем таким заниматься не надо!"

Но в статье про инсталляцию - ни слова о том, что надо как тоотдельно этот модуль ядра устанавливать.

И теперь - вопрос: что же мне сделать, чтобы бэкап заработал?

Самое обидное - мне (с функциональной точки зрения) просто нафиг не нужен этот модуль. Все файлы на моент запуска процесса бэкапа будут закрыты, потму что docker-контейнеры - остановлены. Я бы обошелся простым zip-архивом, но нельзя - стандарт...

Небольшое дополнение

Еще одна вещь, которая буквально взрывает мне мозг. Берем статью по проблеме "Failed to load module [veeamsnap]"

Там английским по белому написано "Используйте команду"

    dpkg-query -l | grep veeamsnap

"Если эта команда ничего не возвращает - значит, модуль у Вас не происнталлирован"

А у меня - возращает!!!

    ii  veeamsnap                            5.0.2.4567                     all          Veeam Agent for Linux (kernel module)

Далее: команда

    lsmod | grep veeamsnap

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

    sudo modprobe -r veeamsnap

говорит, что

    modprobe: FATAL: Module veeamsnap not found.

В общем, я явно запуталмся в том, откуда и как этот модуль берется и как проверить, есть он, или его нет.

А вот еще дополнительная информация, которая, к сожалению, не добавляет понятности:

    konst@pve:~$ dpkg-query -l | grep veeam
    ii  veeam                                5.0.2.4567                     amd64        Veeam Agent for Linux
    ii  veeam-release-deb                    1.0.8                          amd64        Veeam Backup for GNU/Linux repository
    ii  veeamsnap                            5.0.2.4567                     all          Veeam Agent for Linux (kernel module)


    konst@pve:~$ dpkg-query -s veeam
    Package: veeam
    Status: install ok installed
    Priority: standard
    Section: admin
    Installed-Size: 50000
    Maintainer: Veeam Software Group GmbH <[email protected]>
    Architecture: amd64
    Version: 5.0.2.4567
    Depends: libfuse2, libacl1, libattr1, libstdc++6, libgcc1, lvm2, libc6, libblkid1, libncursesw6 | libncursesw5, veeamsnap (= 5.0.2.4567), libmagic1
    Conflicts: veeam-nosnap
    Conffiles:
     /etc/veeam/veeam.ini 77c0376a77ca22ac0782e309240d3e9d
    Description: Veeam Agent for Linux
     Veeam Agent for Linux a simple, FREE backup agent designed to ensure
     the Availability of your Linux server instances, whether they reside in the
     public cloud or on premises.


    konst@pve:~$ dpkg-query -s veeamsnap
    Package: veeamsnap
    Status: install ok installed
    Priority: standard
    Section: admin
    Installed-Size: 623
    Maintainer: Veeam Software Group GmbH <[email protected]>
    Architecture: all
    Version: 5.0.2.4567
    Depends: dkms (>= 2.1.0.0)
    Description: Veeam Agent for Linux (kernel module)
     This kernel module implements snapshot and changed block tracking
     functionality used by Veeam Agent for Linux - simple and FREE backup agent
     designed to ensure the Availability of your Linux server instances, whether
     they reside in the public cloud or on premises.

Ответы (2 шт):

Автор решения: blessed58reg
$ sudo apt-get install linux-headers-$(uname -r)
→ Ссылка
Автор решения: sergpas

oel8.8:

# yum install kernel-devel elfutils-libelf-devel gcc
# rpm -ivh https://archives.fedoraproject.org/pub/archive/epel/8.8/Everything/x86_64/Packages/d/dkms-3.0.12-1.el8.noarch.rpm
# yum install kernel-uek-devel-`uname -r` kernel-headers
 поставить агента (from gui) и узнать версию
# dkms status
veeamsnap/6.1.0.1498: added
компильнуть
# dkms build -m veeamsnap -v 6.1.0.1498
будут ошибки
# cat /var/lib/dkms/veeamsnap/6.1.0.1498/build/make.log  
исправим (закоментим)
nano /usr/src/kernels/5.15.0-103.114.4.el8uek.x86_64/Makefile (/usr/src/kernels/5.15.0-202.135.2.el8uek.x86_64/Makefile)
# KBUILD_CFLAGS  += -ftrivial-auto-var-init=zero
# KBUILD_CFLAGS  += -fzero-call-used-regs=used-gpr
и для версии 8.9
# nano  /usr/src/kernels/5.15.0-202.135.2.el8uek.x86_64/include/linux/fortify-string.h
/*#pragma GCC diagnostic ignored "-Wattribute-warning"*/

# dkms build -m veeamsnap -v 6.1.0.1498
теперь ошибок не должно быть
# dkms status
veeamsnap/6.1.0.1498, 5.15.0-202.135.2.el8uek.x86_64, x86_64: built
→ Ссылка