最近想把kv每台机器扩展为两个节点,想了解下对应的存储
按最小架构3台机器3个kv节点,由于三副本的机制,每台kv会存储所有完整数据
如果这3台机器扩展为6个节点,每两个节点共用同一个硬盘,数据大概会是怎么分布的呢?
以3机3节点来说,如果2台机器同时故障,1/3节点可用,数据是完整的
变为3机6节点后,如果2台机器同时故障,2/6节点可用,能保证数据完备吗?
最近想把kv每台机器扩展为两个节点,想了解下对应的存储
按最小架构3台机器3个kv节点,由于三副本的机制,每台kv会存储所有完整数据
如果这3台机器扩展为6个节点,每两个节点共用同一个硬盘,数据大概会是怎么分布的呢?
以3机3节点来说,如果2台机器同时故障,1/3节点可用,数据是完整的
变为3机6节点后,如果2台机器同时故障,2/6节点可用,能保证数据完备吗?
TiDB 中数据是按照 key 的范围切分成不同的 region,PD 以 region 为单位进行调度,如果集群内 TiKV 节点为 6 个的时候,数据是以 region 为单位均衡调度到所有机器上的
两节点同时宕机,可能会导致某些 region 的两副本同时丢失,无法满足多数派原则,该部分 reigon 访问会有问题
Raft Group 是以 region peer 为组的
也就是说如果每个硬盘挂2个kv节点的话,需要5台机器,才能满足同时2台宕机剩余部分6/10仍可用对吧
在 3 副本的情况,同时宕机 2 台,都可能会导致部分 region 丢失两副本的,如果要满足同时宕机 2 台机器的场景,可以考虑将副本数设置为 5 副本。
如果 2 台机器是先后宕机的话,那是可以的,因为一台机器宕机后,部分 region 是处于 2 副本状态,可以通过 raft 协议补全成为 3 副本。
了解,感谢
客气了~有其他问题欢迎继续开帖提问