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