Task:
System config:

'/etc/default/zfs' edited: (current version, tried a number of options)
ZFS_LOAD_KEY='yes'
ZFS_UNLOAD_KEY='no'
ZFS_MOUNT='yes'
ZFS_UNMOUNT='yes'
ZFS_SHARE='yes'
ZFS_UNSHARE='yes'
ZPOOL_IMPORT_ALL_VISIBLE='no'
ZPOOL_IMPORT_PATH="/dev/disk/by-vdev:/dev/disk/by-id:/dev"
VERBOSE_MOUNT='no'
DO_OVERLAY_MOUNTS='no'
ZPOOL_IMPORT_OPTS=""
MOUNT_EXTRA_OPTIONS=""
ZFS_DKMS_ENABLE_DEBUG='no'
ZFS_DKMS_ENABLE_DEBUGINFO='no'
ZFS_DKMS_DISABLE_STRIP='no'
Current Status:
Other things I have tested without success:
Goals:
Questions:
- Proxmox homelab - trying to puzzle this out.
- attempting to use non WWN naming for ZFS pool partitions (leaf vdevs)
- attempting to use '/etc/zfs/vdev_id.conf' aliases
- and, have the designators persist across reboots
System config:
- Proxmox (bare metal) 9.1.4
- zfs pools (partial list)
- 'local-data-00' -- have not been able to successfully export / import, export always results in non-recoverable 'd (device wait) state
- 'local-data-01'
- 'local-scratch-00'

'/etc/default/zfs' edited: (current version, tried a number of options)
ZFS_LOAD_KEY='yes'
ZFS_UNLOAD_KEY='no'
ZFS_MOUNT='yes'
ZFS_UNMOUNT='yes'
ZFS_SHARE='yes'
ZFS_UNSHARE='yes'
ZPOOL_IMPORT_ALL_VISIBLE='no'
ZPOOL_IMPORT_PATH="/dev/disk/by-vdev:/dev/disk/by-id:/dev"
VERBOSE_MOUNT='no'
DO_OVERLAY_MOUNTS='no'
ZPOOL_IMPORT_OPTS=""
MOUNT_EXTRA_OPTIONS=""
ZFS_DKMS_ENABLE_DEBUG='no'
ZFS_DKMS_ENABLE_DEBUGINFO='no'
ZFS_DKMS_DISABLE_STRIP='no'
Current Status:
- '/etc/zfs/vdev_id.conf' has been updated with alias entries
- '/etc/zfs/vdev_id.conf' alias entries are correctly being created as symlinks and have populated '/dev/disk/by-vdev'
- 'rpool' designators are set and persisting
- designators for other pools ('local-data-01' & 'local-scratch-00) show transiently in 'zpool status' after associated export/import but do not persist across reboot
- 100% of the time, including when I shutdown services, exporting local-data-00 results in non-recoverable 'd (device wait) state'
Other things I have tested without success:
- systemctl stop pve-cluster pvestatd pve-ha-lrm pve-ha-crm
- systemctl mask zfs-import-scan.service
- systemctl mask zfs-import-cache.service
- zpool set cachefile=none local-data-00
- zpool set cachefile=none local-data-01
- zpool set cachefile=none local-scratch-00
- sudo update-initramfs -u -k all
- zpool export -f local-data-00 && zpool import -d /dev/disk/by-vdev local-data-00
- zpool export -f local-data-01 && zpool import -d /dev/disk/by-vdev local-data-01
- zpool export -f local-scratch-00 && zpool import -d /dev/disk/by-vdev local-scratch-00
- udevadm trigger
- append 'zfs_import_dir=/dev/disk/by-vdev' to /etc/kernel/cmdline
- proxmox-boot-tool refresh
Goals:
- successfully use '/etc/zfs/vdev_id.conf' aliases and have them persist across reboots.
Questions:
- Is there some trick to this? Is this even possible / supported?
- What would cause a non-recoverable 'd (device wait) state when exporting a pool? How to diagnose? Ideas on fixing?
- Is there a way to do this early in the boot cycle, before the pools are 'locked'?