I was tasked to setup automatic updates on some high-performance RHEL8 workstations & servers.
I don't like it, as a lot of things can go wrong with unattended updates, but well, it seems like provoking bugs and data losses is "safer" than having computers not updated at least weekly...
The target computers use zfs and kmod-nvidia (from zfsonlinux.org and elrepo.org respectively); both RPMs need a matching kernel "version", so the first safety measure I would like to implement is to ensure that when a new kernel is available then the installed zfs and kmod-nvidia (or their available update) are compatible with it.
For eg. just now there's a new kernel:
$ sudo dnf update --assumeno
Updating Subscription Management repositories.
Last metadata expiration check: 0:57:59 ago on Thu 28 Nov 2024 12:08:30 AM CET.
Dependencies resolved.
==========================================================================================================================================================
Package Architecture Version Repository Size
==========================================================================================================================================================
Installing:
kernel x86_64 4.18.0-553.30.1.el8_10 rhel-8-for-x86_64-baseos-rpms 10 M
Upgrading:
bpftool x86_64 4.18.0-553.30.1.el8_10 rhel-8-for-x86_64-baseos-rpms 11 M
kernel-headers x86_64 4.18.0-553.30.1.el8_10 rhel-8-for-x86_64-baseos-rpms 12 M
kernel-tools x86_64 4.18.0-553.30.1.el8_10 rhel-8-for-x86_64-baseos-rpms 11 M
kernel-tools-libs x86_64 4.18.0-553.30.1.el8_10 rhel-8-for-x86_64-baseos-rpms 10 M
pam x86_64 1.3.1-36.el8_10 rhel-8-for-x86_64-baseos-rpms 748 k
python3-perf x86_64 4.18.0-553.30.1.el8_10 rhel-8-for-x86_64-baseos-rpms 11 M
webkit2gtk3 x86_64 2.46.3-2.el8_10 rhel-8-for-x86_64-appstream-rpms 28 M
webkit2gtk3-jsc x86_64 2.46.3-2.el8_10 rhel-8-for-x86_64-appstream-rpms 4.5 M
Installing dependencies:
kernel-core x86_64 4.18.0-553.30.1.el8_10 rhel-8-for-x86_64-baseos-rpms 43 M
kernel-devel x86_64 4.18.0-553.30.1.el8_10 rhel-8-for-x86_64-baseos-rpms 24 M
kernel-modules x86_64 4.18.0-553.30.1.el8_10 rhel-8-for-x86_64-baseos-rpms 36 M
Transaction Summary
==========================================================================================================================================================
Install 4 Packages
Upgrade 8 Packages
Total download size: 202 M
The installed kmod-nvidia seams compatible, as both the new kernel and the NVidia driver start with 4.18.0-553:
$ sudo dnf repoquery --requires kmod-nvidia | awk '$1 == "kernel"'
kernel >= 4.18.0-553.el8_10
But I don't know what to say about zfs, as there's no mention of any kernel requirement in its RPM:
$ sudo dnf repoquery --requires zfs
Updating Subscription Management repositories.
/bin/sh
/usr/bin/python3.6
libblkid.so.1()(64bit)
libblkid.so.1(BLKID_1.0)(64bit)
libc.so.6(GLIBC_2.28)(64bit)
libcrypto.so.1.1()(64bit)
libdl.so.2()(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libnvpair.so.3()(64bit)
libnvpair3(x86-64) = 2.1.15-1.el8
libnvpair3(x86-64) = 2.1.15-2.el8
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.12)(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
librt.so.1()(64bit)
librt.so.1(GLIBC_2.3.3)(64bit)
libtirpc.so.3()(64bit)
libudev.so.1()(64bit)
libudev.so.1(LIBUDEV_183)(64bit)
libuuid.so.1()(64bit)
libuuid.so.1(UUID_1.0)(64bit)
libuutil.so.3()(64bit)
libuutil3(x86-64) = 2.1.15-1.el8
libuutil3(x86-64) = 2.1.15-2.el8
libz.so.1()(64bit)
libzfs.so.4()(64bit)
libzfs5(x86-64) = 2.1.15-1.el8
libzfs5(x86-64) = 2.1.15-2.el8
libzfs_core.so.3()(64bit)
libzpool.so.5()(64bit)
libzpool5(x86-64) = 2.1.15-1.el8
libzpool5(x86-64) = 2.1.15-2.el8
openssl
rtld(GNU_HASH)
sysstat
systemd
util-linux
zfs-kmod = 2.1.15
How can I verify that the installed (or available update of) zfs is compatible with the new kernel?