TrueNAS NAS Storage: ZFS Capacity, RAIDZ, and Real Usable Space
TrueNAS uses OpenZFS, which reports space differently from classic RAID. The RAID calculator models one vdev with OpenZFS's published reserve and the way ZFS reports RAIDZ space, and shows its assumptions.
See exactly how much usable storage your configuration delivers.
TrueNAS and ZFS
TrueNAS uses OpenZFS as both file system and volume manager. ZFS builds redundancy into the pool itself: drives form vdevs (mirrors or RAIDZ groups), and vdevs form a pool.
RAIDZ Types
- RAIDZ1: one parity disk per vdev. (n − 1) × the disk size. At least 2 disks. Survives one failed disk.
- RAIDZ2: two parity disks. (n − 2) × the disk size. At least 3 disks. Survives two.
- RAIDZ3: three parity disks. (n − 3) × the disk size. At least 4 disks. Survives three.
- Mirror: every disk holds a copy; capacity is one disk. Attaching another disk adds a copy, not capacity.
- Stripe: no redundancy.
OpenZFS recommends between 3 and 9 disks in each RAIDZ vdev, for performance.
What the Calculator Applies
- Slop reserve: OpenZFS holds back 1/32 of the pool (about 3.1%), capped at 128 GiB and never less than 128 MiB. With less free space than that, most writes fail, though deleting files and most admin actions can still use half of it.
- How ZFS reports RAIDZ space: OpenZFS reports RAIDZ pool space as if every block were 128K, the default recordsize. Smaller blocks use RAIDZ less efficiently (OpenZFS's own example: a 3-disk RAIDZ1 stores 4K records at 50% efficiency and 128K records at about 66%), so a pool of small files fills sooner than the reported free space suggests.
The RAID calculator lists its other assumptions on the page (one vdev, no special, log or cache devices, no compression).
The 80% Guideline
TrueNAS calls 80% full a starting point, not a hard limit: write-once archive pools can reasonably run to 90 or 95%, while pools with heavy random I/O may need to stay below 80%. At about 96% full ZFS switches to a slower allocation method that most workloads will notice. Set the calculator's fill threshold to suit your pool.
Growing a Pool
- Adding a disk to a RAIDZ vdev (RAIDZ expansion) is a feature of OpenZFS 2.3.0. It keeps the parity level, can be repeated, and the new disk must be at least as large as the smallest in the vdev. Blocks written before the expansion keep their old data to parity ratio, so an extended vdev can report less space than a new vdev of the same width until old data is rewritten. Check that your TrueNAS version includes it.
- Replacing disks with larger ones adds space only after every disk in that mirror or RAIDZ group is larger (autoexpand, off by default).
RAID keeps a NAS running through a drive failure. It is not a backup: deletion, ransomware, a failed rebuild or a dead NAS can still take everything, so keep a separate copy.
Frequently Asked Questions
Why is ZFS capacity harder to predict than classic RAID?
Because RAIDZ space depends on block size as well as disk count, and ZFS reports space on a 128K-block basis. The calculator shows the figure ZFS reports after the slop reserve; real usable space for small files is lower. The jro.io OpenZFS Capacity Calculator models more ZFS detail for advanced layouts.
Does this apply to every TrueNAS edition?
The capacity rules come from OpenZFS, so they apply to any system running the same OpenZFS version. RAIDZ expansion needs OpenZFS 2.3.0 or later.