【问题标题】:Rescue my elasticsearch cluster when one master down and another master node' id is not correct当一个主节点关闭且另一个主节点的 ID 不正确时,拯救我的弹性搜索集群
【发布时间】:2019-09-19 09:18:06
【问题描述】:

背景:

  1. 有一个旧的 Elasticsearch 集群有 3 个主节点,最小节点为 2 个
  2. 一台服务器死机,无法很快恢复。
  3. 左边两个节点不能选举主节点,他们在抱怨:
master not discovered or elected yet, an election requires at least 2 nodes 
with ids from [DnW5_lRBRhinokBu542Mvw, LSS3ms9gSlmisxOgLmQZXw, nE5cqi4OQKui5VSWz1hW7g], 
have discovered [{dc17-esmaster-04}{LSS3ms9gSlmisxOgLmQZXw}{GyJYhRLLTB-SC66nu3d__w}....
master not discovered or elected yet, an election requires at least 2 nodes 
with ids from [DnW5_lRBRhinokBu542Mvw, LSS3ms9gSlmisxOgLmQZXw, nE5cqi4OQKui5VSWz1hW7g], 
have discovered [{dc17-esmaster-01}{rxzeJiTHQ2OlQK8iLAj-VQ}{ICKLYhcsSHy2hDajZs0cPw}{

我的理解:

  1. 通常,一个主节点宕机没有影响,2个节点应该可以工作
  2. 但是,在我的情况下,主节点的 ID 之一不在数组中:[DnW5_lRBRhinokBu542Mvw, LSS3ms9gSlmisxOgLmQZXw, nE5cqi4OQKui5VSWz1hW7g],如上面的第二个日志所示,该节点的 ID 是 rxzeJiTHQ2OlQK8iLAj-VQ。
  3. 所以,我猜事实是节点 1 之前从未成功加入集群,只有另外两个节点在工作,今天,一个节点死了,所以,整个集群崩溃了。

如何解决?我认为有两种选择:

  1. 将该节点的ID修改为该数组中的一个ID,但我不知道该怎么做,节点是自动生成的...
  2. 让ES集群忘记这个数组[DnW5_lRBRhinokBu542Mvw, LSS3ms9gSlmisxOgLmQZXw, nE5cqi4OQKui5VSWz1hW7g] 重新发现集群,我知道是保存在global-xx.st文件中的,但它是二进制文件,根本无法编辑,我害怕破坏数据完整性..

也许还有第三种选择:

  1. 再添加两个主节点,使整个集群有5个节点,所以,有3个节点活着,集群可以工作,然后移除两个坏节点..

请给我一些建议。

谢谢。

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    发现真相..

    之前有4个master节点,01因为不能有偶数节点选举被自动排除。

    然后,03因为硬件问题被某人删除了,他/她没有把01放回去选举集群..

    02宕机时,只有一个节点活跃,但01不能选举……

    问题已解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多