fix: consider EC shard count in volume.balance capacity calculation (#7034)

* fix: consider EC shard count in volume.balance capacity calculation

* update the implementation of capacityByMaxVolumeCount to include the EC shard usage
This commit is contained in:
FQHSLycopene
2025-07-29 03:24:56 +08:00
committed by GitHub
parent 6a790b1ec1
commit e1f8da0db3

View File

@@ -225,7 +225,11 @@ func capacityByMaxVolumeCount(diskType types.DiskType) CapacityFunc {
if !found {
return 0
}
return float64(diskInfo.MaxVolumeCount)
var ecShardCount int
for _, ecShardInfo := range diskInfo.EcShardInfos {
ecShardCount += erasure_coding.ShardBits(ecShardInfo.EcIndexBits).ShardIdCount()
}
return float64(diskInfo.MaxVolumeCount) - float64(ecShardCount)/erasure_coding.DataShardsCount
}
}