# label 的配置

![center](./student-guide/diagram/04-configuration-01-01.png)
-------------------------------------------------------------
上面大家了解了 label 的概念和作用，接下来我们看一下如何设置 label。

首先，在 PD 节点中要标识出 label 的格式信息，也就是源信息，如下：

```
[replication]                     
location-labels = [“dc”，“zone”, “rack”, “host”] 
```
其中，“dc”, “rack” 和 “host” 分别表示 数据中心，机柜或机架和主机，都是物理位置或者设备，非常好理解。

但是，“zone” 这个概念其实是个逻辑概念，用来表示副本可以隔离的最小位置，它的数量始终与副本一致。举个例子，如果我们是默认 3 副本，如果有 3 个数据中心（DC），那么我们就设置 3 个 zone，每个 zone 对应一个数据中心（DC），副本也放在不同的 zone 上。如果有 1 个数据中心，但是有 3 个机柜（rack），那么我们也设置 3 个 zone，每个 zone 对应一个机柜（rack），副本也放在不同的 zone 上。

其次，我们看下 TiKV 的配置，在 TiKV 的配置中，

```
tikv_servers:
  - host: 10.63.10.30
    config:
      server.labels: { dc: "1", zone: "1", rack: "1", host: "1" }
  - host: 10.63.10.31
    config:
      server.labels: { dc: "2", zone: "2", rack: "3", host: "6" }
  - host: 10.63.10.32
    config:
      server.labels: { dc: "3", zone: "3", rack: "5", host: "9" }
```

解读如下：
  主机：10.63.10.30 所在 DC 1 数据中心的 rack 1 机柜，主机编号为 1，zone 的编号为 1.
  主机：10.63.10.31 所在 DC 2 数据中心的 rack 3 机柜，主机编号为 6，zone 的编号为 2.
  主机：10.63.10.32 所在 DC 3 数据中心的 rack 5 机柜，主机编号为 9，zone 的编号为 3.

根据之前介绍的知识，当 PD 感知到 3 个主机的位置后，就可以将 region 的三个副本放置在 3 台主机上了，这样就会获得最大的高可用性。
