Why Is ZFS Needed?
As "cloud computing" has required ever growing needs for storage capacity, there has been a need for larger and larger data stores, which has led to the development of ZFS.
Since ZFS has been developed with enterprise use in mind, there are many unique features that have been worked into it. In this article, I'm going to share some details about this filesystem.
Because of some aspects of ZFS which I'll cover later on, this is not a filesystem typically used on desktops or laptops. This file system benefits greatly from having many storage devices, and tons of RAM.
This file system is commonly seen on linux based storage area networks, or SANs, due to the many disks available on the servers that host them, the need for minimal risk of data loss, and the benefit of lots of RAM.
Maximum Storage Capacity
Since ZFS is a 128 bit file system, it has 256 quadrillion zettabytes of storage. This storage capacity is astronomical, as most desktop computers tend to have one terabyte of storage. This means that the largest this filesystem could store is about 232,830,643,653,870,100,000,000 standard desktop computers worth of data. This is awesome, as this lets us not have to worry about a file system type's capacity any time soon.
Unlike most other file systems, ZFS has support for RAID (redundant array of independent disks). This allows RAID configurations to be made without hardware support. RAID is awesome, as a storage device in the system can fail without losing data (different configurations can allow up to half of the drives to fail). This configuration allows for faster access to the data, along with better stability of the system, as drives that fail in the array can normally be "hot swapped", or replaced while the system is turned on.
ARC and L2ARC
Adaptive replacement caching (ARC) is one of my favorite aspects of ZFS, as it enables the most commonly used/needed files to have a copy kept in RAM. Since transferring data to/from RAM is much faster than conventional data storage, the most commonly used files have a copy there, so that when one of those files are needed, it gets pulled from the RAM data storage.
L2ARC is a pretty similar concept. The difference is that L2ARC puts the commonly needed files on SSDs usually, as SSDs are slower than RAM, but much faster than conventional hard drives. Keep in mind that RAM gets wiped on every restart, and you'll notice that L2ARC is extremely useful.