Ozone:Hadoop 原生分布式对象存储上 百PB数据的集群也不鲜见。 HDFS通过把文件系统元数据全部加载到Namenode内存中,给客户端提供了低延迟的元数据访问 。由于元数据需要全部加载到内存,所以一个HDFS集群能支持的最大文件数,受JAVA堆内存的限 制,上限大概是4亿左右个文件。所以HDFS适合大量大文件(几百兆以上)的集群,如果集群中 有非常多的小文件,HDFS的元数据访问性能会受到影响。虽然可以通过各种Federation技术来扩 可能的保持架构 的简单,即使因此需要可扩展性上做一些妥协。但是在Ozone在扩展性上绝不逊色,目标 是支持单集群1000亿个对象。 构架分层 Ozone 采用分层的文件系统。Namespace 元数据的管理,数据块和节点的管理分开。用户可以对二者独立扩展。 容易恢复 HDFS 一个关键优点是,它能经历大的灾难事件,比如集群级别的电力故障,而不丢失数据, 并 且能高效的从灾难中恢复。对于一些 Ozone:Hadoop 原生分布式对象存储 Spark大数据博客 - https://www.iteblog.com 构架 Ozone 从结构上分为三个部分,Ozone Manager, 元数据管理;Storage Container Manager, 数据块和节点管理;Datanode, 数据最终的存放处。类比 HDFS 的构架, 可以看到原来 Namenode 的功能,现在由 Ozone0 码力 | 10 页 | 1.24 MB | 1 年前3
What's New In Apache Ozone 1.3/vol/buck1/dir1/dir2/dir3/file-n Ozone Key的存储 ⽬录 ⽂件 删除/重命名⽬录 耗时且⾮原⼦操作 对象存储:采⽤ KV ⽅式管理对象元数据,⽆ 需管理元数据之间的关系 ⽂件系统:额外地,需要采⽤树结构作为索 引,管理元数据之间的关系 15 新存储格式 16 引⼊Bucket Metadata Layout I. FILE_SYSTEM_OPTIMIZED (FSO) : delete(“/catelog_sales”) 18 合并Container RocksDB实例 - 现状和问题 每个Container有独⽴的RocksDB实例保存元数据(V2) 问题 I. ⼤容量磁盘,系统中有上万个Container和RocksDB实例 II. 内存开销⼤,需保留众多RocksDB实例 III. 性能影响,频繁create/open/close实例 稳定性,频繁open/close⾮RocksDB的推荐⽤法,容易触发潜在问 题 解决办法 - 合并Container RocksDB实例 19 新⽅案 每个盘上所有Container共⽤⼀个RocksDB实例 保存元数据(V3) 好处 I. 磁盘空间,容易估算RocksDB的磁盘使⽤量上限 II. 内存开销,所有RocksDB实例可Cache在内存 III. 性能影响,DN运⾏期间⽆需create/open/close实例 0 码力 | 24 页 | 2.41 MB | 1 年前3
2022 Apache Ozone 的最近进展和实践分享/vol/buck1/dir1/dir2/dir3/file-n Ozone Key的存储 ⽬录 ⽂件 删除/重命名⽬录 耗时 对象存储:采⽤ KV ⽅式管理对象元数据,⽆ 需管理元数据之间的关系 ⽂件系统:额外地,需要采⽤树结构作为索 引,管理元数据之间的关系 ⽂件系统优化 ● FILE_SYSTEM_OPTIMIZED (FSO) : ⽀持纯粹的⽂件语义, 有限的 S3 兼容性 ⽂件的存储Key格式: 1MB Chunk6 1MB Parity1 1MB Parity2 1MB 条带1 条带2 0 单盘单RocksDB实例(HDDS-3630) 当前 - 每个Container的元数据保存在独⽴RocksDB实例中 单盘单RocksDB实例 问题 • ⼤容量磁盘,系统中有上万个Container和 RocksDB实例 • 内存开销⼤,需保留众多RocksDB实例 •0 码力 | 35 页 | 2.57 MB | 1 年前3
共 3 条
- 1













