文档下载建议反馈入口

  • 高可用支持
  • 多副本集群高可用
  • 高可用相关操作

高可用

高可用支持

  • 多副本集群:默认情况下,KaiwuDB 多副本集群支持高可用,能够实现故障转移和数据强一致性。集群中的各节点通过定期的心跳机制来维护连接和状态,以便及时发现故障并采取相应措施。
  • 单机版:KaiwuDB 单机版支持基于 DRBD 块设备复制的开源软件方案,实现主备节点间的数据复制,更多相关信息,参见单机高可用性方案
  • 单副本集群:KaiwuDB 单副本集群不支持高可用性。

多副本集群高可用

KaiwuDB 多副本集群默认采用 3 副本机制。为了确保系统在节点发生故障后仍能够提供服务,集群通过多数投票机制保证数据一致性和可用性,因此至少需要 2 个副本保持可用状态。

以下以 5 节点集群为例,说明 KaiwuDB 多副本集群如何实现高可用性。

  • 正常运行:KaiwuDB 集群启动后,副本和 leaseholder 均匀分布在所有节点上,确保数据的高可用性和平衡性。

    img

  • 单节点异常:如果单个节点因网络断开、延迟、操作系统故障、磁盘故障等原因导致节点状态变为异常(is_availableis_live 均为 false),系统会开始迁移该节点的 leaseholder,迁移期间数据查询可能受影响,时序索引相关的 DDL 操作可能会报错,生命周期会顺延至下一执行周期执行。待节点恢复为可用状态后恢复正常。

    img

  • 单节点故障:节点离线时间达到设定值后,系统会将该节点标记为不可用。如果剩余节点数量仍大于副本数,系统自动补足缺失的副本,确保数据的高可用性、副本补足期间,数据查询和 DML 操作不受影响,时序索引相关的 DDL 操作可能会报错,待副本补足后恢复正常。

    img

  • 节点恢复:不可用节点恢复后,系统会将副本和 leaseholder 回迁到该节点,迁移期间数据查询可能受影响,时序索引相关的 DDL 操作可能会报错,生命周期会顺延至下一执行周期执行。待节点恢复为可用状态后恢复正常。

    img

  • 多节点故障:如果两个或更多节点出现故障,由于剩余节点数小于或等于副本数,系统无法补足缺失的副本,可能导致部分数据无法访问,甚至出现集群无法使用的情况。

    img

说明

  • 版本升级影响:KaiwuDB 1.x 和 2.0.x 版本使用导入导出方式升级到 2.0.4 版本后,多副本集群的高可用性可能会受到影响。
  • 节点故障影响
    • 集群节点多次发生故障后重新加入,可能会导致数据写入缓慢。
    • 集群节点故障或故障节点恢复后的 leaseholder 迁移可能导致读写短暂不可用或卡顿。
  • 可通过重试机制解决因 update tag 失败导致不同节点查询普通标签时的不一致问题。

高可用相关操作

故障节点标记

默认情况下,如果一个节点在集群中离线时间超过 30 分钟,系统会将其标记为不可用,并将该节点上的数据副本重新分配到其他节点,以确保数据的可用性和一致性。

用户也可以通过以下 SQL 命令设置节点死亡时间:

SET CLUSTER SETTING server.time_until_store_dead = <value>;

设置时间建议不小于 75s。注意:延长节点死亡判定时间,可以减少节点故障对集群性能的长时间影响,但可能会影响集群的高可用性功能和 DDL 相关操作。