ES滚动升级指引
ES的滚动升级允许集群在不中断服务的前提下一次升级一个节点,最终使集群完全升级到指定的版本。
1 升级步骤
1.1 禁用副本分片重分配
关闭某一节点时,集群将等待 index.unassigned.node_left.delayed_timeout(默认情况下为一分钟)后,开始将该节点上的分片重新分配到到其他节点,这可能涉及很多I/O。由于该节点在完成升级后就重新启动,可以在关闭该节点之前禁用副本分片的重分配来避免这些不必要的I/O(但不能禁止主分片的重分配,不然集群无法将位于该节点的主分片对应的副本分片提升为主分片):
1.2 依次升级数据节点
- 通过执行命令
kill $pid
停止该节点进程; - 将新版本的es安装包拷贝至安装目录并进行解压,拷贝
旧版本es安装目录/config
目录下的elasticsearch.yml
jvm.options
到新版本es的配置文件夹中; - 若旧版本的
elasticsearch.yml
中的path.data
值为相对路径,则在新版本elasticsearch.yml
中需将path.data
指向旧版本的数据存放目录;若磁盘空间允许,可以直接将旧数据目录拷贝复制到新安装目录,将旧数据目录作为备份使用。 - 通过命令
bin/elasticsearch -d
启动该数据节点; - 启用副本分片重分配,等待该节点加入集群,等待集群变为green状态
- 对其他数据节点重复上述过程。