ZFS upgrade path

James Edwards jedwards at bsdftw.org
Thu Dec 29 20:10:47 UTC 2011

On Wed, December 28, 2011 12:18, James Edwards wrote:

> There are four disks, all in a single storage pool - tank.
> Here is the naming convention I planned on following after 9.0 is
> released:
> tank/9.0
> tank/9.0/usr
> tank/9.0/var
> tank/9.0/tmp
> and so on
> This way, in theory at least, when 9.1 (or 10.0) is released, I can simply
> create tank/9.1 and the associated data sets, make my changes to /etc and
> /boot, change the zfs bootfs, reboot, and finally upgrade the ZFS pools.
> Is this feasible to do, or are there any caveats/gotchas I'm overlooking?

It took some time to do, but I was able to demonstrate within VirtualBox
that this can be done.

I found it important when creating tank/8.2/usr and tank/8.2/var to
specify 'canmount=off', this way the datasets below it inherit the correct

After installing 8.2, I created tank/9.0-RC3, associated datasets and then
installed 9.0-RC3 to it.  From there, I had to create a loader.conf and
rc.conf, copy the zpool.cache to the dataset, change the bootfs ('zpool
set bootfs=tank/9.0 tank'), change the zfs mountpoints and reboot.  After
I rebooted, I was able to upgrade the zpool to v28.

While this was done from a minimal clean install, it *should* work from a
system that is using the user-land (as long as the daemons are stopped).

More information about the freebsd-questions mailing list