diff options
| author | Chris Lu <chris.lu@gmail.com> | 2019-06-04 01:32:36 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2019-06-04 01:32:36 -0700 |
| commit | 6cea23d091120f53b7a6b2dd657add0954d93739 (patch) | |
| tree | 8b38d741f4a4569ab3ed6ee3f41c93f936d26ef0 | |
| parent | b05456fe07f49e50776124f5b3315c4bd7bfef36 (diff) | |
| download | seaweedfs-6cea23d091120f53b7a6b2dd657add0954d93739.tar.xz seaweedfs-6cea23d091120f53b7a6b2dd657add0954d93739.zip | |
purge duplicated ec shards
| -rw-r--r-- | weed/shell/command_ec_balance.go | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/weed/shell/command_ec_balance.go b/weed/shell/command_ec_balance.go index 664284df9..414f0ec4d 100644 --- a/weed/shell/command_ec_balance.go +++ b/weed/shell/command_ec_balance.go @@ -186,18 +186,20 @@ func doDeduplicateEcShards(ctx context.Context, commandEnv *commandEnv, collecti continue } sortEcNodes(ecNodes) - fmt.Printf("ec shard %d.%d has %d copies, removing from %+v\n", vid, shardId, len(ecNodes), ecNodes[1:]) + fmt.Printf("ec shard %d.%d has %d copies, keeping %v\n", vid, shardId, len(ecNodes), ecNodes[0].info.Id) if !applyBalancing { continue } + + duplicatedShardIds := []uint32{uint32(shardId)} for _, ecNode := range ecNodes[1:] { - duplicatedShardIds := []uint32{uint32(shardId)} if err := unmountEcShards(ctx, commandEnv.option.GrpcDialOption, vid, ecNode.info.Id, duplicatedShardIds); err != nil { return err } if err := sourceServerDeleteEcShards(ctx, commandEnv.option.GrpcDialOption, collection, vid, ecNode.info.Id, duplicatedShardIds); err != nil { return err } + ecNode.freeEcSlot++ } } return nil |
