单机多节点存储讨论

最近想把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 副本。

1 个赞

了解,感谢

客气了~有其他问题欢迎继续开帖提问