Better reporting of total/free usable capacity of the cluster (#15230)

The current code uses approximation using a ratio. The approximation 
can skew if we have multiple pools with different disk capacities.

Replace the algorithm with a simpler one which counts data 
disks and ignore parity disks.
This commit is contained in:
Anis Elleuch authored and GitHub committed 2022-07-06 13:29:49 -07:00
1 parent dd839bf295
commit 8d98282afd
7 files changed
+39 -27

No files matched your search

+1 -1
View File
@@ -1277,7 +1277,7 @@ func deleteObjectPerfBucket(objectAPI ObjectLayer) {
func validateObjPerfOptions(ctx context.Context, objectAPI ObjectLayer, concurrent int, size int, autotune bool) (sufficientCapacity bool, canAutotune bool, capacityErrMsg string) {
storageInfo, _ := objectAPI.StorageInfo(ctx)
capacityNeeded := uint64(concurrent * size)
capacity := uint64(GetTotalUsableCapacityFree(storageInfo.Disks, storageInfo))
capacity := GetTotalUsableCapacityFree(storageInfo.Disks, storageInfo)
if capacity < capacityNeeded {
return false, false, fmt.Sprintf("not enough usable space available to perform speedtest - expected %s, got %s",