Adventures in ZFS: Time Slider is not Expiring Snapshots on Imported Zpools

Adventures in ZFS: Time Slider is not Expiring Snapshots on Imported Zpools

A few days ago someone contacted me with an interesting issue with regards to the ZFS automatic snapshots, facilitatedby the time slider service.

The Situation

  • OpenSolaris machine with zpool exported.  Time slider was working prior to export.
  • Solaris 11 Express fresh install with zpool imported.

The Symptoms

Basically the core of the issue was that the zpool was from an OpenSolaris machine, in lieu of doing an upgrade from OpenSolaris to Solaris 11 Express, the zpool was exported and imported into a machine which was already running Solaris 11 Express.  Upon the import new snapshots were being created by the time slider service however old ones were not being expired.  You can still manually delete snapshots.

The Solution

The fix is really simple, we just need to upgrade the versions of the zpool and zfs.

# zpool get version tank
NAME  PROPERTY  VALUE    SOURCE
tank  version   14       local
# zfs get version tank
NAME  PROPERTY  VALUE    SOURCE
tank  version   3        -

To resolve the issues you must upgrade the zpool and the zfs to the latest versions, then your automatic snapshots will work fine.

First we must upgrade the zpool to support the zfs.

# zpool upgrade tank
This system is currently running ZFS pool version 31.

Successfully upgraded 'tank' from version 14 to version 31

Now we must upgrade all of the z file systems, if you want to only upgrade certain zfs then you must drop the -a and specify the name specifically.

# zfs upgrade -a
1 filesystems upgraded
6 filesystems already at this version

Now that the versions are all current the automatic snapshots should start cleaning themselves up.