With the introduction of ZFS feature flags many users have experienced compatibility problems working with ZFS pools on different operating systems or operating system versions. In this article I am providing a table comparing the ZFS Feature Flag support on FreeBSD, Linux (zfsonlinux), Mac OSX (OpenZFS OSX) and illumos (OmniOS).
OpenZFS Feature Flags Compatibility Matrix:
Feature Flag | FreeBSD RELEASE | OpenZFS OSX | zfsonlinux | OmniOS | |||
---|---|---|---|---|---|---|---|
8.4 | 9.2 | 9.3 | 10.2 | 1.3.1 | 0.6.5 | r151014 | |
async_destroy | yes | yes | yes | yes | yes | yes | yes |
empty_bpobj | yes | yes | yes | yes | yes | yes | yes |
lz4_compress | yes | yes | yes | yes | yes | yes | yes |
multi_vdev_crash_dump | no | no | yes | yes | no | no | yes |
spacemap_histogram | no | no | yes | yes | yes | yes | yes |
enabled_txg | no | no | yes | yes | yes | yes | yes |
hole_birth | no | no | yes | yes | yes | yes | yes |
extensible_dataset | no | no | yes | yes | yes | yes | yes |
embedded_data | no | no | no | yes | yes | yes | yes |
bookmarks | no | no | yes | yes | yes | yes | yes |
filesystem_limits | no | no | yes | yes | no | yes | yes |
large_blocks | no | no | no | yes | no | yes | yes |
A detailed description of the feature flags is in the zpool-features(7) manual page.
FreeBSD releases up to 8.3 and including 9.0 and 9.1 do not support feature flags.
UPDATE 23.09.2015: update zfsonlinux to 0.6.5
UPDATE 08.09.2015: add FreeBSD 10.2
UPDATE 16.01.2015: fixed unavailable embedded_data on FreeBSD 9.3, thanks to Dmitry Kononov
UPDATE 12.04.2015: updated zfsonlinux from 0.6.3 to 0.6.4, OpenZFS OSX from 1.3.0 to 1.3.1, OmniOS from r151012 to r151014
If you plan to access your ZFS pools from earlier operating system versions (or other operating systems) you have to consider that if you enable any unsupported features the pool may become read-only or unreadable, depending on the specific feature. Features supported by all systems above are async_destroy, empty_bpobj and lz4_compress.
To create a ZFS pool that is compatible with all operating system versions in the matrix above, use the zpool(8) command with following syntax:
zpool create -d -o feature@async_destroy=enabled -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled [device(s)]
More information:
zpool-features(7) manual page with detailed description of all supported features.
OpenZFS Homepage
ZFS on Linux
OpenZFS on OSX