【TiDB 使用环境】生产环境
【TiDB 版本】V7.1.0 社区版
【部署方式】物理机部署
【操作系统/CPU 架构/芯片详情】kylin V10SP2 /鲲鹏 ARM
【机器部署详情】cpu 64C、内存256G,磁盘1000G NVME
【集群数据量】1
【集群节点数】4PD+4TiKV ,业务以Key-Value方式直接存取TiKV
【问题复现路径】其中一台机器RAID卡故障,进行了更换和重启机器
【遇到的问题:问题现象及影响】更换raid卡并重启后,4台所有tikv日志一直报 cannot step raft local message错误,然后过一段时间后,tikv不能存取数据,必须重启,且重启后依然存在cannot step raft local message错误。检查了没有bad sst和正在调度的任务。四台机器的CPU开销均在10%以下
【资源配置】
【复制黏贴 ERROR 报错的日志】
[2026/02/16 13:33:54.165 +08:00] [ERROR] [peer.rs:618] [“handle raft message err”] [err_code=KV:Raft:StepLocalMsg] [err=“Raft raft: cannot step raft local message”] [peer_id=2633047] [region_id=2632625]
[2026/02/16 13:33:54.300 +08:00] [ERROR] [peer.rs:618] [“handle raft message err”] [err_code=KV:Raft:StepLocalMsg] [err=“Raft raft: cannot step raft local message”] [peer_id=2633047] [region_id=2632625]
[2026/02/16 13:33:56.302 +08:00] [ERROR] [peer.rs:618] [“handle raft message err”] [err_code=KV:Raft:StepLocalMsg] [err=“Raft raft: cannot step raft local message”] [peer_id=2633047] [region_id=2632625]
[2026/02/16 13:33:58.304 +08:00] [ERROR] [peer.rs:618] [“handle raft message err”] [err_code=KV:Raft:StepLocalMsg] [err=“Raft raft: cannot step raft local message”] [peer_id=2633047] [region_id=2632625]
[2026/02/16 13:34:00.306 +08:00] [ERROR] [peer.rs:618] [“handle raft message err”] [err_code=KV:Raft:StepLocalMsg] [err=“Raft raft: cannot step raft local message”] [peer_id=2633047] [region_id=2632625]
[2026/02/16 13:34:01.106 +08:00] [ERROR] [peer.rs:618] [“handle raft message err”] [err_code=KV:Raft:StepLocalMsg] [err=“Raft raft: cannot step raft local message”] [peer_id=2633047] [region_id=2632625]
[2026/02/16 13:34:02.308 +08:00] [ERROR] [peer.rs:618] [“handle raft message err”] [err_code=KV:Raft:StepLocalMsg] [err=“Raft raft: cannot step raft local message”] [peer_id=2633047] [region_id=2632625]
[2026/02/16 13:34:04.310 +08:00] [ERROR] [peer.rs:618] [“handle raft message err”] [err_code=KV:Raft:StepLocalMsg] [err=“Raft raft: cannot step raft local message”] [peer_id=2633047] [region_id=2632625]
[2026/02/16 13:34:05.490 +08:00] [ERROR] [peer.rs:618] [“handle raft message err”] [err_code=KV:Raft:StepLocalMsg] [err=“Raft raft: cannot step raft local message”] [peer_id=2633047] [region_id=2632625]
[2026/02/16 13:34:06.312 +08:00] [ERROR] [peer.rs:618] [“handle raft message err”] [err_code=KV:Raft:StepLocalMsg] [err=“Raft raft: cannot step raft local message”] [peer_id=2633047] [region_id=2632625]
[2026/02/16 13:34:08.314 +08:00] [ERROR] [peer.rs:618] [“handle raft message err”] [err_code=KV:Raft:StepLocalMsg] [err=“Raft raft: cannot step raft local message”] [peer_id=2633047] [region_id=2632625]
【其他附件:截图/日志/监控】
[peer_id=2633047] [region_id=2632625]
查下属于哪个节点的这个 region 坏了?可以手动修复一下
优先通过「下线异常节点→清理 Raft 状态→重新加入集群」修复,无需全量重建;
这是把tikv当做磁盘版本的redis在用?
节点重启后,携带旧的 Raft 任期(Term)、日志索引(Index)参与集群共识,当其他正常节点发送的 Raft 消息与该节点本地状态冲突
节点的raft两阶段同步机制出问题了,看上去像是region不一致了吧
检查 dmesg 有没有 RAID / SCSI / IO 错误:
dmesg -T | grep -iE “error|fail|raid|scsi|timeout|lockup”
如果更换 RAID 时系统时间漂移,也可能:
raft election 异常
message step 失败
检查:
timedatectl
测试磁盘延迟
fio --name=test --filename=/data/testfile
–rw=randwrite --bs=4k --size=1G --numjobs=4
–iodepth=32 --direct=1
如果延迟 > 5ms
TiKV 就会出问题。
RAID 卡故障导致 TiKV 节点硬重启