400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
YMatrix 文档
关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
流计算引擎
灾难恢复
系统配置参数
索引
扩展
SQL 参考
常见问题(FAQ)
本文档介绍 YMatrix 5.X 高可用的常见问题。
etcd 的存储可以理解为全复制表,因此节点数量不必太多。在实践层面,推荐的配置为 1、3、5、7 节点,安装部署过程会自动根据主机数量选定部署几个 etcd 实例。
因此如果集群里的主机个数是偶数,或者超过 7 台主机,那么有些机器上是没有 etcd 节点的。可以通过 ps
命令查看当前主机上有没有 etcd 进程。
通常 Master 和 Standby 的主机上会优先安放 etcd 节点。
在 etcd 中,将节点数设置为奇数个是为了确保选举过程的稳定性和一致性,在 Raft 协议中,leader 的选举是基于大多数原则。当节点数为奇数时,选举过程更容易达成共识。在这种情况下,半数以上的节点需要同意并投票支持一个 candidate 成为 leader。假设有 5 个节点,需要至少 3 个节点同意选举同一个 leader;如果有 7 个节点,则需要至少 4 个节点同意。
这种配置除了确保 leader 的选举结果是唯一的,还能尽量保证选举时间的精短。另外奇数个节点还能提供更好的容错能力。在发生故障或网络异常的情况下,多数个节点仍然可以保持选举过程的正常运行,确保系统的可用性和一致性。当节点数为偶数时,可能会出现平局的情况,导致选举无法完成或结果不确定。
首先,需要部署针对 etcd 的监控。目前支持 Prometheus 5.0 部署 etcd 的监控(Prometheus + Grafana)。
5.X 的 etcd 会定期自动进行清理操作,因此数据目录和内存大小都能维持在一个相对固定的范围。
但是如果有节点故障和后续 recover 操作,会使 etcd 的数据在短时间内发生稍许膨胀。只要 etcd 的数据目录不持续膨胀超过 1.5GB,都是正常的,建议通过监控进行监视和定期检查。
从使用体验上并没有变化,安装部署的页面和操作方法跟以前完全一致。
这里存在一个概念误区,一个 Segment 有两个维度的概念:
当前版本下,Master Auto-failover 功能指的是节点角色的自动切换,即 Master 离线之后,Standby 能自动切换为 Master,这个动作称为 提升(Promote)或者故障自动转移(Failover)。
而一旦一个 Segment 的状态从 Up
变成 Down
,是必须通过手动节点恢复操作(mxrecover
)才能变回 Up
。
postmaster
进程发生崩溃,但主机和网络都正常,Master 可以快速切换到 Standby。是的。
postgres 进程的存活需要依赖 etcd 集群的租约存续。当 etcd 服务本身出现异常(半数以上的 etcd 节点宕机或失联),postgres 进程就无法维持存活,宕机是必然的结果。因此,请严格部署 etcd 监控,密切关注其健康状态。监控事项包括但不限于:磁盘剩余空间、磁盘 I/O、网络联通性、宿主进程 supervisor 的存活等。