Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 53 additions & 16 deletions hadoop-hdds/docs/content/concept/StorageContainerManager.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,26 +24,63 @@ summary: Storage Container Manager(SCM)是 Ozone 的核心元数据服务
limitations under the License.
-->

<div class="alert alert-warning">
Storage Container Manager (SCM) 是*块空间管理*的 leader 节点,其主要职责是创建和管理[容器]({{<ref path="concept/Containers.md" lang="en">}}),而容器也是 Ozone 的主要复制单元。

注意:本页面翻译的信息可能滞后,最新的信息请参看英文版的相关页面。
![Storage Container Manager](StorageContainerManager.png)

</div>
## 主要职责

SCM 为 Ozone 集群提供了多种重要功能,包括:集群管理、证书管理、块管理和副本管理等
Storage Container Manager (SCM) 为 Ozone 集群提供了多项关键功能,承担了集群管理器、证书颁发机构、块管理器以及复制管理器的角色

{{<card title="集群管理" icon="tasks">}}
SCM 负责创建一个 Ozone 集群,当通过 <kbd>init</kbd> 命令启动 SCM 时,SCM 会创建集群标识以及用于担任 CA 的根证书,SCM 负责集群中数据节点生命周期管理。
{{</card>}}
SCM 负责创建 Ozone 集群。当通过 `init` 命令启动 SCM 时,SCM 将创建担任证书颁发机构所需的集群 ID 和根证书。同时,SCM 负责管理集群中数据节点的整个生命周期。

{{<card title="服务身份管理" icon="eye-open">}}
SCM 的 CA 负责向集群中的每个服务颁发身份证书,证书设施方便了网络层 mTLS 协议的启用,也为块 token 机制提供了支持。
{{</card>}}
1. SCM 作为块管理器,负责将块分配给相应的数据节点,客户端可以直接读写这些块;

{{<card title="块管理" icon="th">}}
SCM 管理 Ozone 中的块,它将块分配给数据节点,用户直接读写这些块。
{{</card>}}
2. SCM 负责跟踪所有块的副本,当有数据节点或磁盘掉线,SCM 侦测到后,会启动相应的数据节点复制缺失的块,以确保高可用;

{{<card title="副本管理" icon="link">}}
SCM 会跟踪所有块副本的状态,如果检测到数据节点宕机或磁盘异常,SCM 命令其它节点生成丢失块的新副本,以此保证高可用。
{{</card>}}
3. **SCM 的证书颁发机构** 负责为集群中的每个服务颁发身份证书,这种证书架构可以很方便地在网络层启用双向认证(mTLS)。同时,Ozone 的块令牌也依赖于这种证书架构。

## 主要组件

针对 Storage Container Manager 的详细视图,本节提供有关网络服务和持久化数据的快速概述。

**Storage Container Manager 提供的网络服务:**

* 管道: 列出/删除/激活/停用
* 管道是形成一组复制组的数据节点
* SCM 负责划分 Raft group
* 容器: 创建/列出/删除容器
* 管控相关的请求
* 安全模式的状态查看/修改
* 复制管理器的启动/停止
* 证书鉴权服务
* 其他服务组件所需
* 数据节点的心跳协议
* 从数据节点到 SCM(默认是30秒)
* 数据节点上报容器和节点的状态
* SCM 可以添加命令到心跳回包中

注意:客户端不能直接连接 SCM 。

**持久化状态**

以下数据持久化在 Storage Container Manager 端的指定 RocksDB 目录中

* 管道
* 服务器的复制组,维护以用于查找新容器或块分配的组
* 容器
* 容器是基本的复制单元,数据用于防止复制不足或过度复制。
* 删除块
* 块数据在后台删除时,需要一个列表来跟踪进度
* 有效证书,失效证书
* 由内部证书颁发机构来授权其他 Ozone 服务

## 需要关注的配置选项

配置项 | 默认值 | 描述
----|---------|------------
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)