From 0f1309c72b08ce92debff864d8a2e70477daa9e1 Mon Sep 17 00:00:00 2001 From: SIGSEGV Date: Mon, 14 Sep 2020 18:08:17 +0800 Subject: [PATCH 1/5] Update schedule-replicas-by-topology-labels.md --- schedule-replicas-by-topology-labels.md | 59 +++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/schedule-replicas-by-topology-labels.md b/schedule-replicas-by-topology-labels.md index cfdf039a1877..909644559d5c 100644 --- a/schedule-replicas-by-topology-labels.md +++ b/schedule-replicas-by-topology-labels.md @@ -86,6 +86,65 @@ pd-ctl config set isolation-level zone > > `isolation-level` 默认情况下为空,即不进行强制隔离级别限制,若要对其进行设置,必须先配置 PD 的 `location-labels` 参数,同时保证 `isolation-level` 的值一定为 `location-labels` 中的一个。 +### 使用 TiUP 进行配置 + +如果使用 TiUP 部署集群,可以在[初始化配置文件](https://docs.pingcap.com/zh/tidb/stable/production-deployment-using-tiup#第-3-步编辑初始化配置文件)中统一进行 location 相关配置。TiUP 会负责在 deploy 时生成对应的 TiKV 和 PD 配置文件。 + +下面的例子定义了 `zone/host` 两层拓扑结构。集群的 TiKV 分布在三个 zone,每个 zone 内有两台主机,其中 z1 每台主机部署两个 TiKV 实例,z2 和 z3 每台主机部署 1 个实例。以下例子中 tikv-n 代表第 n 个 TiKV 节点的 IP 地址 + +``` +server_configs: + pd: + replication.location-labels: ["zone", "host"] + +tikv_servers: +# z1 + - host: tikv-1 + config: + server.labels: + zone: z1 + host: h1 + - host: tikv-2 + config: + server.labels: + zone: z1 + host: h1 + - host: tikv-3 + config: + server.labels: + zone: z1 + host: h2 + - host: tikv-4 + config: + server.labels: + zone: z1 + host: h2 +# z2 + - host: tikv-5 + config: + server.labels: + zone: z2 + host: h1 + - host: tikv-6 + config: + server.labels: + zone: z2 + host: h2 +# z3 + - host: tikv-7 + config: + server.labels: + zone: z3 + host: h1 + - host: tikv-8 + config: + server.labels: + zone: z3 + host: h2 +``` + +更多资料可以参考 [TiUP 跨数据中心部署拓扑](https://docs.pingcap.com/zh/tidb/stable/geo-distributed-deployment-topology)。 + ### 使用 TiDB Ansible 进行配置 如果使用 TiDB Ansible 部署集群,可以直接在 inventory.ini 文件中统一进行 location 相关配置。tidb-ansible 会负责在 deploy 时生成对应的 TiKV 和 PD 配置文件。 From f82960b9232362fb158ec2f3647ec898f0de9e3c Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 14 Sep 2020 19:11:45 +0800 Subject: [PATCH 2/5] Apply suggestions from code review --- schedule-replicas-by-topology-labels.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/schedule-replicas-by-topology-labels.md b/schedule-replicas-by-topology-labels.md index 909644559d5c..15c567d2e7db 100644 --- a/schedule-replicas-by-topology-labels.md +++ b/schedule-replicas-by-topology-labels.md @@ -88,9 +88,9 @@ pd-ctl config set isolation-level zone ### 使用 TiUP 进行配置 -如果使用 TiUP 部署集群,可以在[初始化配置文件](https://docs.pingcap.com/zh/tidb/stable/production-deployment-using-tiup#第-3-步编辑初始化配置文件)中统一进行 location 相关配置。TiUP 会负责在 deploy 时生成对应的 TiKV 和 PD 配置文件。 +如果使用 TiUP 部署集群,可以在[初始化配置文件](/production-deployment-using-tiup#第-3-步编辑初始化配置文件)中统一进行 location 相关配置。TiUP 会负责在 deploy 时生成对应的 TiKV 和 PD 配置文件。 -下面的例子定义了 `zone/host` 两层拓扑结构。集群的 TiKV 分布在三个 zone,每个 zone 内有两台主机,其中 z1 每台主机部署两个 TiKV 实例,z2 和 z3 每台主机部署 1 个实例。以下例子中 tikv-n 代表第 n 个 TiKV 节点的 IP 地址 +下面的例子定义了 `zone/host` 两层拓扑结构。集群的 TiKV 分布在三个 zone,每个 zone 内有两台主机,其中 z1 每台主机部署两个 TiKV 实例,z2 和 z3 每台主机部署 1 个实例。以下例子中 `tikv-n` 代表第 n 个 TiKV 节点的 IP 地址。 ``` server_configs: @@ -143,7 +143,7 @@ tikv_servers: host: h2 ``` -更多资料可以参考 [TiUP 跨数据中心部署拓扑](https://docs.pingcap.com/zh/tidb/stable/geo-distributed-deployment-topology)。 +详情参阅 [TiUP 跨数据中心部署拓扑](/geo-distributed-deployment-topology)。 ### 使用 TiDB Ansible 进行配置 From 435728072fbe77e5be1ef159456895ac35fb542e Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Mon, 14 Sep 2020 19:16:35 +0800 Subject: [PATCH 3/5] Apply suggestions from code review --- schedule-replicas-by-topology-labels.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/schedule-replicas-by-topology-labels.md b/schedule-replicas-by-topology-labels.md index 15c567d2e7db..566fc6ac075f 100644 --- a/schedule-replicas-by-topology-labels.md +++ b/schedule-replicas-by-topology-labels.md @@ -88,7 +88,7 @@ pd-ctl config set isolation-level zone ### 使用 TiUP 进行配置 -如果使用 TiUP 部署集群,可以在[初始化配置文件](/production-deployment-using-tiup#第-3-步编辑初始化配置文件)中统一进行 location 相关配置。TiUP 会负责在 deploy 时生成对应的 TiKV 和 PD 配置文件。 +如果使用 TiUP 部署集群,可以在[初始化配置文件](/production-deployment-using-tiup.md#第-3-步编辑初始化配置文件)中统一进行 location 相关配置。TiUP 会负责在 deploy 时生成对应的 TiKV 和 PD 配置文件。 下面的例子定义了 `zone/host` 两层拓扑结构。集群的 TiKV 分布在三个 zone,每个 zone 内有两台主机,其中 z1 每台主机部署两个 TiKV 实例,z2 和 z3 每台主机部署 1 个实例。以下例子中 `tikv-n` 代表第 n 个 TiKV 节点的 IP 地址。 @@ -143,7 +143,7 @@ tikv_servers: host: h2 ``` -详情参阅 [TiUP 跨数据中心部署拓扑](/geo-distributed-deployment-topology)。 +详情参阅 [TiUP 跨数据中心部署拓扑](/geo-distributed-deployment-topology.md)。 ### 使用 TiDB Ansible 进行配置 From 9c05f52309ee733641d3df92fe2510ed77d49baa Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 16 Sep 2020 15:42:45 +0800 Subject: [PATCH 4/5] Apply suggestions from code review --- schedule-replicas-by-topology-labels.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/schedule-replicas-by-topology-labels.md b/schedule-replicas-by-topology-labels.md index 566fc6ac075f..1e70f4e258b7 100644 --- a/schedule-replicas-by-topology-labels.md +++ b/schedule-replicas-by-topology-labels.md @@ -88,7 +88,7 @@ pd-ctl config set isolation-level zone ### 使用 TiUP 进行配置 -如果使用 TiUP 部署集群,可以在[初始化配置文件](/production-deployment-using-tiup.md#第-3-步编辑初始化配置文件)中统一进行 location 相关配置。TiUP 会负责在 deploy 时生成对应的 TiKV 和 PD 配置文件。 +如果使用 TiUP 部署集群,可以在[初始化配置文件](/production-deployment-using-tiup.md#第-3-步编辑初始化配置文件)中统一进行 location 相关配置。TiUP 会负责在部署时生成对应的 TiKV 和 PD 配置文件。 下面的例子定义了 `zone/host` 两层拓扑结构。集群的 TiKV 分布在三个 zone,每个 zone 内有两台主机,其中 z1 每台主机部署两个 TiKV 实例,z2 和 z3 每台主机部署 1 个实例。以下例子中 `tikv-n` 代表第 n 个 TiKV 节点的 IP 地址。 @@ -147,7 +147,7 @@ tikv_servers: ### 使用 TiDB Ansible 进行配置 -如果使用 TiDB Ansible 部署集群,可以直接在 inventory.ini 文件中统一进行 location 相关配置。tidb-ansible 会负责在 deploy 时生成对应的 TiKV 和 PD 配置文件。 +如果使用 TiDB Ansible 部署集群,可以直接在 `inventory.ini` 文件中统一进行 location 相关配置。`tidb-ansible` 会负责在部署时生成对应的 TiKV 和 PD 配置文件。 下面的例子定义了 `zone/host` 两层拓扑结构。集群的 TiKV 分布在三个 zone,每个 zone 内有两台主机,其中 z1 每台主机部署两个 TiKV 实例,z2 和 z3 每台主机部署 1 个实例。 From 76fdcd369c96df93197d617e5d6111f90275a8f8 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Wed, 16 Sep 2020 16:01:38 +0800 Subject: [PATCH 5/5] Update schedule-replicas-by-topology-labels.md --- schedule-replicas-by-topology-labels.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/schedule-replicas-by-topology-labels.md b/schedule-replicas-by-topology-labels.md index 1e70f4e258b7..ba87f9ba5e3a 100644 --- a/schedule-replicas-by-topology-labels.md +++ b/schedule-replicas-by-topology-labels.md @@ -86,7 +86,7 @@ pd-ctl config set isolation-level zone > > `isolation-level` 默认情况下为空,即不进行强制隔离级别限制,若要对其进行设置,必须先配置 PD 的 `location-labels` 参数,同时保证 `isolation-level` 的值一定为 `location-labels` 中的一个。 -### 使用 TiUP 进行配置 +### 使用 TiUP 进行配置(推荐) 如果使用 TiUP 部署集群,可以在[初始化配置文件](/production-deployment-using-tiup.md#第-3-步编辑初始化配置文件)中统一进行 location 相关配置。TiUP 会负责在部署时生成对应的 TiKV 和 PD 配置文件。 @@ -145,7 +145,8 @@ tikv_servers: 详情参阅 [TiUP 跨数据中心部署拓扑](/geo-distributed-deployment-topology.md)。 -### 使用 TiDB Ansible 进行配置 +
+ 使用 TiDB Ansible 进行配置 如果使用 TiDB Ansible 部署集群,可以直接在 `inventory.ini` 文件中统一进行 location 相关配置。`tidb-ansible` 会负责在部署时生成对应的 TiKV 和 PD 配置文件。 @@ -169,6 +170,8 @@ tikv-8 labels="zone=z3,host=h2" location_labels = ["zone", "host"] ``` +
+ ## 基于拓扑 label 的 PD 调度策略 PD 在副本调度时,会按照 label 层级,保证同一份数据的不同副本尽可能分散。