You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Ignite 3集群初始化后能否添加元存储节点?故障节点如何重加入?

Ignite 3 元存储节点扩缩容与故障恢复问题解答

一、能否在集群初始化后添加元存储节点?

目前Ignite 3不支持在集群初始化完成后动态添加元存储节点

元存储节点组是集群启动初始化阶段通过InitParameters.metaStorageNodeNames指定的核心节点集合,负责维护集群元数据、共识协议(Raft)及脑裂检测等关键功能。当前版本的Ignite 3未提供修改元存储节点组的API或操作方式,节点组一旦确定就无法动态扩容。

二、元存储节点故障重启后的处理方式

当元存储节点故障重启时,只要满足以下条件,节点可以自动重新加入元存储节点组:

  • 节点的配置(包括节点名称、集群名称、元存储相关参数)与故障前完全一致
  • 节点的本地元存储数据未被损坏或清理

具体恢复逻辑:

  1. 重启节点后,它会尝试连接集群中当前可用的元存储节点
  2. 身份验证通过后,自动同步缺失的元数据,重新加入共识组
  3. 若故障期间元存储节点组的可用节点数仍满足法定人数(比如3节点组至少2个在线),集群可正常提供服务;若低于法定人数,集群会进入只读状态,直到足够多的元存储节点恢复在线

三、K8s环境下的实践建议

  • 元存储节点采用StatefulSet部署:保证节点名称、存储卷的稳定性,避免重启后身份变更
  • 元存储节点数量选择奇数(3、5个):提升容错能力,确保在部分节点故障时仍能维持法定人数
  • 若确实需要调整元存储节点组:当前只能通过备份集群数据,然后重新初始化集群并指定新的元存储节点列表的方式实现,操作前需做好数据备份与业务停机准备

内容的提问来源于stack exchange,提问作者Tobias Lott

火山引擎 最新活动