Attempting to rename ZFS Pool Partitions (leaf vdevs) - Very limited success

Spereicle

New Member
Dec 28, 2024
2
0
1
Task:
  • 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'
Screenshot 2026-01-27 004322.png


'/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'?