前言
HDFS Ozone对象存储最近会有一个大动作:merge到主代码分支。这就动作具有十分大的意义,因为它意味着Ozone将在下一个最近发布的hadoop版本中出现并可以被广大用户所使用。所以在这个背景下,Ozone第一版本的代码和结构基本已经确定完毕,这个时候,我们再从大的层面来学习、了解这个框架、体系显然还是很有必要的。官方社区已经有许多相应的介绍文档在介绍这方面的内容了。笔者也大致阅读了一下,来简单概述其中一些要点。
Ozone高层设计
首先要明白Ozone是用来干什么的:
基于Apache Hadoop之上用来做亿万数量级对象存储的。
Ozone第一版本内部的架构图如下所示:
下面,笔者依次从上到下介绍其中相关的组件。
Ozone Client
Ozone client客户端在Ozone内部是一个对外部开放使用的模块,比如说Ozone相关的shell命令会触发到ozone client,这就是图中显示的Ozone Cli。
再来说说图中左上角的Rest Handler。这是什么意思呢?Ozone client能够支持2种方式的通信:RPC方式和Restful接口的方式。其中能做到一键切换。
Corona是Ozone内部的性能测试工具,它的原理是利用Ozone客户端接口来做一些benchmark。它可以分为2种模式:online和offline模式。