fix(clustermgr): minus reserved space once on replica node

. #1000192943

Signed-off-by: slasher <shenjie1@oppo.com>
This commit is contained in:
slasher 2026-04-09 15:07:30 +08:00 committed by 梁曟風
parent 9bff191118
commit 32fa5e55b1
4 changed files with 9 additions and 6 deletions

View File

@ -271,9 +271,6 @@ func (r *ReportChunkArgs) Decode(reader io.Reader) error {
if n != ChunkIDEncodeLen || err != nil {
return fmt.Errorf("invalid source reader, err: %v", err)
}
if err != nil {
return err
}
r.ChunkInfos[i].Id.Unmarshal(raw)
read(&r.ChunkInfos[i].Vuid)
read(&r.ChunkInfos[i].DiskID)

View File

@ -22,6 +22,7 @@ import (
"github.com/cubefs/cubefs/blobstore/clustermgr/base"
"github.com/cubefs/cubefs/blobstore/common/proto"
"github.com/cubefs/cubefs/blobstore/common/trace"
"github.com/cubefs/cubefs/blobstore/util"
"github.com/cubefs/cubefs/blobstore/util/errors"
)
@ -85,6 +86,8 @@ func (b *BlobNodeManager) refresh(ctx context.Context) {
}
nodeSetAllocators[diskType][nodeSet.ID()] = nodeSetAllocator
}
spaceStatInfo.ReservedSpace = util.Min(b.cfg.ReservedSpace, spaceStatInfo.WritableSpace)
spaceStatInfo.WritableSpace = util.Max(0, spaceStatInfo.WritableSpace-spaceStatInfo.ReservedSpace)
for idc := range diskStatInfo {
spaceStatInfo.DisksStatInfos = append(spaceStatInfo.DisksStatInfos, *diskStatInfo[idc])
@ -121,6 +124,8 @@ func (b *BlobNodeManager) refresh(ctx context.Context) {
}
ecIdcAllocators, ecFreeChunk := b.generateDiskSetStorage(ctx, ecDiskSet[diskType], ecSpaceStateInfo, diskStatInfo)
ecSpaceStateInfo.ReservedSpace = util.Min(b.cfg.ReservedSpace, ecSpaceStateInfo.WritableSpace)
ecSpaceStateInfo.WritableSpace = util.Max(0, ecSpaceStateInfo.WritableSpace-ecSpaceStateInfo.ReservedSpace)
// initial ec allocator
diskSetAllocator := newDiskSetAllocator(ecDiskSetID, ecFreeChunk, ecIdcAllocators)

View File

@ -34,7 +34,6 @@ import (
"github.com/cubefs/cubefs/blobstore/common/proto"
"github.com/cubefs/cubefs/blobstore/common/raftserver"
"github.com/cubefs/cubefs/blobstore/common/trace"
"github.com/cubefs/cubefs/blobstore/util"
"github.com/cubefs/cubefs/blobstore/util/errors"
)
@ -1117,8 +1116,6 @@ func (d *manager) generateDiskSetStorage(ctx context.Context, disks []*diskItem,
}
spaceStatInfo.WritableSpace += d.calculateWritable(idcNodeStgs)
}
spaceStatInfo.ReservedSpace = util.Min(d.cfg.ReservedSpace, spaceStatInfo.WritableSpace)
spaceStatInfo.WritableSpace = util.Max(0, spaceStatInfo.WritableSpace-spaceStatInfo.ReservedSpace)
return
}

View File

@ -19,6 +19,7 @@ import (
"github.com/cubefs/cubefs/blobstore/api/clustermgr"
"github.com/cubefs/cubefs/blobstore/common/proto"
"github.com/cubefs/cubefs/blobstore/util"
)
// refresh use for refreshing storage allocator info and cluster statistic info
@ -58,6 +59,9 @@ func (s *ShardNodeManager) refresh(ctx context.Context) {
}
nodeSetAllocators[diskType][nodeSet.ID()] = nodeSetAllocator
}
spaceStatInfo.ReservedSpace = util.Min(s.cfg.ReservedSpace, spaceStatInfo.WritableSpace)
spaceStatInfo.WritableSpace = util.Max(0, spaceStatInfo.WritableSpace-spaceStatInfo.ReservedSpace)
for idc := range diskStatInfo {
spaceStatInfo.DisksStatInfos = append(spaceStatInfo.DisksStatInfos, *diskStatInfo[idc])
}