diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-04-15 03:19:28 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-04-15 03:19:28 -0700 |
| commit | ba92f2e7148108c362379f266a6292401b82b90c (patch) | |
| tree | 4ac54fc7b763f59a7508c18666f8990e058eb70f /weed/shell/command_volume_server_evacuate.go | |
| parent | 16c0304416bc0dd9fd56439e39c754c57d604608 (diff) | |
| download | seaweedfs-ba92f2e7148108c362379f266a6292401b82b90c.tar.xz seaweedfs-ba92f2e7148108c362379f266a6292401b82b90c.zip | |
add node.selectedVolumes
fix https://github.com/chrislusf/seaweedfs/issues/1990
Diffstat (limited to 'weed/shell/command_volume_server_evacuate.go')
| -rw-r--r-- | weed/shell/command_volume_server_evacuate.go | 5 |
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) }) |
