In the past customers painted themself into a corner, when they did a rather large jump with their OS versions, upgraded their app as well, upgraded the zpool afterwards to get a new feature in ZFS and then tried to get back to their old boot environment with the old OS version. It didn’t worked.

The reason is simple: Solaris can only import pools that have a version number equal or less to the one that’s running on the system. Solaris can’t import a zpool with a higher version number. So you can import for example a rpool from Solaris 11 (no SRU) to an Solaris 11 SRU 30, but you can’t import an rpool created by Solaris 11 SRU 30 with zpool version 47 into a Solaris 11 without any SRU.

In order to make customers aware of this situation, Solaris 11 SRU 30 now warns you:

root@solaris:~# zpool upgrade rpool
This system is currently running ZFS pool version 47.

rpool is on version 44 and will not upgrade without making BEs un-bootable

When upgrading the system will tell you which boot environments won’t boot after the upgrade:

root@solaris:~# zpool upgrade -f -V 47 rpool
This system is currently running ZFS pool version 47.

Upgrading to version 47 will make these BEs un-bootable
FMRI                        Pool Version
--------------------------- ------------
be://rpool/solaris          44
be://rpool/solaris-backup-1 44
Pool 'rpool' upgraded from version 44 to version 47
root@solaris:~

That said it’s always a good practice to wait with the upgrade of the ZFS filesystem until you are sure, that you won’t have to go back to an older OS release that may not support the new ZFS filesystem.

Written by

Joerg Moellenkamp

Grey-haired, sometimes grey-bearded Windows dismissing Unix guy.