[PVE-User] ZFS Upgrade...

Marco Gaiarin gaio at lilliput.linux.it
Tue Sep 16 15:59:20 CEST 2025


We have upgraded our server from PVE6 to PVE8, waited some month to be sure
there's no incompatibilities and now we are ready to remove older kernels,
and upgrade ZFS.

Current situation is:

 root at svpve3:~# zfs upgrade
 This system is currently running ZFS filesystem version 5.
 
 All filesystems are formatted with the current version.

and:

 root at svpve3:~# zpool upgrade
 This system supports ZFS pool feature flags.
 
 All pools are formatted using feature flags.
 
 
 Some supported features are not enabled on the following pools. Once a
 feature is enabled the pool may become incompatible with software
 that does not support the feature. See zpool-features(7) for details.
 
 Note that the pool 'compatibility' feature can be used to inhibit
 feature upgrades.
 
 POOL  FEATURE
 ---------------
 rpool
       draid
       zilsaxattr
       head_errlog
       blake3
       block_cloning
       vdev_zaps_v2
 rpool-backup
       draid
       zilsaxattr
       head_errlog
       blake3
       block_cloning
       vdev_zaps_v2

So, there's no zfs upgrade needed, but zpool is.


First question: i've read:
	https://pve.proxmox.com/wiki/ZFS_on_Linux#sysadmin_zfs_features
and on detail:
	A system with root on ZFS, that still boots using GRUB will become unbootable if a new feature is active on the rpool, due to the incompatible implementation of ZFS in GRUB. 

looking at 'zpool-features', GRUB 2.06 compatible features seems on file
/usr/share/zfs/compatibility.d/grub2-2.06, that report:

 # Features which are supported by GRUB2 versions prior to v2.12.
 #
 # GRUB is not able to detect ZFS pool if snaphsot of top level boot pool
 # is created. This issue is observed with GRUB versions before v2.12 if
 # extensible_dataset feature is enabled on ZFS boot pool.
 #
 # This file lists all read-only comaptible features except
 # extensible_dataset and any other feature that depends on it.

After upgrading the non-boot ZFS pool, i get this:

 root at svpve3:~# zpool get all rpool-backup | grep feature@ | grep enabled | sort
 rpool-backup  feature at allocation_classes     enabled                        local
 rpool-backup  feature at async_destroy          enabled                        local
 rpool-backup  feature at blake3                 enabled                        local
 rpool-backup  feature at block_cloning          enabled                        local
 rpool-backup  feature at bookmarks              enabled                        local
 rpool-backup  feature at bookmark_v2            enabled                        local
 rpool-backup  feature at bookmark_written       enabled                        local
 rpool-backup  feature at device_rebuild         enabled                        local
 rpool-backup  feature at device_removal         enabled                        local
 rpool-backup  feature at draid                  enabled                        local
 rpool-backup  feature at edonr                  enabled                        local
 rpool-backup  feature at enabled_txg            active                         local
 rpool-backup  feature at encryption             enabled                        local
 rpool-backup  feature at filesystem_limits      enabled                        local
 rpool-backup  feature at large_dnode            enabled                        local
 rpool-backup  feature at livelist               enabled                        local
 rpool-backup  feature at multi_vdev_crash_dump  enabled                        local
 rpool-backup  feature at obsolete_counts        enabled                        local
 rpool-backup  feature at redacted_datasets      enabled                        local
 rpool-backup  feature at redaction_bookmarks    enabled                        local
 rpool-backup  feature at resilver_defer         enabled                        local
 rpool-backup  feature at sha512                 enabled                        local
 rpool-backup  feature at skein                  enabled                        local
 rpool-backup  feature at vdev_zaps_v2           enabled                        local
 rpool-backup  feature at zilsaxattr             enabled                        local
 rpool-backup  feature at zpool_checkpoint       enabled                        local
 rpool-backup  feature at zstd_compress          enabled                        local

but it is unclear to me how to check compatibility issue: seems to there's
no 'extensible_dataset' so i'm safe... or better, seems active BOTH on
upgraded and non-upgraded dataset, and was not on feature list to be enabled
by upgrade...

 root at svpve3:~# zpool get all rpool | grep feature@ | grep extensible_dataset
 rpool  feature at extensible_dataset     active                         local

 root at svpve3:~# zpool get all rpool-backup | grep feature@ | grep extensible_dataset
 rpool-backup  feature at extensible_dataset     active                         local


There's some better description of these incompatibilities, or some
reference ZFS or GRUB docs about this?


Thanks.

-- 





More information about the pve-user mailing list