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


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

Trackbacks

Trackback specific URI for this entry

This link is not meant to be clicked. It contains the trackback URI for this entry. You can use this URI to send ping- & trackbacks from your own blog to this entry. To copy the link, right click and select "Copy Shortcut" in Internet Explorer or "Copy Link Location" in Mozilla.

No Trackbacks

Comments

Display comments as Linear | Threaded

No comments

The author does not allow comments to this entry