Storage Container Manager (SCM) 是块空间管理的 leader 节点,其主要职责是创建和管理容器,而容器也是 Ozone 的主要复制单元。
Storage Container Manager (SCM) 为 Ozone 集群提供了多项关键功能,承担了集群管理器、证书颁发机构、块管理器以及复制管理器的角色。
SCM 负责创建 Ozone 集群。当通过 init
命令启动 SCM 时,SCM 将创建担任证书颁发机构所需的集群 ID 和根证书。同时,SCM 负责管理集群中数据节点的整个生命周期。
SCM 作为块管理器,负责将块分配给相应的数据节点,客户端可以直接读写这些块;
SCM 负责跟踪所有块的副本,当有数据节点或磁盘掉线,SCM 侦测到后,会启动相应的数据节点复制缺失的块,以确保高可用;
SCM 的证书颁发机构 负责为集群中的每个服务颁发身份证书,这种证书架构可以很方便地在网络层启用双向认证(mTLS)。同时,Ozone 的块令牌也依赖于这种证书架构。
针对 Storage Container Manager 的详细视图,本节提供有关网络服务和持久化数据的快速概述。
注意:客户端不能直接连接 SCM 。
以下数据持久化在 Storage Container Manager 端的指定 RocksDB 目录中
配置项 | 默认值 | 描述 |
---|---|---|
ozone.scm.container.size | 5GB | Ozone 使用的默认容器的大小 |
ozone.scm.block.size | 256MB | 数据块的默认大小 |
hdds.scm.safemode.min.datanode | 1 | 能够启动实际工作所需的最小数据节点数 |
ozone.scm.http-address | 0.0.0.0:9876 | SCM 服务端使用的 HTTP 地址 |
ozone.metadata.dirs | none | 存储持久化数据的目录(RocksDB) |