TiKV节点既然失效,为什么还能迁移数据

当某个 TiKV 节点失效,并且在一段时间内(默认 30 分钟)无法恢复,PD 会将其上的数据迁移到其他的 TiKV 节点上。

是为了优化这种场景:当机器宕机后,能在30分钟内启起来并且实例能继续使用。这样一来,就不需要将这个实例上的 region 调度到其他实例上。在有大量 region 的场景下,就能避免大量的 region 调度,进而减少对线上压力。

TiKV 节点失效会产生一些 Region 变成缺副本状态,即这些 Region 3 副本只有 2 副本在线,此时虽然是可用的,但是不能容忍再发生宕机了。这种情况下我们说迁移数据,实际上指的是另外再找其他正常的 TiKV 节点为这些 Region 补齐 3 副本,新补上的副本是从另外两个正常的副本复制过来的。