TiDB 集群由单可用区原地改造为多可用区部署

【TiDB 使用环境】生产环境
【TiDB 版本】v7.5.7
【部署方式】机器部署
【遇到的问题:问题现象及影响】
当前TiDB集群为v7.5.7版本,集群部署在可用区K区。集群总计9个tidb server、3个pd server、16个tikv server节点。计划由单可用区K区原地改造成多可用区【可用区K、J、F】。
1、tidb/pd server可以通过扩容、缩容的方式改造成多可用区。
2、pd需要修改replication.location-labels: [“zone”, “host”]参数,tikv也需要调整server.grpc-compression-type: gzip参数。
3、TiKV节点需要进行打标config: server.labels。
如何在不影响集群可用性的基础上,原地将集群从单可用区调整为多可用区。

你不是都写好了怎么做吗?写的挺好的

方案大纲没有问题,影响就是扩容或者设置标签的时候涉及到副本迁移、leader的迁移吧。

Tiflash怎么扩容

建议采用滚动迁移方式,分步操作:

  1. 先调整PD配置,设置location-labels和隔离级别:
tiup ctl:v7.5.7 pd config set location-labels "zone,host"
tiup ctl:v7.5.7 pd config set max-replicas 3
  1. 对TiKV节点逐个打标并滚动重启。
  • 核心底线:全程集群读写正常、无切换抖动、无数据丢失;TiKV 数据迁移依靠PD 调度器自动均衡 Region,禁止手动 drop peer / 强制迁移 Peer。

  • 变更顺序:标签配置 → PD 配置热更新 → 扩容多 AZ 新节点(PD→TiDB→TiKV)→ 调度打散 Region 至三 AZ → 逐步下线原 K 区老旧节点 → 最终校验多 AZ 高可用策略。

  • 关键参数

  • PD:replication.location-labels = ["zone", "host"](决定副本按 AZ、主机两层隔离)

  • TiKV:server.labels 打上 zone 标识、server.grpc-compression-type = gzip

  • 副本数默认 3 副本,改造完成后 3 个副本分别落在 K/J/F 不同可用区,达成 AZ 级容灾

扩容TiKV多 AZ 新节点需要打标嘛?如果打标,现存老的没有打标的tikv会不会有问题?
2、调度打散 Region 至三 AZ
这一步是怎么调度的?

该步骤是否存在问题?
1、调整PD参数【可在线修改】,设置set location-labels “zone,host”
2、调整tikv参数【不支持在线修改】,设置server.grpc-compression-type: gzip参数
3、先将所有的tikv节点打标为shanghai-k可用区:

tikv_servers:
  - host: 192.168.100.11
    config:
      server.labels:  {zone: "shanghai-k", host: "192.168.100.11"}
 - host: 192.168.100.12
    config:
      server.labels:  {zone: "shanghai-k", host: "192.168.100.12"}
 - host: 192.168.100.13
    config:
      server.labels:  {zone: "shanghai-k", host: "192.168.100.13"}
 - host: 192.168.100.14
    config:
      server.labels:  {zone: "shanghai-k", host: "192.168.100.14"}
 - host: 192.168.100.15
    config:
      server.labels:  {zone: "shanghai-k", host: "192.168.100.15"}
 - host: 192.168.100.16
    config:
      server.labels:  {zone: "shanghai-k", host: "192.168.100.16"}

4、reload所有tikv节点,让标签和grpc-compression-type参数生效。
5、完成所有tikv节点打标
6、扩容12台tikv节点,6台打标为shanghai-f,6台打标为shanghai-j
7、region自动均衡

建议按「先标签与副本策略、再扩容迁副本、最后缩老节点」:1)给 TiKV/PD/TiDB 打 zone 标签并配置 location-labels;2)把副本策略改为跨 zone;3)分批把新 zone 机器扩进集群,等 Region 均衡;4)再缩或替换原单 zone 多余节点。全程关注副本健康与切换风险,变更窗口做演练;grpc 压缩等可另开优化,不是多 AZ 的前置硬条件。