Explain Parity, Storage efficiency and Raw versus Usable - allanrogerr/public GitHub Wiki

See https://min.io/product/erasure-code-calculator

Example scripts. All are raw numbers and require application of storage efficiency

Raw Capacity

mc admin info ns-1 --json | jq . | grep -i totalspace | cut -d':' -f2- | sed -e "s/,$//" | numfmt --to=iec-i --suffix=B --format="%9.2f"
99.44GiB

=

Usable Capacity

mc admin info ns-1 --json | jq . | grep -i availspace | cut -d':' -f2- | sed -e "s/,$//" | numfmt --to=iec-i --suffix=B --format="%9.2f"
92.29GiB

+

Usage Internal

mc admin info ns-1 --json | jq . | grep -i usedspace | cut -d':' -f2- | sed -e "s/,$//" | numfmt --to=iec-i --suffix=B --format="%9.2f"
7.16GiB

How to determine storage efficiency

You are using EC:4 (standardSCParity=4) with 4 servers of 4 drives each of 5TiB. These 16 drives with 16 drives per set (totalDrivesPerSet=16) mean that you have a stripe size of 16. Your storage efficiency is therefore 12/16. So with a total raw capacity 80TiB (sum of totalspace=80TiB), you can actually use (12/16)*80TiB=60TiB. So the usableAvailableSpace=(12/16)*43.68TiB=32.76TiB and usableUsedSpace=(12/16)*36.48TiB=27.36TiB

Back to the original matter, the Operator Console and its below numbers are raw, i.e. without applying the storage efficiency due to your parity.

These numbers look a bit out of date compared with the json output you provided above:

Raw Capacity: 80.0 Ti, of which you can actually make use (12/16)*80.0 Ti=60TiB Usable Capacity: 43.8 Ti, of which you can actually use for new data (12/16)*43.8 Ti=32.85TiB Usage Internal: 36.2 Ti, of which you have actually used (12/16)*36.2 Ti=27.15TiB