跨机房部署方案

    阅读本章前,请先确保阅读 Ansible 部署方案 和 。

    可以通过 TiKV 的启动参数或者配置文件来让 TiKV 上报拓扑信息给 PD。

    假设拓扑结构分为三级:zone > rack > host,可以通过 labels 来指定这些信息。

    配置文件:

    可以通过 PD 的配置文件让 PD 理解 TiKV 集群的拓扑结构。

    其中 需要与 TiKV 的 名字对应,这样 PD 才能知道这些 代表了 TiKV 的拓扑结构。

    假设我们使用三副本,并且希望一个数据中心挂掉的情况下能够正常服务,我们至少需要四个数据中心
    (理论上三个数据中心即可,但是当前实现无法保证)。

    假设我们有四个数据中心 (zone),每个数据中心有两个机架 (rack),每个机架上有两个主机 (host)。
    每个主机上面启动一个 TiKV 实例:

    也就是说,我们有 16 个 TiKV 实例,分布在 4 个不同的数据中心,8 个不同的机架,16 个不同的机器。

    总的来说,PD 能够根据当前的拓扑结构使得集群容灾能力最大化,所以如果我们希望达到某个级别的容灾能力,
    就需要根据拓扑机构在不同的地理位置提供多于备份数 () 的机器。