I recently (i.e. yesterday) upgraded from 22.04 LTS to 24.04 LTS and now I’m noticing that the zfs kernel module is loaded:
Sep 01 13:00:06 desktop incusd[22209]: time="2024-09-01T13:00:06+02:00" level=error msg="Failed getting version during QEMU i>
Sep 01 13:00:06 desktop incusd[22209]: time="2024-09-01T13:00:06+02:00" level=warning msg="Instance type not operational" dri>
Sep 01 13:00:07 desktop kernel: zfs: module license 'CDDL' taints kernel.
Sep 01 13:00:07 desktop kernel: Disabling lock debugging due to kernel taint
Sep 01 13:00:07 desktop kernel: zfs: module license taints kernel.
Sep 01 13:00:08 desktop kernel: ZFS: Loaded module v2.2.2-0ubuntu9, ZFS pool version 5000, ZFS filesystem version 5
I never used or even tried ZFS.
Is this the intended/expected behavior? I never noticed this on 22.04 (with zabbly kernels). Now I’m on 24.04 with stock Ubuntu kernel. It also show up on Apport as NonFree modules and such.
In the Ubuntu Linux kernel, the ZFS kernel module is included and I think enabled by default. Canonical, the company that supports Ubuntu, is investing heavily on using ZFS on Ubuntu.
There are two ways to include ZFS into a Linux distribution. One way is what is Ubuntu doing, including ZFS directly into the Linux kernel. The other way (what Debian and the Zabbly packages are doing), including ZFS kernel modules through DKMS.
When you use Incus, ZFS is a good choice for your storage pool. If you really do not want ZFS, you can disable the loading of the kernel modules (then reboot). Note that the Linux kernel comes with all sorts of functionality, including another big filesystem, btrfs.
I’m aware of Canonical’s position in this matter. The question was more on why the module is actually loaded, seemingly by Incus. All my pools (and filesystems in general) are btrfs.
It’s more a question of curiosity to be honest. In general modules are loaded on demand / if needed.
I now see what you mean. You might need to reboot and try again so that you can figure out which incusd task had the consequence of loading the ZFS kernel module.
My suggestion would be to verify that zfsutils-linux is not installed. If it is installed, uninstall it. Then, reboot and check again whether Incus does something that may load those kernel modules. Incus performs ZFS tasks through the utilities from zfsutils-linux.
Incus doesn’t depend on ZFS, but it does support it.
On startup Incus attempts to initialize all the different storage drivers so that the list of supported/functional storage drivers can be properly exported to the Incus clients (most notably used by incus admin init).
Part of the detection process for ZFS is to check if the kernel module exists and check if the CLI tools are similarly available, this in turn causes the module to be loaded.