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 的存活等。