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. Continue reading →