Easysearch、Elasticsearch 还是 Opensearch,是个问题

index.routing.allocation.require.box_type疑问!!

Elasticsearch | 作者 xiaoke | 发布于2019年04月23日 | 阅读数:3532

索引模板设置存放到cool节点,
创建索引可以正确存放在cool节点
迁移cool节点到hot节点成功
再想迁移到cool节点不成功


1111.png



索引模板设置存放到hot节点,
创建索引可以正确存放在hot节点
迁移hot节点到cool节点失败
PUT xiaoke/_settings 
{
  "index.routing.allocation.require.box_type": "cool"
}
GET xiaoke/_settings 

{ "xiaoke": { "settings": { "index": { "routing": { "allocation": { "require": { "box_type": "cool" } } }, "refresh_interval": "3s", "number_of_shards": "6", "provided_name": "xiaoke", "creation_date": "1556008528044", "number_of_replicas": "1", "uuid": "9GB83tEMSUCuY47bz__hPw", "version": { "created": "6050099" } } } } }
Close

结果显示box_type为cool,但实际存放在hot节点上。

结论:hot节点无法迁移到cool节点,但是原因未知.....

 冷热节点已完成,请看截图。现在可以把cool节点数据到hot,但是无法把hot的数据到cool

123123.png


GET /_cat/nodeattrs?v&h=host,node,attr,value
 
10.144.46.115 node-11 box_type          hot
10.144.46.116 node-12 box_type          hot
10.144.46.117 node-13 box_type          hot
10.144.46.118 node-14 box_type          hot
10.144.46.139 node-15 box_type          hot
10.144.46.140 node-16 box_type          hot
10.144.45.77  node-1  box_type          cool
10.144.45.78  node-2  box_type          cool
10.144.45.79  node-3  box_type          cool
10.144.45.80  node-4  box_type          cool
10.144.45.81  node-5  box_type          cool
已邀请:

xiaoke - http://blog.51cto.com/kexiaoke

赞同来自: rochy

版本不一致.png

因为我做冷热分离,我是新加了6台ssd硬盘的机器,但是没有注意到机器上的ES版本是6.5.1,而原来的机器的版本是6.5.0

ES版本高.png

 
在看一篇文章《Elasticsearch底层系列之Shard Allocation机制》里面有说到所有的Allocation由上面14个策略组成,通过全部的策略该Node才是一个符合策略条件的目标Node,允许进行后面的分片分配过程。
 
因为我新增的Hot节点是6.5.1版本,而之前的cool节点是6.5.0节点,所以,我可以从cool节点到hot节点,但是我无法从hot节点到cool节点。而原因就是因为NodeVersionAllocationDecider策略。
 
PS:因为NodeVersionAllocationDecider导致没有分片迁移,日志没有任何输出相关信息。。。

xiaoke - http://blog.51cto.com/kexiaoke

赞同来自:

这个特别无解啊?看了日志没有任何异常,现在使用"index.routing.allocation.require.box_type": "hot"可以把索引自动迁移到hot节点上,但是使用"index.routing.allocation.require.box_type": "cool" 就不行了,直接返回的结果都是{
  "acknowledged" : true
}。但是就是没有执行迁移动作。。

rochy - rochy_he

赞同来自:

你需要设置 node.attr.box_type: hot,将 node 进行冷热分组,否则你设置索引的 box_type 是无用的

xiaoke - http://blog.51cto.com/kexiaoke

赞同来自:

原因已找到!明天我详细说明。。。

要回复问题请先登录注册