Full cluster restart upgrade

要从版本6.0-6.7直接升级到Elasticsearch 7.3.0,必须关闭群集中的所有节点,将每个节点升级到7.3.0,然后重新启动群集。

NOTE 如果您运行的是6.0之前的版本,请升级到6.8并重新索引旧索引或启动新的7.3.0群集并从远程重新索引。

要执行完整群集重新启动升级到7.3.0:

1、禁用分片分配
当您关闭节点时,分配进程会等待index.unassigned.node_left.delayed_timeout(默认情况下为1分钟),然后开始将该节点上的分片复制到群集中的其他节点,这可能涉及很多I /O.由于节点很快将重新启动,因此不需要此I / O.您可以通过在关闭节点之前禁用副本分配来避免时间赛跑:

  1. PUT _cluster/settings
  2. {
  3. "persistent": {
  4. "cluster.routing.allocation.enable": "primaries"
  5. }
  6. }

2、停止索引并执行同步刷新
执行同步刷新可加快碎片恢复速度。

  1. POST _flush/synced

执行同步刷新时,请检查响应以确保没有失败。虽然请求本身仍返回200 OK状态,但响应正文中列出了由于挂起的索引操作而失败的同步刷新操作。如果有失败,请重新发出请求。

3、暂时停止与活动机器学习作业和数据馈送相关的任务。(可选的)
如果您的机器学习索引是在6.x之前创建的,则必须重新索引索引。
如果您的机器学习索引是在6.x中创建的,您可以:

  • 在升级期间保持机器学习作业运行。关闭机器学习节点时,其作业会自动移动到另一个节点并恢复模型状态。此选项使您的作业在升级期间继续运行,但会增加群集的负载。
  • 暂时停止与计算机学习作业和数据馈送相关的任务,并使用设置的升级模式API阻止打开新作业:
    1. POST _ml/set_upgrade_mode?enabled=true
    禁用升级模式时,作业将使用自动保存的最后一个模型状态恢复。此选项可避免在升级期间管理活动作业的开销,并且比明确停止数据馈送和关闭作业更快。
  • 停止所有数据馈送并关闭所有作业。此选项在关闭时保存模型状态。在升级后重新打开作业时,它们使用完全相同的模型。但是,保存最新模型状态比使用升级模式需要更长时间,尤其是当您有大量工作或具有大型模型状态的作业时。

4、关闭所有节点

  • 如果您使用systemd运行Elasticsearch:
    1. sudo systemctl stop elasticsearch.service
  • 如果您使用SysV init运行Elasticsearch:
    1. sudo -i service elasticsearch stop
  • 如果您将Elasticsearch作为守护程序运行:
    1. kill $(cat pid)

5、升级所有节点

IMPORTANT 如果要从6.2或更早版本升级并使用X-Pack,请在升级之前运行bin / elasticsearch-plugin remove x-pack以删除X-Pack插件。X-Pack功能现在包含在默认分发中,不再单独安装。如果存在X-Pack插件,则升级后节点将无法启动。您需要降级,删除插件,然后重新应用升级。

其他步骤跟滚动申请步骤一致