HDFS痛点与Ozone解决方案
HDFS痛点
- 背景:HDFS NameNode(NN)面临内存装载所有元数据、元数据访问低延时、集群易扩展等问题。
- Scale挑战:当集群节点规模增大时,NN面临GC压力、元数据访问延时波动、Block汇报风暴、启动时间长等挑战。
Ozone解决方案
- 对策一:从ViewFS迁移到RBF(Routable Filesystem),通过引入核心服务Routero实现集中式管理,支持热加载无需重启服务。
- 对策二:通过Ozone解决HDFS NN Scale问题、小文件问题,并支持100+亿个对象/文件。
Ozone架构优势
- 拆分NameNode:将NN的namespace管理功能迁移至OM(Object Manager),block管理功能迁移至SCM(Storage Container Manager),并引入RocksDB存储元数据。
- 增加Container抽象:Container是一组Block的集合,DN(DataNode)上报Container信息集给SCM,减少心跳汇报风暴,SCM管理的元数据量减少。
- 增加对象语义:基于OM实现对象语义接口,包括Bucket、Volume、Object等对象语义和URL。
Ozone组件功能
- Datanode:管理多个Container(2-16GB),Container内部数据Mapping关系由RocksDB管理,Container是备份单元,支持CLOSE和OPEN两种状态。
- SCM(Storage Container Manager):负责节点生命周期管理、Container生命周期管理、备份管理、RatisPipeline管理。
- 分层管理:通过分层管理优化数据存储和访问效率。
Ozone优势及新特性
- OzoneFS介绍:采用KV方式管理对象元数据,无需管理元数据之间的关系,文件系统额外采用树结构作为索引。
- OzoneFS优化1:增加Namenode方法,引入独立的FS元数据节点,移植HDFS NN作为新的FS元数据节点,实现完整文件语义支持和性能提升(内存节省37%,启动时间提升2.7倍)。
- OzoneFS优化2:优化OM表结构,提升元数据管理效率。
- OzoneStreaming写优化:当前Ozone写问题通过优化ChunkData和RaftLog处理,减少网络读取操作。
- OzoneECEC功能点:支持多种编解码方式(RS、XOR)、多种EC策略、文件级EC配置、在线修复、离线修复(暂不支持)、EC与副本文件相互转化(暂不支持)。
- Ozonemergerocksdb:通过RocksDB优化元数据管理。
研究结论
Ozone通过架构优化和功能增强,有效解决了HDFS在扩展性、元数据管理、对象语义等方面的痛点,提升了性能和运维效率,支持大规模数据存储和访问。