This is a follow up on my previous post ZFS pool not importing upon reboot. In there, I documented the issue that my storage pool would not automatically import upon reboot. The take away was that it seemed to be an occasional blip, and that without digging further, I would wait and see if it ever happens again.
Well, during the very next patch and reboot cycle, I had the same issue. After researching some more (1 and 2), the fix was relatively easy:
systemctl status zfs-import-cache.service
make sure it's enabled and runningsystemctl disable zfs-import@mypool.service
do this for every pool; previously, it was enabled in Proxmoxzpool set cachefile=/etc/zfs/zpool.cache mypool
do this for every pool; previously, this value was unset in Proxmoxupdate-initramfs -k all -u
reboot now
Here is the brief explanation:
- ZFS should use
zfs-import-cache.service
to automatically load and import pools; as the name suggests, it uses cache file instead of the actual hard drives, which may or may not be available during boot. zfs-import@mypool.service
is the service that does loading by looking for the hard drives. Disable it for each pool. (why was it enabled in Proxmox?)- manually set the "cachefile" value for each pool. (again, why was it empty?)
Since I installed Proxmox 7 on this machine three years ago and only started to experience ZFS import issue in recent months, I suspect that a recent update brought changes to the order of services being loaded during boot. As a result, the bad default exposed itself.
I know that Proxmos has its quarks when it comes to HA stuff, but this ZFS implementation is another knock on its reputation (for me). If I ever have to do it from scratch, I'll probably go with stock Ubuntu with KVM/Qemu and ZFS.