背景:ekd-h1节点两块磁盘数据分配不均衡
解决方案:将ekd-h1节点分片转移至ekd-h5,先将ekd-h1分片转移至ekd-h5,再从选择ekd-h5中的分片转移至ekd-h1,原理依据,es会将/local和/mnt磁盘的剩余可用空间相加,然后将这个总和乘以百分之五,将前面其余shard的磁盘空间减去这个百分之五的值,然后再将这个差值与/mnt磁盘剩余空间进行比较,找出磁盘空间大的,然后把迁移的shard放到那个大的磁盘空间上。
操作步骤:
关闭分片自动转移默认 all
PUT http://IP:9200/_cluster/settings
{
"transient":{
"cluster.routing.allocation.enable":"none"
}
}
查看分片情况
GET _cat/shards
手动转移分片
先将ekd-h1分片转移至ekd-h5,再从ekd-h5转移至ekd-h1.
POST http://IP:9200/_cluster/reroute
{
"commands" : [
{
"move" : {
"index" : "***", "shard" : **,
"from_node" : "ekd-h1", "to_node" : "ekd-h5"
}
}
]
}
名词解析:
index 索引名
shard 分片序号
from_node 来自哪个节点
to_node 去哪个节点
还原配置:
查看磁盘大小是否均匀分配之后还原默认配置
PUT http://IP:9200/_cluster/settings
{
"transient":{
"cluster.routing.allocation.enable":"all"
}
}