在创建集群时,有明确要求是奇数的zone吗?那在创建租户时,可以指定偶数的zone是可以的吗?
在创建集群时,并没有明确规定 Zone 的数量必须为奇数,但推荐使用奇数个 Zone 以确保系统的高可用性和稳定性。这是因为奇数个 Zone 可以避免脑裂问题,确保在部分节点失效时,仍有一个明确的主节点。
在创建租户时,可以指定任意数量的 Zone,无论是奇数还是偶数。但是,为了确保租户的高可用性和数据的一致性,建议仍然使用奇数个 Zone。
具体信息可参考以下文档:
当集群使用2个ZONE,且创建租户也使用2个ZONE时,如果其中一个ZONE出现故障,会导致租户的多数副本不可用,进而造成租户的服务不可用。为了保障高可用性,建议使用至少3个ZONE,以便在单个ZONE故障时仍能维持服务的正常运行。
具体信息可参考以下文档:
- 高可用集群存在租户unit<2,使用obd升级失败
- 租户的资源管理
v3好像有这个要求
您的理解基本正确。在 OceanBase 数据库中,可以使用任意数量的 Zone 来构建集群和租户。但是,使用偶数个 Zone(如 2 个 Zone)确实意味着无法在所有 Zone 都具备高可用性。具体来说,如果一个 Zone 发生故障,剩下的 Zone 将无法形成超过半数的共识,从而导致集群的部分或全部服务不可用。因此,使用 2 个 Zone 的集群和租户与单个 Zone 类似,都缺乏高可用性保障。
检索到的文档如下:
就像您刚刚说的 2个zone 。多zone的目的就是 实现高可用的 , 2个zone和一个zone都无法满足 多数派协议,没有高可用,那么 这么做就是浪费资源或者仅仅测试用一下
创建的时候,如果是三个zone,就默认选择三个zone,可以增加与删除zone,
在创建集群时使用3个ZONE,创建租户A时使用2个ZONE,创建其他租户使用3个ZONE,当租户A其中的一个ZONE出现故障时,只会影响租户A不可用,集群和其他租户不受影响,可以这么理解吗? @论坛小助手
当租户A的其中一个Zone出现故障时,确实只会影响租户A的服务,集群和其他租户不受影响。为了确保高可用性,您可以通过停止故障Zone的方式来隔离故障副本,详情参见隔离 Zone,或者通过主动切主的方式将Leader切换到指定Zone,具体操作请参见数据库层高可用。
更多信息请查看:
点赞
那4个zone呢?一个发生故障,剩余三个是可以形成超过半数的共识的吧?
V3有这个要求,只要集群的节点不满足多数派,集群就会不可用
故障一个zone,集群正常运行,故障2个zone,集群就挂了,一般建集群是5zone,2个zone故障时,集群还可以正常运行