ZFS Capacity Calculator

Estimate usable ZFS pool space for mirrors, RAIDZ1, RAIDZ2, and RAIDZ3, including slop space, then copy a zpool create command.

ZFS capacity calculator

Estimate usable pool space for mirrors and RAIDZ, including OpenZFS slop space. Copy a zpool create command when the layout looks right.

Presets
Vdev layout
Topology
Advanced: ashift, recordsize, slop

Padding and slop are planning estimates. Compression, snapshots, and metadata also change what zfs list reports.

32 TB
29.1 TiB usable
Raw total
48 TB
Before slop
32 TB
Slop reserved
1 TB
Efficiency
67%
Fault tolerance
2 disks per vdev
Recommended fill (80%)
25.6 TB
zpool create command

Replace /dev/sd* with /dev/disk/by-id/ paths. Prefer whole disks. Creating a pool destroys existing data on those devices.

Compare layouts for these disks

Layout Usable Efficiency Fault tolerance

Runs in your browser. Nothing is uploaded.

Estimate usable space for an OpenZFS pool before you build it on TrueNAS, Proxmox, or a Linux box. Choose mirrors or RAIDZ, set vdev width, and this ZFS capacity calculator subtracts SPA slop space by default. Advanced options add ashift and recordsize padding for RAIDZ. Copy a zpool create command when the layout looks right. For mdadm RAID see the RAID calculator; for Btrfs profiles see the Btrfs RAID calculator. Part of the Linux tools.

How this ZFS capacity calculator estimates usable space

A ZFS pool is a stripe of vdevs, created with zpool create. Capacity is the sum of the vdevs, and a vdev is only as large as its smallest disk. This is a planning estimate — compression, snapshots, special vdevs, and dataset layout all change what zfs list reports.

LayoutUsable (before slop)Min disks / vdevFailures per vdev
StripeAll disks (no redundancy)1None
N-way mirrorOne disk per vdev2n − 1
RAIDZ1(n − 1) × d31
RAIDZ2(n − 2) × d42
RAIDZ3(n − 3) × d53

OpenZFS then reserves slop space so the pool can still complete copy-on-write when it is nearly full: 1/32 of the pool, at least 128 MiB, and at most 128 GiB on OpenZFS 2.0.7 and later. RAIDZ also pads stripes to a multiple of parity + 1 sectors; narrow vdevs with a small recordsize waste more. Leave recommended fill at 80% — ZFS slows down well before 100%.

FAQ

How much space does RAIDZ2 use?

RAIDZ2 spends two disks per vdev on parity, so six 8 TB disks in one RAIDZ2 vdev start from 4 × 8 TB of data space. ZFS then reserves slop space (usually 1/32 of the pool, capped at 128 GiB on modern OpenZFS) and may pad RAIDZ stripes based on ashift and recordsize. The number above includes those deductions when those options are on.

What is ZFS slop space?

OpenZFS keeps a small slice of the pool free so copy-on-write and deletions can still run when the pool is nearly full. That reservation is 1/32 of pool capacity, at least 128 MiB, and at most 128 GiB on OpenZFS 2.0.7 and later. This calculator subtracts slop by default.

Mirror vs RAIDZ for a homelab?

Mirrors (especially several 2-way mirror vdevs) give better random I/O and faster resilvers, at about 50% efficiency. RAIDZ2 is the usual capacity pick for six or more large disks because two disks can fail per vdev. RAIDZ1 is a poor match for big HDDs: a rebuild is long and a second failure during that window is uncomfortably likely.

What is ashift?

ashift is log2 of the physical sector size ZFS uses. 12 means 4 KiB sectors and is the default for modern disks. 9 is 512-byte sectors; 13 is 8 KiB. A wrong ashift wastes space and throughput. This calculator defaults to 12 and uses it with recordsize to estimate RAIDZ padding.

Does this ZFS capacity calculator upload my pool layout?

No. It runs entirely in your browser. Disk sizes never leave your machine.

Looking for more Linux how-tos? Browse the Linux guides or the rest of the tools.