单区 AZ 可用性探讨

请教一个问题,图中的 PD 节点是否至少要 5 个 3 + 2,因为如果 Primary IDC 全挂了,那么 PD 的多数派都会转移到 DR DC,但是 DR DC 只有一个 PD ,一个 PD 无法投出多数派的票,那么整个集群则不可用?

https://docs.pingcap.com/zh/tidb/stable/two-data-centers-in-one-city-deployment

我觉得不行

一个 PD 可以的,raft 的基础就是奇数实例,比如 1,3,5,7

所以,如果是双中心要考虑下 PD 的分布方案,那种更加合理.

建议5个

一个pd是可以运行的,你部署的时候可以指定1个pd-server的,但是没有高可用,坏了就完蛋。

DR DC一个pd是可以的,只是如果DR DC PD挂了就整个集群不可用了

可用,但是没有高可用

我做了下测试,抛开 AZ 可用性,就单机房,我用防火墙隔离了两个 pd 的节点模拟宕机的情况,tikv 均为 down 的状态

image

然后最终状态为

image

嗯,调整下场景,tikv + tidb 都是up 的状态,在隔离 PD 试试

1个pd是可用的

楼主应该是想问,PD多数派掉线之后,备中心的PD是否能够正常工作吧?

不管是1个、3个、5个、7个。只要主中心掉了,根据raft,备中心不具备选出leader 的能力。在这种情况下,tidb 能否让备中心掉 PD 强行变为 leader,以继续对外提供服务?

3个中心最少

部署时候一个可以,但是部署了3个就不能只剩下1个工作

可用方案

你说的没错。按照图配置存在主中心挂掉,备中心不可用。
PD 节点设置的原则和 TiKV 节点一致,主备中心比例,5个节点为 3:2,且节点角色为主中心至少2个节点为voter、一个为follower,备中心至少2个节点为voter。这种设计才能保障可用性。

  • 如果主 AZ 发生故障,丢失了大多数 Voter 副本,但是从 AZ 有完整的数据,可在从 AZ 恢复数据。此时需要人工介入,通过专业工具恢复。如需获取支持,请联系 PingCAP 服务与支持

实际是可以的,只是需要人工介入,而单区域双AZ挂掉一个AZ的话,不管是pd还是tikv,都需要人工介入的。。。