aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-10-09 22:31:30 -0700
committerchrislu <chris.lu@gmail.com>2022-10-09 22:31:30 -0700
commit0623bf582ee6dd7f72f45b7953ddf9a8a293433a (patch)
tree69056664b43f7931d0c53e52dfd8adf884fc24f3
parent98dc1e5c15d0a7e3b7c9dc946f360f236d1c9fc4 (diff)
downloadseaweedfs-0623bf582ee6dd7f72f45b7953ddf9a8a293433a.tar.xz
seaweedfs-0623bf582ee6dd7f72f45b7953ddf9a8a293433a.zip
include ec shard for capacityByFreeVolumeCount
-rw-r--r--weed/shell/command_volume_balance.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/weed/shell/command_volume_balance.go b/weed/shell/command_volume_balance.go
index e13857536..7884fc7a0 100644
--- a/weed/shell/command_volume_balance.go
+++ b/weed/shell/command_volume_balance.go
@@ -202,7 +202,11 @@ func capacityByFreeVolumeCount(diskType types.DiskType) CapacityFunc {
if !found {
return 0
}
- return float64(diskInfo.MaxVolumeCount - diskInfo.VolumeCount)
+ var ecShardCount int
+ for _, ecShardInfo := range diskInfo.EcShardInfos {
+ ecShardCount += erasure_coding.ShardBits(ecShardInfo.EcIndexBits).ShardIdCount()
+ }
+ return float64(diskInfo.MaxVolumeCount-diskInfo.VolumeCount) - float64(ecShardCount)/erasure_coding.DataShardsCount
}
}