What is Z file system?
The Z File System (ZFS) is an open source logical volume manager and file system originally developed by Sun Microsystems for the Solaris Operating System. It is now used in many operating systems such as FreeBSD, NetBSD, Mac OS X Server 10.5, and various Linux distributions through ZFS-FUSE. The most prominent feature of ZFS is pooled storage, which treats multiple storage devices as one large pool rather than separate devices and logical drives. Storage can be taken from the pool and allocated to other file systems. The pool can be expanded by adding new storage devices to the pool. This is the same method of resource allocation in a multi-tenant cloud environment.
ZFS is an advanced file system developed by Sun Microsystems to overcome many of the problems inherent in previous file system designs, such as error prevention and volume management. ZFS provides data corruption protection, multiple storage device support, and high capacity storage without sacrificing performance, using concepts such as disk management, copy-on-write clones, snapshots, continuous integrity checks, and automatic repair when errors are found. It also uses a data replication model similar to RAID-5 called RAID-Z and eliminates a fatal flaw in RAID-5 called a 'write hole' which causes a problem when a block of data is written into a stripe Power failure or interruption occurs just before the parity block can be written, causing the data to be inconsistent.
Main design goals of ZFS:
Data Integrity - The checksum is always written with data and recalculated when that data is read back. If the checksum does not match, which indicates an error, ZFS tries to correct the error automatically if data redundancy is available (backups).
Pool storage - All storage devices are added to a pool that can be allocated or returned to other file systems. This makes management easier because a single pool is simpler than multiple physical and logical drives. New storage devices can be added to expand the pool.
Performance - The performance is increased through the use of several cache mechanisms. ZFS uses an adaptive replacement cache (ARC), an extended memory-based read cache, a second L2ARC that can be added if necessary, and a disk-based synchronous write cache available through ZIL (ZFS Intent Log).