前言
前面笔者写了很多篇关于Ozone OM的相关文章,本文笔者介绍另外一个与此紧密管理的服务SCM服务,一个提供基于Datanode Container容器的中心管理服务。简单地来比喻,现有的HDFS NN服务的角色功能在Ozone中,被完美地拆成了OM+SCM服务的模式。而且这样拆分之后,SCM提供的Container存储服务能够做到更加通用,不仅仅适用于K-V的对象存储模式。不过这里假定大家已经有了对于SCM服务的基本概念了解,这样能够帮助大家理解本文下面将要阐述的内容。
SCM内部的服务模块划分
SCM,全称为StorageContainerManager,它也是一个中心管理服务,管理的对象为其下Datanode中的所有Container。Container内部则存储的是实际的Block Chunk文件(这部分内容笔者在前面文章中已经阐述过很多次了,感兴趣的同学可自行阅读前面相关文章)。
因此在这里我们可以直接能够想到的是:SCM至少会有节点管理以及Container容器管理两部分服务。不过在真实SCM服务中,它所包含的服务要远比这2个服务多,它包含了以下4个模块的服务:
- Endpoint Server,适用于外部SCM Client的请求调用,包括Container的allocation等等。
- State Manager,状态管理服务,此模块服务即包含了上面提到的Container管理,Node的Manager。另外的,这里还有Pipeline的管理,Pipeline在这里提供的是Container存储节点的位置信息,意为Container将会存储在P