概念:
失效副本
: 在 ISR 集合之外,也就是处于同步失效或功能失效(比如副本处于非存活状态)的副本统称为失效副本。
当 ISR 集合中的一个 follower 副本滞后 leader 副本的时间超过此参数指定的值时(replica.lag.time.max.ms 参数的默认值为10000)则判定为同步失败,需要将此 follower 副本剔除出 ISR 集合。
这些follower副本处于同步失效状态。
Under Replicated Partition
: 具有
失效副本
的分区即为
Under Replicated Partition
。
offline partition :
partition的leader挂了, 状态为OfflinePartition;
什么场景下会出现offline partition?
1
The brokers with replicas are down.
某个节点brokern宕机。 该节点上的leader partition 瞬间挂掉, 立即出现大量offline partition. 随着leader partition的重新选举, offline partition的数量会迅速减少甚至消失。
2 Unclean leader election is disabled and the replicas aren’t in sync.
当参数unclean.leader.election.enable=false 时, 如果某个leader patition 挂掉,但是重新选举leader失败。那么此topic将永远处于offline状态。
试想: 当某个topic的副本都不在sync列表, 代表副本落后leader 太多。leader挂掉,此时kafka将不允许不在sync列表中的副本partition成为leader. 除非设置 unclean.leader.election.enable=true,但是此时会导致数据丢失。
所以出现offline partition一般是节点故障,但是其它节点副本又落后leader太多导致。
1 CDH Kafka实例出现红色告警offline partition
2 查看CDH 图表实例:发现从4月14号3:20 ,到今天4月15号一直保持offline partitions数量和under replicated数量不变。
3 在命令行查看under replicated parttion 状态的topic
./kafka-topics.sh –describe –zookeeper sz-xx-01:2181 –under-replicated-partitions
通过上述命令 发现, topic relication都是 【90 91 92】 , 但是ISR清单都是只有 【90, 92 】。91 没有在leader分区。
基本断定broker id91所在节点 SZ-XX-02 有问题。
4 在节点 SZ-XX-02 查看broker id 相关日志。 时间起点 4月14号 3:20左右。
/var/log/kafka/kafka-broker-sz-xx-02.log, 找到4月14号3点20左右的信息。
发现当时出现了 磁盘空间不足: /data2/local/kafaka路径,检查磁盘空间,目前已经有剩余空间了。
5 原因分析: 经上述步骤,基本断定,因为broker 91 磁盘空间空间不足,导致该节点当时的所有副本都变为 under replicated状态。 但是磁盘空间后来变的充足了, 并没有自动恢复。
重启broker id 91, 所有问题解决, under replicated状态的分区1分钟左右慢慢显示正常。offline partition分区也恢复。
91也均衡的变为leader parttion