aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-04-15 03:19:28 -0700
committerChris Lu <chris.lu@gmail.com>2021-04-15 03:19:28 -0700
commitba92f2e7148108c362379f266a6292401b82b90c (patch)
tree4ac54fc7b763f59a7508c18666f8990e058eb70f
parent16c0304416bc0dd9fd56439e39c754c57d604608 (diff)
downloadseaweedfs-ba92f2e7148108c362379f266a6292401b82b90c.tar.xz
seaweedfs-ba92f2e7148108c362379f266a6292401b82b90c.zip
add node.selectedVolumes
fix https://github.com/chrislusf/seaweedfs/issues/1990
-rw-r--r--weed/shell/command_volume_server_evacuate.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/weed/shell/command_volume_server_evacuate.go b/weed/shell/command_volume_server_evacuate.go
index 80c5b1d6b..f21d0334c 100644
--- a/weed/shell/command_volume_server_evacuate.go
+++ b/weed/shell/command_volume_server_evacuate.go
@@ -176,6 +176,11 @@ func moveAwayOneEcVolume(commandEnv *CommandEnv, ecShardInfo *master_pb.VolumeEc
func moveAwayOneNormalVolume(commandEnv *CommandEnv, volumeReplicas map[uint32][]*VolumeReplica, vol *master_pb.VolumeInformationMessage, thisNode *Node, otherNodes []*Node, applyChange bool) (hasMoved bool, err error) {
fn := capacityByFreeVolumeCount(types.ToDiskType(vol.DiskType))
+ for _, n := range otherNodes {
+ n.selectVolumes(func(v *master_pb.VolumeInformationMessage) bool {
+ return v.DiskType == vol.DiskType
+ })
+ }
sort.Slice(otherNodes, func(i, j int) bool {
return otherNodes[i].localVolumeRatio(fn) > otherNodes[j].localVolumeRatio(fn)
})