diff options
| author | LHHDZ <shichanglin5@qq.com> | 2024-09-25 14:04:18 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-24 23:04:18 -0700 |
| commit | 4dc33cc143375387e1bb118aa99e929eaa2f8288 (patch) | |
| tree | e569fa98f6dbee62d48d8de9bbc973d5a3d42cf1 /weed/server | |
| parent | d056c0ddf2b7e34a5c7e8fdfe829e5c74e65a068 (diff) | |
| download | seaweedfs-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.go | 1 | ||||
| -rw-r--r-- | weed/server/volume_grpc_client_to_master.go | 8 |
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) |
