aboutsummaryrefslogtreecommitdiff
path: root/weed/server
diff options
context:
space:
mode:
authorLHHDZ <shichanglin5@qq.com>2024-09-25 14:04:18 +0800
committerGitHub <noreply@github.com>2024-09-24 23:04:18 -0700
commit4dc33cc143375387e1bb118aa99e929eaa2f8288 (patch)
treee569fa98f6dbee62d48d8de9bbc973d5a3d42cf1 /weed/server
parentd056c0ddf2b7e34a5c7e8fdfe829e5c74e65a068 (diff)
downloadseaweedfs-4dc33cc143375387e1bb118aa99e929eaa2f8288.tar.xz
seaweedfs-4dc33cc143375387e1bb118aa99e929eaa2f8288.zip
fix unclaimed spaces calculation when volumePreallocate is enabled (#6063)
the calculation of `unclaimedSpaces` only needs to subtract `unusedSpace` when `preallocate` is not enabled. Signed-off-by: LHHDZ <shichanglin5@qq.com>
Diffstat (limited to 'weed/server')
-rw-r--r--weed/server/master_grpc_server.go1
-rw-r--r--weed/server/volume_grpc_client_to_master.go8
2 files changed, 9 insertions, 0 deletions
diff --git a/weed/server/master_grpc_server.go b/weed/server/master_grpc_server.go
index 4b5800fbe..256a4be52 100644
--- a/weed/server/master_grpc_server.go
+++ b/weed/server/master_grpc_server.go
@@ -151,6 +151,7 @@ func (ms *MasterServer) SendHeartbeat(stream master_pb.Seaweed_SendHeartbeatServ
if err := stream.Send(&master_pb.HeartbeatResponse{
VolumeSizeLimit: uint64(ms.option.VolumeSizeLimitMB) * 1024 * 1024,
+ Preallocate: ms.preallocateSize > 0,
}); err != nil {
glog.Warningf("SendHeartbeat.Send volume size to %s:%d %v", dn.Ip, dn.Port, err)
return err
diff --git a/weed/server/volume_grpc_client_to_master.go b/weed/server/volume_grpc_client_to_master.go
index 81bb87613..2f9bc5965 100644
--- a/weed/server/volume_grpc_client_to_master.go
+++ b/weed/server/volume_grpc_client_to_master.go
@@ -130,8 +130,16 @@ func (vs *VolumeServer) doHeartbeat(masterAddress pb.ServerAddress, grpcDialOpti
glog.Errorf("Shut down Volume Server due to duplicate volume directories: %v", duplicateDir)
os.Exit(1)
}
+ volumeOptsChanged := false
+ if vs.store.GetPreallocate() != in.GetPreallocate() {
+ vs.store.SetPreallocate(in.GetPreallocate())
+ volumeOptsChanged = true
+ }
if in.GetVolumeSizeLimit() != 0 && vs.store.GetVolumeSizeLimit() != in.GetVolumeSizeLimit() {
vs.store.SetVolumeSizeLimit(in.GetVolumeSizeLimit())
+ volumeOptsChanged = true
+ }
+ if volumeOptsChanged {
if vs.store.MaybeAdjustVolumeMax() {
if err = stream.Send(vs.store.CollectHeartbeat()); err != nil {
glog.V(0).Infof("Volume Server Failed to talk with master %s: %v", vs.currentMaster, err)