ZFS pool and filesystem versions

Many articles with ZFS-related topics mention ZFS versions, “ZFS pool versions” and “ZFS filesystem versions”.
What are these and what do the version numbers mean?

ZFS has three main structures exposed to the user – ZFS storage pools, ZFS datasets and ZFS volumes.
A ZFS storage pool consists of one or more block devices (“vdevs”, e.g. hard drives or partitions) that operate in various modes (JBOD, mirror, RAID-Z). ZFS storage pools are operated with the “zpool” command. Each ZFS storage pool can contain ZFS volumes and ZFS datasets. ZFS volumes are virtual block devices that can be used in the operating system like any other block device. ZFS datasets are the user visible ZFS filesystems that contain files and directories and are operated with the “zfs” command.

ZFS storage pools and filesystems have received many new features. Some of these features are not backwards compatible. Each incompatible change leads to storage pool or filesystem version bump. ZFS volumes have no version numbers. ZFS is designed to be backwards compatible – systems with newer versions can operate with pools and filesystems of older versions.
Here are some general rules when working with ZFS storage pools and filesystems:

  1. Systems with a specific storage pool or filesystem version do work with pools or filesystems of a lower (older) version.
  2. Systems with a specific storage pool or filesystem verson do NOT work with pools or filesystems of a higher (newer) version.
  3. Pools and filesystems can be upgraded to a higher version.
  4. Pools and filesystems can NOT be downgraded to a lower version.
  5. Users can specify a custom version number when creating a new pool or filesystem or upgrading an existing one (up to the highest supported version in the system).

The following tables summarize the ZFS pool and filesystem (dataset) versions as of today (updated 18.11.2011):

ZFS Pool Version Table
Version Enhancements
1 initial version
2 ditto blocks
3 hot spares and double-parity RAIDZ
4 zpool history
5 gzip compression for datasets
6 “bootfs” pool property
7 separate intent log devices
8 delegated administration
9 refquota and refreservation properties
10 cache devices
11 improved scrub performance
12 snapshot properties
13 snapused property
14 passthrough-x aclinherit property
15 user/group space accounting
16 STMF property support
17 triple-parity RAID-Z
18 snapshot user holds
19 log device removal
20 compression using zle (zero-length encoding)
21 deduplication
22 received properties
23 slim ZIL
24 system attributes
25 improved scrub stats
26 improved snapshot deletion performance
27 improved snapshot creation performance
28 multiple vdev replacements
29 RAID-Z/mirror hybrid allocator
30 encryption
31 improved ‘zfs list’ performance


ZFS Filesystem (Dataset) Version Table
Version Enhancements
1 initial version
2 enhanced directory entries
3 case insensitive and file system unique identifier (FUID)
4 userquota, groupquota properties
5 system attributes
Posted in ZFS

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>