复制

存储容器

师成师成· 更新于 2026-09-28· 阅读 2 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

存储容器(Storage Container,简称 Container,注意不要与 Docker 容器混淆)是 Ozone 的基本复制单元,由存储容器管理器(Storage Container Manager,SCM)服务进行管理。

容器是大型二进制单元(默认 5GB),其中可以包含多个块:

Containers

块属于本地信息,不由 SCM 管理。因此,即使系统中创建了数十亿个小文件(这意味着会产生数十亿个块),数据节点(Datanode)也只会报告容器的状态,复制操作也只针对容器进行。当 Ozone Manager 向 SCM 请求分配新的块时,SCM 会确定合适的容器,并生成一个包含 ContainerId + LocalId 的块 ID。客户端将连接到存储该容器的数据节点,数据节点可以基于 LocalId 来管理各个独立的块。

OPEN 与 CLOSED 容器

容器创建时处于 OPEN 状态。当容器写满(约写入 5GB 数据)后,容器将被关闭,成为 CLOSED 容器。

OPEN 与 CLOSED 容器的根本区别:

OPENCLOSED
可变不可变
使用 RAFT(Ratis)复制使用异步容器复制
读写操作使用 Raft 主节点所有节点都可用于读取

评论

登录后参与评论

正在加载评论…