HDFS副本机制是否会增加文件系统占用的总存储空间?
HDFS多副本存储空间占用问题解答
结论
绝大多数默认配置的场景下,答案是是的。
具体说明
- HDFS默认的副本系数为3,文件写入时会被切分成固定大小的逻辑数据块(默认128M/256M),每个数据块都会按照配置的副本数,存到不同机架的不同DataNode节点上,用来实现节点宕机、磁盘损坏时的数据容错。这种情况下100TB的逻辑文件,实际占用的物理存储空间总大小就是 100TB * 3 = 300TB。
- 存在两类特殊场景不会占用到300TB:
- 手动调整了副本系数:你可以针对单个目录/单个文件单独设置更低的副本数,比如访问频率极低的冷归档数据可以设置为1或2副本,对应物理占用就会降到100TB或者200TB。
- 启用了纠删码(EC)存储策略:HDFS 3.x之后支持的纠删码存储策略,不需要存多份完整副本,通过校验块实现同等容错能力的同时大幅降低存储开销,比如常用的RS-6-3策略,存储冗余仅为50%,100TB的文件仅需要150TB物理空间就能达到和3副本接近的容错能力,这种场景下远低于300TB的占用。
注:小文件场景的总占用计算逻辑一致,都是文件实际逻辑大小乘以副本数,不会因为单个文件小于数据块大小就占用整块数据块的物理存储空间。
内容的提问来源于stack exchange,提问作者Abhay
相关产品推荐
相关产品推荐

