An interesting study of ten filesystems on Linux produced by Phoronix in 2013 showed massive differences in filesystems by workload but no clear winners as far as overall performance. What the study showed conclusively is that matching workload to filesystem is the most important choice, and that ZFS falls to the slower side of all mainstream filesystems even in its more modern implementations. Also, that choosing a filesystem for performance reasons without a very deep understanding of the workload will result in unpredictable performance - no filesystem should be chosen blindly if performance is an important factor. Sadly, because the test was done on Linux, it lacked UFS, which is often ZFS' key competitor especially on Solaris and FreeBSD and it lacked HFS+ from Mac OSX.
ZFS can be an excellent choice but it is far from the only one. ZFS comes with large caveats, not the least of which is the operating system limitations associated with it, and while it has many benefits few, if any, are unique to ZFS. And it is very rare that any shop will benefit from every one of them.
As with any technology, there are trade offs to be made. One size does not fit all. The key to knowing when ZFS is right for you is to understand what ZFS is, what is and is not unique about it, what its design goals are, how comparing a storage storage to a pure filesystem produces misleading results and what inherent limitations are tied to it.
ZFS is a key consideration and the common choice when Solaris or FreeBSD is the chosen operating system. With rare exception, the operating system should never be chosen for ZFS, but instead ZFS should be often chosen, but not always, when the operating system is chosen. The OS should drive the filesystem choices in all but the rarest of cases. The choice of operating system is so dramatically more important than the choice of filesystem.
ZFS can be used on Linux but is not considered an enterprise option there, but more of a hobby system for experimentation as no enterprise vendor (such as Red Hat, Suse or Canonical) support ZFS on Linux and as Linux has great alternatives already. Someday ZFS might be promoted to a first class filesystem in Linux but this is not expected as BtrFS has already entered the mainline kernel and been included in production releases by several major vendors.
While ZFS will be seen in the vast majority of Solaris and FreeBSD deployments, this is primarily because it has moved into the position of default filesystem and not because it is clearly the superior choice in those instances or has even been evaluated critically. ZFS is perfectly well suited to being a general purpose filesystem where it is native and supported.
What is ZFS' primary use case?
ZFS' design goal and principal use case is for Solaris and FreeBSD open storage systems providing either shared storage to other servers or as massive data repositories for locally installed applications. In these cases, ZFS' focus on scalability and data integrity really shine. ZFS leans heavily towards large and enterprise scale shops and generally away from applicability in the small and medium business space where Solaris and FreeBSD skills, as well as large scale storage needs, are rare.
Photo courtesy of Shutterstock.