If you are new to TrueNAS and OpenZFS, its operations and terms may be a little different than those used by other storage providers. We frequently get asked for the description of an OpenZFS term or how TrueNAS technology compares to other technologies. This blog post addresses the most commonly requested OpenZFS definitions.
ARC |
Adaptive Replacement Cache. A very fast read cache located in memory. A RAM-based cache is called the L1ARC or Level 1 ARC. If persistent memory, such as an SSD, is added for additional read caching, it’s called the L2ARC or Level 2 ARC. |
COW |
Copy-On-Write. OpenZFS uses a copy-on-write file system, where for each write request, a copy is made of the associated disk blocks and all changes are made to the copy rather than to the original blocks. This means that data changes are written to a new location on the disk and then the metadata is updated to point to that new location. In case of an invalid write, the original data is unaffected. Copy-On-Write provides the foundation for the instantaneous space-saving snapshots. |
dataset |
A portion of space in a zpool that emulates a traditional file system. Can be used to segment storage for file-based access protocols like NFS, SMB, AFP, and WebDAV. |
FreeNAS |
The world’s most downloaded Open Source storage operating system. FreeNAS can be installed on 64-bit Intel-based hardware to share data over a network. FreeNAS is the simplest way to create a centralized and easily accessible place for your data. FreeNAS is based on the OpenZFS file system and FreeBSD. The latest version is FreeNAS Corral and it supports Windows, OS X and Unix clients and various virtualization hosts such as XenServer, KVM, bhyve, and VMware using the SMB, AFP, NFS, iSCSI, SSH, rsync, and FTP/TFTP protocols. Other FreeNAS Corral features include virtual machine support and Docker container management. |
geli |
A disk encryption system that uses FreeBSD’s GEOM disk framework. It protects data by encrypting it with a user-supplied encryption key. It provides TrueNAS with full-disk encryption rather than per-filesystem encryption. The underlying drives are first encrypted, then the storage pool is created on top of the encrypted devices. geli implements Data At Rest Encryption (DARE) where application data is always encrypted and data in RAM and the ARC caches is not encrypted. This type of encryption is primarily targeted at users who store sensitive data and want to retain the ability to remove disks from the pool, for example to RMA the disks, without having to first wipe the disks’ contents. |
L1ARC |
Level 1 ARC based in RAM. OpenZFS will always have an L1ARC, whereas the L2ARC (defined below) is optional. An L1ARC is often written by users as ARC. |
L2ARC |
Level 2 ARC. A persistent and non-RAM ARC. When cached data overflows RAM and an L2ARC is present, it will be used to complement the L1ARC. |
RAIDZ |
TrueNAS uses the OpenZFS implementation of RAID. OpenZFS implements a software RAID that is designed to overcome some of the limitations of hardware RAID, such as the write-hole and data corruption that can occur with caching hardware RAID cards. OpenZFS provides three levels of redundancy: RAIDZ1, RAIDZ2, and RAIDZ3. RAIDZ uses distributed parity to ensure no single disk contains all the parity data. OpenZFS also provides striped mirrors (RAID-10). When the zpool is comprised of vdevs in a RAID-10 configuration, you can lose all but one disk in each vdev without losing the zpool. |
RAIDZ1 |
Provides single disk loss protection. Similar to RAID 5. If more than one disk per vdev fails, the data in the zpool is lost. |
RAIDZ2 |
Provides dual disk loss protection. Similar to RAID 6. If more than two disks per vdev fail, then the data in the zpool is lost. |
RAIDZ3 |
Provides triple disk loss protection. If more than three disks per vdev fail, then the data in the zpool is lost. |
Resilver |
When a redundant disk fails and is replaced, the new disk must be incorporated into the vdev. The process of using the parity information distributed across the remaining drives to calculate and write the missing data to the new drive is called resilvering. |
SLOG |
Separate ZFS Intent Log. A ZIL stored on separate media from the data, usually flash such as a solid state device (SSD). Analogous to a write cache. See ZIL below. |
Snapshots
and
clones |
Copy-On-Write allows for instantaneous space-saving snapshots and clones. OpenZFS ensures that new data is written to new blocks, but the old blocks are not reclaimed as free space if a snapshot or clone exists that references that block. A snapshot is read-only and can be used to rollback the file system. A snapshot can also be cloned to allow for read/write usage. A clone operation is instantaneous as it uses pointers to the blocks used by the snapshot. As new data is written to a clone and new blocks are allocated, the apparent size of the clone grows. The snapshot upon which a clone is based cannot be deleted because the clone depends on it. |
TrueNAS |
As the core developers of the FreeNAS Project, iXsystems has created TrueNAS enterprise storage arrays: appliances designed for business-critical data and around-the-clock operation. TrueNAS provides storage services using the OpenZFS file system and has the same familiar FreeNAS 9.10 user interface. It is also backed by full enterprise support. |
vdev |
OpenZFS Virtual Device. A virtual device comprised of a single disk, two or more mirrored disks, or a group of disks managed by a RAIDZ group. A zpool is made up of one or more vdevs. |
ZFS |
Zettabyte File System. A combined next-generation file system, logical volume manager, and software RAID to provide highly scalable storage. It was created by Sun Microsystems Inc. and released in 2005 as Open Source as part of OpenSolaris. In 2010, Oracle bought SUN and ended OpenSolaris. OpenZFS was created as a new Open Source project with the goal to keep OpenZFS in the Open Source community. OpenZFS runs on Solaris, FreeBSD, and Linux variants, and includes built-in data services and features such as replication, deduplication, compression, snapshots, and data protection. |
ZFS send and ZFS receive |
The zfs send command creates a stream representation of a specific snapshot. OpenZFS can create incremental, also written as delta, changes between two snapshots. The zfs send and zfs receive commands can be used to copy a file system to another system, providing the foundation for OpenZFS replication. These commands do not mirror the volume, but instead send the snapshot stream over the network. |
ZIL |
ZFS Intent Log. A storage area on data disks that temporarily holds synchronous writes until they are written to the zpool. When stored on persistent storage separate from the data, it is called a SLOG (Separate ZFS Intent LOG), which is defined above. |
zpool |
ZFS pool. A collection of one or more vdevs that appear as a single storage device accessible to the file system. A zpool is sometimes called a storage pool, pool, volume, or OpenZFS pool. |
zvol |
A portion of space in a zpool reserved for block-level storage access via iSCSI or Fibre Channel protocols. Also known as a LUN. |
OpenZFS is the final word in file systems. It can take a while to master, so we’re here to help answer any questions on OpenZFS that you may have. You can also view the OpenZFS primer that is on the iXsystems support page. If you have more questions or want to know more about how OpenZFS is used by iXsystems, contact info@ixsystems.com or call 1-855-473-7449.
— Gary Archer, Director of Storage Marketing