# label 的配置

![`smart`](./student-guide/diagram/LabelConfiguration_aa_001_20220509.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 台主机上了,这样就会获得最大的高可用性。



