ZFS is a [[CDDL]] licensed file system written in LANG.
- [Website](https://openzfs.org/wiki/Main_Page)
- [Source](https://github.com/openzfs/zfs)
- [Documentation](https://openzfs.github.io/openzfs-docs/)
> **OpenZFS** is an open-source storage platform. It includes the functionality of both traditional file systems and volume manager.
# Notability
OpenZFS is supported by teams from multiple backgrounds and operating systems and used by:
- [[Lawrence Livermore National Laboratory]]
- [[Canonical]] (for [[Ubuntu]])
-
# Philosophy
Originally built for Solaris as a proprietary file system, then became available under the CDDL. [[Oracle Corporation]] later closed further development, but the OpenZFS project lives on without their involvement.
# OS Support
- [[Solaris]] ([[#Oracle ZFS]])
- [[Illumos]] ([[#Illumos ZFS]])
- [[FreeBSD]]
- [[Linux]]
- [[MacOS]] (O3X [fork](https://github.com/openzfsonosx/openzfs-fork))
# Features
- Protection against data corruption. Integrity checking for both data and metadata.
- Continuous integrity verification and automatic “self-healing” repair
- Data redundancy with mirroring, RAID-Z1/2/3 [and DRAID]
- Support for high storage capacities — up to 256 trillion yobibytes (2^128 bytes)
- Space-saving with transparent compression using LZ4, GZIP or ZSTD
- Hardware-accelerated native encryption
- Efficient storage with snapshots and copy-on-write clones
- Efficient local or remote replication — send only changed blocks with ZFS send and receive
## Illumos ZFS
While [[Illumos]] is part of the OpenZFS group, their implementation is in their own source [tree](https://github.com/illumos/illumos-gate/tree/master/usr/src/common/zfs) and changes more slowly.
A summary of the supported features here would be ideal.
## Oracle ZFS
Oracle has mostly disbanded the teams that had worked on Solaris but it has no doubt diverged.
# Tips
## Adding Drives
You cannot *add* single drives to a ZFS pool.
However, you can:
- Swap out a drive for a larger one
- Double the number of drives in your pool
- *Destroy* the pool and re-create it with a larger number of drives (this will **lose data** - you must have everything backed up before doing this)
# References
- https://str.llnl.gov/2018-01/lee
- https://arstechnica.com/gadgets/2016/02/zfs-filesystem-will-be-built-into-ubuntu-16-04-lts-by-default/
- https://www.wundertech.net/how-to-add-a-disk-to-an-existing-pool-in-truenas/