Quantcast
Channel: Veeam Support Knowledge Base
Viewing all articles
Browse latest Browse all 4362

Failed to load module [veeamsnap] | Failed to load module [blksnap]

$
0
0

Failed to load module [veeamsnap]
Failed to load module [blksnap]

KB ID: 2260
Product: Veeam Agent for Linux | 3.0 | 4.0 | 5.0 | 6.0
Published: 2017-03-13
Last Modified: 2023-07-12

Challenge

A Veeam Agent for Linux backup job fails with either of the following errors:

Failed to load module [veeamsnap] with parameters [zerosnapdata=1 debuglogging=0]

(The number of parameters listed in the error may vary depending on Veeam Agent for Linux version.)

Failed to load module [blksnap]

Cause

This error occurs when the indicated module cannot be loaded. The most common reasons are:

  • The module is not installed
  • The installed module is not compatible
  • DKMS was unable to compile the module
    • The kernel headers package is missing.
    • The kernel headers version and the running kernel version mismatch.
  • Loading 3rd party kernel modules are not allowed.
  • The Linux distribution in use is not supported. For the list of supported distributions, review User Guide: System Requirements.

Solution

About the veeamsnap kernel module

The veeamsnap module is available to be compiled using DKMS or as a precompiled module for select distros (kmod for RHEL/CentOS* or kmp for SLES/openSUSE).

For more information about installation requirements, please see: Veeam Agent for Linux - System Requirements.

*Precompiled veeamsnap kmod is not compatible with Oracle Linux.

About the blksnap kernel module

The blksnap kernel module was introduced with Veeam Agent for Linux 6 and replaces the veeamsnap module for newer Linux kernels. The veeamsnap module supports up to Linux Kernel 5.18, and the blksnap module's minimum Linux Kernel is 5.10.

Similar to the veeamsnap module, the blksnap module is available to be compiled using DKMS or as a precompiled module for select distros (kmod for RHEL/CentOS* or kmp for SLES/openSUSE).

For more information about installation requirements, please see Veeam Agent for Linux - System Requirements.

*Precompiled blksnap kmod is not compatible with Oracle Linux.

Troubleshooting Module Loading

Check if prerequisites for RHEL/CentOS 7.0+ are present

For RHEL/CentOS 7.0+ using Veeam Agent for Linux 4 or newer, ensure that the python3 package is installed and working correctly. If it is not, install/fix it before proceeding with troubleshooting. Python3 is used to load the correct pre-compiled module version into the kernel automatically.

Run the following commands to query if python3 is installed as a package:

rpm -q --whatprovides /usr/bin/python3
rpm -q --whatprovides python3
Example Output:
rpm -q --whatprovides /usr/bin/python3
python3-3.6.8-18.el7.x86_64

rpm -q --whatprovides python3
python3-3.6.8-18.el7.x86_64

Check if the kernel module is installed

Use the following command to determine if the veeamsnap or blksnap module is installed:

For RPM-based distributions:
rpm -qa | egrep -i '(veeamsnap|blksnap)'

If this command returns nothing, then neither module is installed.

Pre-compiled veeamsnap kernel modules will be listed as:

  • kmod-veeamsnap
  • veeamsnap-kmp-default

Pre-compiled blksnap kernel modules will be listed as:

  • kmod-blksnap
  • blksnap-kmp-default
For Debian-based distributions:
dpkg-query -l | egrep -i '(veeamsnap|blksnap)'
If this command returns nothing, then neither module is installed.

Check if the kernel module is loaded

Use the following command to query the state of the veeamsnap or blksnap module:

lsmod | egrep -i '(veeamsnap|blksnap|bdevfilter)'

If the module is loaded, unload it and rerun the backup job. (the job will load the module automatically)

Example:

rmmod veeamsnap

Checking precompiled module compatibility

Each precompiled veeamsnap and blksnap module is built for a specific version of RHEL/CentOS/SLES/openSUSE.

Use the examples below to check if the correct precompiled kenel module is installed.

RHEL/CentOS

Check if the active kernel's major version matches one of the installed modules.

Example:

# uname -r
3.10.0-1160.25.1.el7.x86_64

# find /lib/modules | egrep -i '(veeamsnap|blksnap)
/lib/modules/3.10.0-862.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-1062.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-1127.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-1160.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-123.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-229.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-327.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-514.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-693.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-957.el7.x86_64/extra/veeamsnap.ko

If there are no veeamsnap or blksnap modules for the kernel version, the installed build of Veeam Agent for Linux is not compatible.  Please review KB2804 to determine which build of Veeam Agent for Linux should be installed.
SLES/openSUSE

First, ensure that the kernel version in use corresponds with the OS version. Review SUSE KB#19587 for more information. If the kernel version does not correspond to the OS version, Veeam Agent for Linux and the veeamsnap or blksnap module may not load, or the wrong version may be installed.

The  Veeam Agent for Linux user guide lists which version should be used with each SLES or openSUSE OS version. 

Example:

# hostnamectl

Static hostname: testmachine
Transient hostname: testmachine
Icon name: computer-vm
Chassis: vm
Machine ID: 25433cc502ff0082e5f1ff835c01295b
Boot ID: 1296228f7483469b93db28713a2b40e0
Virtualization: vmware
Operating System: SUSE Linux Enterprise Server 12 SP3
CPE OS Name: cpe:/o:suse:sles_sap:12:sp3
Kernel: Linux 4.4.180-94.141-default
Architecture: x86-64

In this example, the kernel 4.4.180-94.141 is correct for the OS SLES12 SP3 - LTSS.

The Installing Veeam Agent for Linux in SLES user guide page indicates that this  SLES OS version correlates to veeamsnap-kmp-default-5.0.0.4318_k4.4.73_5-2

Reassociate module after kernel upgrade

If the "Failed to load module" error begins appearing after a kernel upgrade that does not change the release (version and SP), execute the following command to link the module to the new kernel and then try to rerun the job:

depmod -a

Troubleshooting DKMS failing to compile module

When using DKMS to compile the kernel module, ensure that the installed kernel-headers package matches the kernel in use. If the kernel-headers package is not installed, or the installed kernel-headers package does not match the kernel in use, you will need to install the matching kernel-headers package.

After installing/updating the kernel-headers package, reinstall Veeam Agent for Linux.

Examples of Matching kernel-headers and kernel:

Example for Debian/Ubuntu:
# uname -r
5.4.0-77-generic


# dpkg-query -l | grep linux-headers
ii linux-headers-5.4.0-77 5.4.0-77.86 all Header files related to Linux kernel version 5.4.0
ii linux-headers-5.4.0-77-generic 5.4.0-77.86 amd64 Linux kernel headers for version 5.4.0 on 64 bit x86 SMP
ii linux-headers-generic 5.4.0.77.80 amd64 Generic Linux kernel headers
Example for Oracle Linux:
# uname -r
4.14.35-1902.303.4.1.el7uek.x86_64

# rpm -qa | grep kernel-uek-devel
kernel-uek-devel-4.14.35-1902.303.4.1.el7uek.x86_64

Using veeamsnap or blksnap module with Secure Boot

If Secure Boot is enabled, the kernel module may not be loaded due to system restrictions. In such a situation, review the following:

  • For the pre-compiled kernel modules (kmod/kmp), the veeamsnap-ueficert or blksnap-ueficert package containing the module key must be enrolled using mokutil to allow the module to load.
  • For DKMS-compiled modules, there is no such package, as it is not possible to automatically sign non-precompiled modules. In this case, you must either sign the module yourself and enroll the key to your system or disable Secure Boot.
  • Veeamsnap-ueficert and veeamsnap (DKMS, kmod, kmp) packages should be of the same release version.

More Information

If the information in this article does not resolve the issue, please open a support case and include the following information.
Starting with Veeam Agent for Linux 6, the commands below do not need to be run, as the built-in log collector will collect the information. Machine using older versions of Veeam Agent for Linux must run the commands below to manually collect the necessary diagnostic information to help Veeam Support investigate issues.

Run each command as root, save the output, and attach it to the support case.

Note: Some commands may return an empty response, be sure to include these results.

(hostnamectl||uname -a)
cat /etc/*release
(rpm -qa||dpkg-query -l) | egrep -i '(veeam|dkms|kernel-headers|kernel.*devel|linux-image|linux-headers)' | sort
dkms status
mokutil --sb-state
mokutil --list-new
find /lib/modules -name '*veeam*' -exec ls -ld {} +
lsmod | grep -i veeam
modinfo veeamsnap
modprobe -vvv veeamsnap
To submit feedback regarding this article, please click this link: Send Article Feedback
To report a typo on this page, highlight the typo with your mouse and press CTRL + Enter.

Viewing all articles
Browse latest Browse all 4362

Trending Articles