ZFS / RAIDZ Capacity Calculator (beta)

Inputs:

RAID type - Supported RAID levels are:

Mirror (two-way mirror - RAID1 / RAID10 equivalent);

RAID-Z1 (single parity with variable stripe width);

RAID-Z2 (double parity with variable stripe width);

RAID-Z3 (triple parity with variable stripe width).

Drive capacity - we expect this number to be in gigabytes (powers of 10), in-line with the way disk capacity is marked by the manufacturers. This number will be converted to tebibytes (powers of 2). The results will be presented in both tebibytes (TiB) and terabytes (TB). Note: 1 TB = 1000 GB = 1000000000000 B and 1 TiB = 1024 GiB = 1099511627776 B

Single drive cost - monetary cost/price of a single drive; used to calculate the Total cost and the Cost per TiB. The parameter is optional and has no impact on capacity calculations.

Number of RAID groups - the number of top-level vdevs in the pool.

Number of drives per RAID group - the number of drives per vdev.

Slop space allocation - 1/32 of the capacity of the pool or at least 128 MiB, but never more than half the pool size. [1,2]

% free space limit - recommended free pool space required to ensure best performance. Usually around 20%. [4]

Outputs:

Total raw storage capacity - the sum of physical size of all drives in the pool.

Zpool storage capacity - calculated as the difference between the total raw storage capacity and the loss for drive partitioning and metaslab allocation, but without taking into account parity and padding. This number should be reasonably close to the SIZE value reported by the zpool list command.

Reservation for parity and padding - calculated as described by Matthew Ahrens in [3]. (Not applicable to Mirror vdevs.)

Zpool usable storage capacity - calculated as the difference between the zpool storage capacity and the reservation for parity and padding.

Slop space allocation - see the Inputs section above for description.

ZFS usable storage capacity - calculated as the difference between the zpool usable storage capacity and the slop space allocation value. This number should be reasonably close to the sum of the USED and AVAIL values reported by the zfs list command.

Minimum free space - the value is calculated as percentage of the ZFS usable storage capacity. The percent value shown on the far right is calculated of the total raw storage capacity value.

Practical usable storage capacity - calculated as the difference between the ZFS usable storage capacity and the minimum free space.

Notes:

This tool is a beta version and we welcome your feedback.

This tool does not take into account compression and deduplication.

This tool is designed for the configurations with the whole disks given to ZFS.

The approach and parameters used by this tool are mainly based on the ZFS on Linux and Illumos implementations. In other words - "Your mileage may vary".