Generation Z
ZFS was released for the Opensolaris project in 2005, so it predates Btrfs, the ‘other’ next-generation filesystem. When Oracle acquired Sun in 2010, no further Opensolaris code was released, leaving ZFS languishing. Even before this though, the CDDL licence under which Opensolaris was released had been considered incompatible with the GPL, so no ZFS code ever made it into the Linux kernel.
The OPENZFS project has continued to work on ZFS and provide Cddl-licensed code for BSD, UNIX, Linux and macos. Under the aegis of OPENZFS, the Zfs-on-linux project provides an out-of-tree module for Linux, which Canonical’s lawyers deemed fit to include in the Ubuntu 16.04 repositories.
It’s not widely used, but this may change in Ubuntu 19.10, which is currently exploring enabling this module by default, and hence offering the option of having a ZFS root filesystem. Of course, this is possible just now; it’s just a little convoluted since you have to manually prepare the live environment, pool layouts and datasets. See all the gory details for yourself at http://bit.ly/lxf252zfs.
ZFS is supported on Openmediavault through a plug-in from the Omv-extras repository, which will save you some command-line incantations. One of the oft-mentioned but rarely understood criticisms of ZFS is its memory requirements. It relies on a lot of data staying in RAM, and that data’s integrity is paramount. As as a result it’s recommended to use only ECC memory with ZFS. Only if you use deduplication does the rule of thumb of the order ‘8GB RAM plus 1GB per TB of used storage’ apply.