ES7 选主去掉了minimum_master_nodes

news/2024/7/7 6:36:37 标签: elasticsearch, 选主, ES7

ES7_minimum_master_nodes_0">ES7 选主去掉了minimum_master_nodes

一个cluster 中的所有的 node 都有相同的 cluster.name 属性,当一个node加入或离开cluster,这个消息会分发到所有的node上。

针对一个节点的加入和离开,elasticsearch 通过自动更新 voting 配置来维护一个最优的容错状态。其中的 voting 配置就是 master-eligible 节点的集合,可以根据这些节点的数量的个数来决定能否进行新 master的选举以及提交一个新的集群状态。

通常推荐的是在一个Elasticsearch 集群中有一个比较小的固定大小的 master-eligible 节点,通过增加或减少非主节点的个数来实现 cluster的扩容或缩容。

加入一个主节点

如果想要加入一个 master-eligible node,只要配置好这个cluster的其他 master-eligible 节点列表。该node主动发送join request ,就会自动加入cluster。

删除一个主节点

当删除一个 master-eligible 节点时,重要的是不能一次性删除太多的节点。比如,当前的cluster中有7个master-eligible节点,而你要减少到3个。那么如果同时删除4个,而保留3个master-eligible node,导致的结果是可用的master-eligible node少于 voting 配置的 7 个的一半 4个,该cluster将不能工作。

如果确实发生了上述的操作,那么首先应该将关闭的node重新启动,超过半数之后cluster才会恢复正常。

目标不变,还是保存3个master-eligible node,一个普遍的规则是依次删除一个master-eligible node,然后等集群自动更新了 voting 配置,之后接着再删除下一个 master-eligible node,直到还剩下3个master eligible node。

如果 master-eligible node只有 2个,那么就不能使用上面的方式缩容,因为每一个 master-eligible都是必须的,少了一个cluster就不能正常工作了。在这种情况下,首先要做的是:告诉cluster 某一个 node将会在 voting 配置中移除,实现是将一个node配置到 voting 移除列表中。操作成功后,该节点就可以安全的在cluster中移除了。一个在 voting 移除列表中的node,也会正常工作。但是cluster意图要移除该node,所以该node的选举也没有作用了。

可以通过下面的API 实现添加 到 cluster voting移除列表:

# 根据 node_names 来添加,默认时间时 30s
POST /_cluster/voting_config_exclusions?node_names=node_name

POST /_cluster/voting_config_exclusions?node_names=node_name&timeout=1m

#也可以通过 node_id 进行排除操作
POST /_cluster/voting_config_exclusions?node_ids=node_id

一旦请求返回成功,那么就可以安全的移除对应的master-eligible node了。

对于多节点的缩容,比如将 7节点缩为 3节点也可以通过该API将4个node添加到 voting移除列表中,然后同时删除4个node,也是可以的。(对于多节点只有同时删除的 node 超过当前 voting 配置的一半时才应该使用,如果少于一半,同时删除也没什么大不了的)。

通过 下面的 API可以查看voting 移除列表中的内容:

GET /_cluster/state?filter_path=metadata.cluster_coordination.voting_config_exclusions

该配置的最大数通过 cluster.max_voting_config_exclusions 控制,默认是 10 。并且该配置是持久化的, 重要的是加入到 voting移除列表中的node 不会自动清除。就算是对应的node已经被删除了仍然还在cluster配置中。通过下面的API进行清空(只能全部清空,没有条件删除) :

# 等结果返回
DELETE /_cluster/voting_config_exclusions

# 不等结果
DELETE /_cluster/voting_config_exclusions?wait_for_removal=false

结论

在7.x之前的版本中,用户需要手工配置minimum_master_nodes, 来明确告诉集群过半节点数应该是多少,并在集群扩缩容时调整他。现在,集群可以自行维护。在取消了discovery.zen.minimum_master_nodes 配置后,现在的做法不再记录“quorum”法定数量的具体数值,取而代之的是记录一个节点列表,这个列表中保存所有具备master资格的节点(有些情况下不是这样,例如集群原本只有1个节点,当增加到2个的时候,这个列表维持不变,因为如果变成2,当集群任意节点离线,都会导致无法选主。这时如果再增加一个节点,集群变成3个,这个列表中就会更新为3个节点),称为VotingConfiguration,他会持久化到集群状态中。

**在节点加入或离开集群之后,Elasticsearch 会自动对VotingConfiguration 做出相应的更改,以确保集群具有尽可能高的弹性。**在从集群中删除更多节点之前,等待这个调整完成是很重要的。你不能一次性停止半数或更多的节点。(感觉大面积缩容时候这个操作就比较感人了,一部分一部分缩)。

参考

https://cloud.tencent.com/developer/article/1826426


http://www.niftyadmin.cn/n/886270.html

相关文章

激流勇进

2017年马上结束了,迎接新的一年!

MYSQL union 双向排序

由于工作需要 查询数据需要两个查询 一起查询 并且按照第一条查询的前10条数据跟第二条数据的时间倒叙排序进行查询 ( SELECT * FROM table WHERE 1 1 ORDER BY id DESC LIMIT 10 ) UNION ( SELECT * FROM table( SELECT * FROM table WHERE 1 1 ORDER BY id DESC) a )

wdcp 升级php 5.3 失败可以升级php5.4

wget http://down.wdlinux.cn/in/php_up54.sh sh php_up54.sh 看到"php update is OK"提示 表示,顺利完成 完成后重启服务 service wdapache start|stop|restart wdcp后台 启动|停止|重起 service nginxd start|stop|restart nginx服务 启动|停止|重起 s…

ip 地址获取地理位置并且判断是否合法

<?php $ip183.197.49.179;//$_SERVER[REMOTE_ADDR]; if(jiaoyanip($ip)){ echo "ok"; }else{ echo "error"; } function jiaoyanip($ip){ $url"http://m.ip138.com/ip.asp?ip".$ip; $ch curl_init(); curl_setopt ($ch, CURLOPT_…

php 正则去除160;nbsp...等转义字符

$str" as2223adfsf 0s4df0 sdfsdf"; echo preg_replace("/\&[\w|\W]{3,6};/","",$str);//

uniapp h5 web2app 返回上一步退出方法

uniapp h5 web2app 返回上一步退出方法 在app.vue onshow中加入下面方法即可 onShow: function() { document.addEventListener(plusready, function() { var webview plus.webview.currentWebview(); plus.key.addEventListener(backbutton, functio…

php 兼容换行符替换 常用函数

$vo[content]str_replace(PHP_EOL, , $vo[content]); foreach($rs as $vo){ if($vo!end($rs)){ //最后一次循环判断} } array_reverse($rs) //数组反转

PHP 500错误本页面如何报错?本页面修改代码

1、 ini_set(display_errors,1); error_reporting(E_ALL); 2、 function vtest() { var_dump(error_get_last()); } register_shutdown_function(vtest); 两种方法 推荐使用第二种