5.0.4 版本使用placement rule 实现同机房5(3+2)架构 miss peer 持续增长

【 TiDB 使用环境】测试
【 TiDB 版本】5.0.4
集群架构

原始架构:10.xxx.xx.xx: 的tikv机器未扩容,只有172的机器

操作:

  1. 修改BJ1 机房 tikv server.label tiup cluster edit-config xxx && tiup cluster reload xxx -R tikv -y

  2. BJ4 不选举出leader
    tiup ctl:v5.0.5 pd --pd=http://127.0.0.1:2379 config set label-property reject-leader dc bj4

  3. 扩容 3台10.x.x.x:20160 tikv机器
    tiup cluster scale-out tidb_placement_rule_remove scale-out-bj4.yaml -u root -p

  4. 生效placement rule,让BJ4 机房有2个region 实现5副本(3=2)

tiup ctl:v5.0.4 pd --pd=http://127.0.0.1:2379 config placement-rules rule-bundle save --in=rules.json
tiup ctl:v5.0.4 pd --pd=http://127.0.0.1:2379 config placement-rules show

规则:

[
  {
    "group_id": "pd",
    "id": "dc-bj1",
    "start_key": "",
    "end_key": "",
    "role": "voter",
    "count": 3,
    "label_constraints": [
      {
        "key": "dc",
        "op": "in",
        "values": [
          "bj1"
        ]
      }
    ],
    "location_labels": [
      "dc"
    ]
  },
  {
    "group_id": "pd",
    "id": "dc-bj4",
    "start_key": "",
    "end_key": "",
    "role": "follower",
    "count": 2,
    "label_constraints": [
      {
        "key": "dc",
        "op": "in",
        "values": [
          "bj4"
        ]
      }
    ],
    "location_labels": [
      "dc"
    ]
  }
]

现象:

  1. 经过2h BJ4 机房只新增了1个副本,且所有副本都在一个tikv机器上,此时 miss-peer-region-count 一直增加

  2. 当4副本region调度完成后,等待半小时发现还是没有5副本,5副本region数量=0

tiup ctl:v5.0.4 pd --pd=http://127.0.0.1:2379 region --jq=".regions[] | {id: .id, peer_stores: [.peers[].store_id] | select(length == 5)}" |wc -l 
  1. 检查新扩容的tikv 日志:

  2. 重启tikv 后,开始 replica第5region;miss-peer 开始减少

tiup cluster restart xxx -N tikv-02,tikv-03

image

问题:

  1. 为什么重启tikv之前,没有生成第5 副本reigon

  2. 为什么另两个tikv在 重启前没收到 region调度信息?

使用Placement Rule 功能,建议你从6.1以后开始使用,修复了不少的问题。
而且6.1以后是正式发布了的功能,可以用 SQL 来调度,会好用很多。

可以参考我之前的经验:专栏 - TiDB 冷热存储分离解决方案 | TiDB 社区

1 个赞

潜在能力比较大。容灾也很好用

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。