elasticsearch半数以上master节点丢失, 如何恢复

起因: 本地搭建了集群, 想着扩充节点数目, 就复制了安装目录, 改了nodename, 以及port等, 删除data目录. 但是操作失误, 最终还是导致脑裂了, 三个master节点, 其中有一个data被删除了, 另外两个竟然分别属于不同的集群, 无法选主...

这种情况下, 虽然 data都在, 都存活, 但是集群已经不能提供管理服务了. 而就是删除了所有的master节点, 重建一个master集群, 也不能和原先的data节点们组成集群. 这样元数据就丢失了...

参考:
类似场景:
https://discuss.elastic.co/t/how-to-recover-cluster-when-2-master-nodes-have-been-lost/269472/2
https://discuss.elastic.co/t/recover-data-after-the-lost-of-master-7-1-1/187775/5
工具说明链接:
tool-1 https://www.elastic.co/guide/en/elasticsearch/reference/current/node-tool.html#node-tool-detach-cluster

半数以上master节点丢失(确定无法恢复)

from tool-1

If there is at least one remaining master-eligible node, but it is not possible to restart a majority of them, then the elasticsearch-node unsafe-bootstrap command will unsafely override the cluster’s voting configuration as if performing another cluster bootstrapping process. The target node can then form a new cluster on its own by using the cluster metadata held locally on the target node.

如果集群中还剩半数以下 的master-eligible, 无论它的元数据是否完整, 是否最新. 我们都可以基于它来恢复之前的集群(可能有元数据丢失, 落后等, 所以是unsafe), 不过在执行的时候, 还是可以看下, 哪个剩余节点的元数据更新, 通过term和version判断. 这两个值在执行工具命令的时候, 会看到(见下图unsafe-bootstrap)

步骤

  1. Make sure you have really lost access to at least half of the master-eligible nodes in the cluster, and they cannot be repaired or recovered by moving their data paths to healthy hardware.
  2. Stop all remaining nodes.
  3. Choose one of the remaining master-eligible nodes to become the new elected master as described above.
  4. On this node, run the elasticsearch-node unsafe-bootstrap command as shown below. Verify that the tool reported Master node was successfully bootstrapped.
  5. Start this node and verify that it is elected as the master node.
  6. Run the elasticsearch-node detach-cluster tool, described below, on every other node in the cluster.
  7. Start all other nodes and verify that each one joins the cluster.
  8. Investigate the data in the cluster to discover if any was lost during this process.

注意事项 :

  1. 关闭 security 功能. (如果开启了, 最好先关闭security插件功能
    1. 因为新启动的master节点, 没有数据节点(如果只配置了一个master的角色), 那security插件的初始化无法完成, 各类接口不好调用
    2. 如果给新启动的mster节点, 配置了master and data, 则security插件会初始化成功. 会插入index, 但是这个index会和原来的data节点上保存的冲突. 不知道怎么解.
  2. 能成功, 不代表没有数据丢失.
  3. 在unsafe-bootstrap的节点, 必须是关闭的
  4. 所有其他或者的master-eligible节点(如果有) 必须是关闭的. all other master-eligible nodes are also stopped while this tool is running, but the tool does not check this.
unsafe-bootstrap.png
detach.png

所有master节点丢失(确定无法恢复)

而, 如果所有的master节点都丢了, 且确定恢复不了了. 那只能把原来的data节点们分离出来, 加入到一个新的空集群, 并且fix dangling index.

步骤 和之前类似, 不过是启动一个新集群.

  1. Make sure you have really lost access to every one of the master-eligible nodes in the cluster, and they cannot be repaired or recovered by moving their data paths to healthy hardware.
  2. Start a new cluster and verify that it is healthy. This cluster may comprise one or more brand-new master-eligible nodes, or may be an unsafely-bootstrapped cluster formed as described above.
  3. Stop all remaining data nodes.
  4. On each data node, run the elasticsearch-node detach-cluster tool as shown below. Verify that the tool reported Node was successfully detached from the cluster.
  5. If necessary, configure each data node to discover the new cluster.
  6. Start each data node and verify that it has joined the new cluster.
  7. Wait for all recoveries to have completed, and investigate the data in the cluster to discover if any was lost during this process. Use the Dangling indices API to list, import or delete any dangling indices.

注意事项
与前面略同.

新集群无法启动排查

无法启动, 可能是因为新集群不够新. (虽然它可能是从旧的master-eligible节点的元数据而来)

  1. 关闭 security 安全插件 , 最好, 方便排查
  2. 有些来自旧集群的persistence设置, 导致无法启动
    1. 使用elasticsearch-node remove-settings
    2. 使用 elasticsearch-node remove-custom
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容