WintelGuy.com
ZFS / RAIDZ Capacity Calculator (beta)
RAID type:
Drive capacity (GB):
Drive sector size:
Single drive cost:
Number of drives per RAIDZ group:
Number of RAIDZ groups:
ZFS record size:
Take into account:
Slop space allocation
% free space limit

RAID type:RAID-Z1 (Single parity with variable stripe width)
Number of RAID groups:1
Number of drives per RAID group:5
Total number of drives:5
Drive capacity (GB):500
Drive capacity (TiB):0.454747
(TiB)(%)
Total raw storage capacity:2.273737100
Zpool storage capacity:2.26562599.64
Reservation for parity and padding:0.45312519.93
Zpool usable storage capacity:1.81250079.71
Slop space allocation:0.0566412.49
ZFS usable storage capacity:1.75585977.22
Minimum free space:
Practical usable storage capacity:1.75585977.22
Single drive cost:75
Cost per TiB usable:213.57
Total cost:375.00

Inputs:

RAID type - Supported RAID levels are:

  • 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 tebibyte (TiB) as well. Note: 1 TB = 1000 GB = 1000000000000 B and 1 TiB = 1024 GiB = 1099511627776 B

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

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

Slop space allocation - 1/32 of the capacity of the pool or at least 128MiB, 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].

Zpool usable storage capacity - calculated as 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 zpool usable storage capacity. The percent value shown on the left 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".

See also:
ZFS Storage Overhead
File / Disk Size Converter

Information Sources:
[1] zfs_space_check
[2] spa_slop_shift
[3] ZFS RAIDZ stripe width, or: How I Learned to Stop Worrying and Love RAIDZ
[4] ZFS Administration, Part VIII- Zpool Best Practices and Caveats