对于日常维护:比如系统重启、更换硬件等操作,比较实用。按照下面的步骤逐一重启节点,可以防止分片的再平衡,避免磁盘和网络的巨大开销。对于给ES安装插件的操作,最好整个集群都关闭然后在安装,之后再重启整个集群,防止出现集群脑裂操作。
1、可能的话,停止索引新的数据。虽然不是每次都能真的做到,但是这一步可以帮助提高恢复速度。
2、禁止分片分配。这一步阻止 Elasticsearch再平衡缺失的分片,直到你告诉它可以进行了。如果你知道维护窗口会很短,这个主意棒极了。你可以像下面这样禁止分配:
PUT /_cluster/settings
{
"transient" : {
"cluster.routing.allocation.enable" : "none"
}
}
3、关闭单个节点。
4、执行维护/升级。
5、重启节点,然后确认它加入到集群了。
6、用如下命令重启分片分配:
PUT /_cluster/settings
{
"transient" : {
"cluster.routing.allocation.enable" : "all"
}
}
分片再平衡会花一些时间。一直等到集群变成 绿色 状态后再继续。
7、重复第 2 到 6 步操作剩余节点。
8、到这步你可以安全的恢复索引了(如果你之前停止了的话),不过等待集群完全均衡后再恢复索引,也会有助于提高处理速度。