ZFS is an advanced file system and storage management technology. Using ZFS makes you easy to manage multiple storage devices (usually hard drives), create file system snapshots, work with RAID configurations and mirror disks.
Some common myth about ZFS:
– ZFS is designed exclusively for enterprise level hardware, particularly machines with ECC RAM and a lot of memory
Truth: You can run ZFS storage pools on machines with very little RAM and there is no need to use a particular type of RAM. ZFS file system can be run just about anywhere, including on cheap consumer machines with less than 1GB of memory. The ECC RAM suggestion only applies to enterprise environments with strict integrity requirements where the strongest data integrity guarantees are required. Note that data corruption can happen under any file system, there is nothing special about ZFS that would make it more vulnerable to corruption using non-ECC RAM.
As for the amount of memory ZFS requires, many people think ZFS needs a lot of memory because ZFS will aggressively cache data in memory using Adaptive Replacement Cache (ARC). Basically, a computer running ZFS will try to use up to 50% of the computer’s memory (or all RAM, minus 1GB) for caching. On machines with 2GB of RAM, ZFS will use about 1GB. On machines with 16GB, ZFS might use 12GB. But, like any other file system, when the memory containing cached data is required for something else, ZFS frees the memory and gets out of the way, allowing the operating system to repossess the memory. Unfortunately, people tend to see ZFS using a lot of otherwise unused memory and assume ZFS requires that much RAM, rather than realizing ZFS is only using that memory because the memory is not needed by any other processes. ZFS can be tuned to use a smaller percentage of a computer’s memory, so only 30% or 25% of memory will be used for cached data.
Truth: Linux port of ZFS may not have all the features that are implemented on other operating systems but ZFS runs quite well on Linux. In one of BSD Now podcast, two developers from the OpenZFS project state that the Linux port of ZFS lags only a few months behind parity with other operating system ZFS implementations.
Truth: ZFS and the Linux kernel have licenses which are both open source, but not quite compatible. ZFS is licensed under the Common Development and Distribution License (CDDL), and the Linux kernel is licensed under the GNU General Public License Version 2 (GPLv2). The combination of them causes problems because it prevents using pieces of code exclusively available under one license with pieces of code exclusively available under the other in the same binary. In the case of the kernel, this will prevent from distributing ZFS as part of the kernel binary. However, there is nothing in either license that prevents distributing it in the form of a binary module or in the form of source code.
Truth: While some of the promoted features of ZFS are more suited to businesses than home users, like deduplication or multi-disk RAID configurations or mirroring, ZFS has some features that are very useful in home situations. The ability to quickly make snapshots of the file system is one such feature. Having automated daily or weekly snapshots makes it easy to recover a file (or entire directory) deleted by accident.
Boot environments (closely related to snapshots) are a great tool for people running rolling release distributions. Boot environments make the operating system virtually immune to upgrade issues which is ideal when running development or rolling distributions.
Finally, the ability to store multiple copies of files and automatically recover files that have become corrupted is a great feature to have. ZFS is very robust, generally heals itself automatically if something goes wrong and provides built in repair tools in the event the file system becomes corrupted. All of these features are helpful on any system, whether it is at home or in a data center.
Myths and Misunderstandings: ZFS | Distrowatch