tikv程序宕机后无法启动


tikv异常前天下午发生宕机情况,手动启动后无法启动,日志中无任何报错,请问是什么原因,
tikv启动方式:/usr/local/tidb/bin/tikv-server --config /home/tidb/nice-cluster/conf/tikv_6001.toml

可以提供一下完整的从前天到现在的 tikv.log 日志文件和 tikv_stderr.log 日志文件看下
另外可以确认一下:

  1. 集群版本是多少
  2. sync-log 参数值设置的是多少

集群版本为3.0版,


sync-log的值为true,
配置参数见附件
tikv_6001.toml (43.0 KB)

tikv日志有400多M,这个平台传不上来,截取了当时宕机时的日志,
tikv.log (168.8 KB)

日志中关于vm.swappiness、net.core.somaxconn参数要求均已调整

[root@b-tidb-core02 ~]# sysctl -a | egrep “vm.swappiness|net.core.somaxconn”
net.core.somaxconn = 32768
vm.swappiness = 0

  1. 提供一下宕机之后 tikv.log 中 Welcome 关键字前后部分日志看下
  2. tikv_stderr.log 日志文件中是否有一些信息

tikv日志:
链接:https://pan.baidu.com/s/1awKGoxUJ2F0UGTrwCslJyw 密码:fkhl

tikv宕机时没有产生error日志

从 tikv.log 中没有看到 tikv 节点不断重启的情况
关于手动启动无法启动 tikv 这个是怎么判断出来?手动启动的时候有什么报错信息么


程序启动过程中没有任何报错信息,加载到4163816region时程序异常退出

4163816region的状态:
[root@b-tidb-core02 ~]# /usr/local/tidb/bin/tikv-ctl --db /home/tidb/nice-cluster/data/tikv_6001/db region-properties -r 4163816
num_files: 8
num_entries: 5578133
num_deletes: 2663391
mvcc.min_ts: 414137455257845762
mvcc.max_ts: 420015803636645955
mvcc.num_rows: 2044799
mvcc.num_puts: 2740096
mvcc.num_versions: 2914742
mvcc.max_row_versions: 4442
middle_key_by_approximate_size: t\200\000\000\000\000\000E?_r\200\000\000\000\000\003\311\372

检查数据目录发现这个问题,
[root@b-tidb-core02 ~]# /usr/local/tidb/bin/tikv-ctl --db /home/tidb/nice-cluster/data/tikv_6001/db bad-regions
4163816: “last index < applied index”

再看了一下日志,发现有很多 RocksDB Input/output error 的信息

[2020/10/09 16:17:30.184 +08:00] [ERROR] [region.rs:373] ["failed to apply snap!!!"] [err="snap failed \"[src/raftstore/store/snap/io.rs:136]: IO error: While pread offset 7614464 len 209715200: /home/tidb/ssd/nice-cluster/data/tik       v_6001/db/31298129.sst: Input/output error\""]
[2020/10/09 16:17:30.194 +08:00] [ERROR] [region.rs:373] ["failed to apply snap!!!"] [err="snap failed \"[src/raftstore/store/worker/region.rs:292]: RocksDb IO error: While pread offset 7614464 len 209715200: /home/tidb/ssd/nice-cl       uster/data/tikv_6001/db/31298129.sst: Input/output error\""]

建议通过 dmesg 看下磁盘故障情况


dmsg中有大量的这种报错,出问题后找运维同步给看了,物理磁盘没有异常,为了验证磁盘是否有问题,我在该机器该磁盘上启动了别的程序,发现能正常启动,原理上这个盘应该没问题

物理磁盘可能是没有问题,也有可能出在 raid 卡或者磁盘 controller 上

https://unix.stackexchange.com/questions/509431/kernel-buffer-i-o-error-on-device-does-my-server-have-a-hardware-problem

在磁盘上新启动程序没有报错,可能是因为数据可能没有在损坏的 logical block 上,建议可以先缩容掉这个节点,重新格式化磁盘进行挂载看下