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 } }