tidb集群安装之后初始化失败

【TiDB 使用环境】生产环境
【TiDB 版本】v8.5.3
【操作系统】Rocky Linux release 9.5
【部署方式】华为云
【集群数据量】暂无
【集群节点数】3节点
【问题复现路径】集群部署完成之后初始化报错
【遇到的问题:问题现象及影响】


提示启动超时
查看日志文件/root/.tiup/logs/tiup-cluster-debug-2025-09-11-16-39-43.log

我发现启动的pd服务是启动的 也能telnet通,但是用tiup cluster display jaciov命令看是down状态

【资源配置
这是我的部署配置文件
global:
user: “root”
ssh_port: 22
deploy_dir: “/data/tidb-deploy”
data_dir: “/data/tidb-data”
log_dir: “/data/tidb-deploy/log”

server_configs:
tidb:
instance.tidb_slow_log_threshold: 300
tikv:
readpool.storage.use-unified-pool: false
readpool.coprocessor.use-unified-pool: true
pd:
replication:
enable-placement-rules: true
max-replicas: 1
location-labels: [“host”]
tiflash:
logger.level: “info”

pd_servers:

  • host: 10.153.220.11
    name: “pd-1”
    client_port: 2379
    peer_port: 2380
    config:
    replication:
    enable-placement-rules: true
    max-replicas: 1
    deploy_dir: “/data/tidb-deploy/pd-2379”
    data_dir: “/data/tidb-data/pd-2379”
    log_dir: “/data/tidb-deploy/pd-2379/log”
  • host: 10.153.220.12
    name: “pd-2”
    client_port: 2379
    peer_port: 2380
    config:
    replication:
    enable-placement-rules: true
    max-replicas: 1
    deploy_dir: “/data/tidb-deploy/pd-2379”
    data_dir: “/data/tidb-data/pd-2379”
    log_dir: “/data/tidb-deploy/pd-2379/log”
  • host: 10.153.220.13
    name: “pd-3”
    client_port: 2379
    peer_port: 2380
    config:
    replication:
    enable-placement-rules: true
    max-replicas: 1
    deploy_dir: “/data/tidb-deploy/pd-2379”
    data_dir: “/data/tidb-data/pd-2379”
    log_dir: “/data/tidb-deploy/pd-2379/log”

tidb_servers:

  • host: 10.153.220.11
    port: 4000
    status_port: 10080
    deploy_dir: “/data/tidb-deploy/tidb-4000”
    log_dir: “/data/tidb-deploy/tidb-4000/log”
  • host: 10.153.220.12
    port: 4000
    status_port: 10080
    deploy_dir: “/data/tidb-deploy/tidb-4000”
    log_dir: “/data/tidb-deploy/tidb-4000/log”
  • host: 10.153.220.13
    port: 4000
    status_port: 10080
    deploy_dir: “/data/tidb-deploy/tidb-4000”
    log_dir: “/data/tidb-deploy/tidb-4000/log”

tikv_servers:

所有TiKV实例都需要添加config.server.labels部分

  • host: 10.153.220.11
    port: 20160
    status_port: 20180
    config:
    server.labels:
    host: “host1-20160”
    deploy_dir: “/data/tidb-deploy/tikv-20160”
    data_dir: “/data/tidb-data/tikv-20160”
    log_dir: “/data/tidb-deploy/tikv-20160/log”
  • host: 10.153.220.11
    port: 20161
    status_port: 20181
    config:
    server.labels:
    host: “host1-20161”
    deploy_dir: “/data/tidb-deploy/tikv-20161”
    data_dir: “/data/tidb-data/tikv-20161”
    log_dir: “/data/tidb-deploy/tikv-20161/log”
  • host: 10.153.220.11
    port: 20162
    status_port: 20182
    config:
    server.labels:
    host: “host1-20162”
    deploy_dir: “/data/tidb-deploy/tikv-20162”
    data_dir: “/data/tidb-data/tikv-20162”
    log_dir: “/data/tidb-deploy/tikv-20162/log”
  • host: 10.153.220.12
    port: 20160
    status_port: 20180
    config:
    server.labels:
    host: “host2-20160”
    deploy_dir: “/data/tidb-deploy/tikv-20160”
    data_dir: “/data/tidb-data/tikv-20160”
    log_dir: “/data/tidb-deploy/tikv-20160/log”
  • host: 10.153.220.12
    port: 20161
    status_port: 20181
    config:
    server.labels:
    host: “host2-20161”
    deploy_dir: “/data/tidb-deploy/tikv-20161”
    data_dir: “/data/tidb-data/tikv-20161”
    log_dir: “/data/tidb-deploy/tikv-20161/log”
  • host: 10.153.220.12
    port: 20162
    status_port: 20182
    config:
    server.labels:
    host: “host2-20162”
    deploy_dir: “/data/tidb-deploy/tikv-20162”
    data_dir: “/data/tidb-data/tikv-20162”
    log_dir: “/data/tidb-deploy/tikv-20162/log”
  • host: 10.153.220.13
    port: 20160
    status_port: 20180
    config:
    server.labels:
    host: “host3-20160”
    deploy_dir: “/data/tidb-deploy/tikv-20160”
    data_dir: “/data/tidb-data/tikv-20160”
    log_dir: “/data/tidb-deploy/tikv-20160/log”
  • host: 10.153.220.13
    port: 20161
    status_port: 20181
    config:
    server.labels:
    host: “host3-20161”
    deploy_dir: “/data/tidb-deploy/tikv-20161”
    data_dir: “/data/tidb-data/tikv-20161”
    log_dir: “/data/tidb-deploy/tikv-20161/log”
  • host: 10.153.220.13
    port: 20162
    status_port: 20182
    config:
    server.labels:
    host: “host3-20162”
    deploy_dir: “/data/tidb-deploy/tikv-20162”
    data_dir: “/data/tidb-data/tikv-20162”
    log_dir: “/data/tidb-deploy/tikv-20162/log”

monitoring_servers:

  • host: 10.153.220.11
    deploy_dir: “/data/tidb-deploy/prometheus-9090”
    data_dir: “/data/tidb-data/prometheus-9090”
    log_dir: “/data/tidb-deploy/prometheus-9090/log”

grafana_servers:

  • host: 10.153.220.11
    port: 3000
    deploy_dir: “/data/tidb-deploy/grafana-3000”
1 个赞

提示的日志文件里有什么报错信息吗?
image

1 个赞

1 个赞

好像说pd异常,但是各节点的pd我看都启动着的

1 个赞


3个服务器看进程都在 但是看状态是down

1 个赞

既然pd没有启动成功,可以优先看pd的日志,或者手动重启pd节点,查看日志

1 个赞

是不是防火墙没关?

2 个赞

这是不是测试机啊,配置很低的那种?
再碰到服dwon了,可以看一下那段时间服务器 cpu 使用情况,
还有就是能telnet 不能说明服务一定是启动的吧

1 个赞

排查到问题了 好像是磁盘问题,我用8块盘组的软raid5,挂载在/data目录下面 然后配置/data目录就会报上面的错误 但是用系统盘下面的目录服务就运行了



就很奇怪 为啥组的raid5就不行

1 个赞

你上面日志里面写着不能读取。
我感觉还是你组的raid5有点问题。
重点测试一下读取方面,真的没问题嘛?

tidb本来也是多副本的,用raid其实会降低性能。如果数据真的重要还是提高副本数量会更好。

1 个赞

raid同步问题,建好raid没同步完的时候磁盘读写很卡导致的,

那磁盘应该怎么分配呢,就直接分区格式化挂载么,8个盘挂载完 然后分8个kv吗,可以推荐下怎么配置比较合理么,第一次正tidb不咋会,我的服务器是16核64G内存 8*3.6T磁盘

2 个赞

raid几也不影响装软件,应该是其他问题

1 个赞

他这个同步到100%之后 我装就没问题了 :joy:,期间别的也没改过

1 个赞

使用tidb自身的高可用。。然后做raid0

1 个赞

嗯嗯 谢谢 我来换成raid0看看

1 个赞

你的副本数=1 但却要求跨host ??你的这种配置会导致pd无法选出符合跨host要求的副本,从而导致region无法正常调度,集群初始化失败,或者region长期无leader。

下面是你的参数:
max-replicas: 1
location-labels: [“host”]

2 个赞

副本数我改成2了,目前集群部署完了用的软raid0,用 dd命令和bonnie++测试磁盘读写速度能到800M/s-1G/s左右。但是java程序数据插入很慢,只有80-150M/s,请问这个是啥问题呢

1 个赞

你啥盘。盘太差的话,不推荐上 tidb 生产。

1 个赞

我们遇到过,比如10条数据,程序写10个insert语句,和写1个insert语句跟10个values,这两种是有性能差异的,后者插入更快,可以验证一下。

1 个赞

云主机啥配置?

1 个赞