紧急扩散!HDFS3.X 系列的 EC 纠删码策略有个安全隐患 HDFS-16420,极端情况下会造成数据丢失!
1. HDFS-16420 BUG 概述
HDFS3.X 的 EC 纠删码功能,近期被发现有个 BUG:该 BUG 会导致,以纠删码机制存放的目录和文件,在某些特殊情况下,会被系统误删,从而造成数据丢失。
目前 HADOOP 社区已经通过 HDFS-16420 在版本 3.4.0/3.2.3/ 3.3.2 中修复了该 BUG,Cloudera 针对该 BUG 也给出了详细的分析和修复建议:
2. HDFS-16420 BUG 原因
该 BUG 的根本原因是,当前 NameNode 在判断某些 block 块是否有多余 replica 副本,并进而删除这些多余的 replica 副本的算法逻辑有问题,会误删某些使用了纠删码策略的文件的 EC block 块。
比如在 NameNode 发生了 fail over 之后不久,就运行了 hdfs balancer 负载均衡操作, 或者 recommission 重新上线了原先退役的某些 datanodes 节点,都有可能会造成某些 EC block 在同一个