Incus bug with ZFS and VM images on alpine linux

I found an issue in alpine linux when testing zfs with incus on alpine. I would like to try and fix it, but I don’t know enough about zfs issues to really dig into it.

I’m hoping that maybe an expert like @stgraber or somebody could shed some light on what may be happening here and what I could try to look into. Whatever the issue is, it seems alpine-specific.

Please see the issue report here:

On most systems, you have udev handling this:

stgraber@dakara:~$ find /lib/udev/ | grep -i zv
/lib/udev/zvol_id
/lib/udev/rules.d/60-zvol.rules
stgraber@dakara:~$ cat /lib/udev/rules.d/60-zvol.rules
# Persistent links for zvol
#
# persistent disk links: /dev/zvol/dataset_name
#
# NOTE: We used to also create an additional tree of zvol symlinks located at
#       /dev/dataset_name (i.e. without the 'zvol' path component) for
#       compatibility reasons. These are no longer created anymore, and should
#       not be relied upon.
#       

KERNEL=="zd*", SUBSYSTEM=="block", ACTION=="add|change", PROGRAM=="/lib/udev/zvol_id $devnode", SYMLINK+="zvol/%c"
stgraber@dakara:~$ 

This effectively reacts to a new /dev/zd* device showing up, runs zvol_id on it and creates the expected /dev/zvol/XYZ symlink which Incus then uses.

If your system doesn’t use udevd, then you’d need whatever handles dynamic devices on your system to perform the equivalent action.

Thanks for pointing me in the right direction.
zfs-udev package was needed.
Cheers!