【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怎么扩容
建议采用滚动迁移方式,分步操作:
- 先调整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
- 对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 的前置硬条件。