2026-10-31·作者 Sijie Wang

federation

Federation: independent namespace volumes, DataNode block pools, ViewFS mount table, horizontal metadata scaling, and its limits.

Federation:一个视图下很多本账,和它切不开的东西

动机:一本账的天花板。 单台 NameNode 的内存和 RPC 吞吐是天花板,HA 抬不高它:HA 只是同一本账的两份,容量还是一本账的容量。命名空间长大、租户变多,一台机器的内存和处理能力迟早用完。

机制:拆账本,不拆目录。 多个 NameNode 各管自己的一片命名空间 volume,各自有 FsImage 和 EditLog,彼此不协调、不共享账本。DataNode 同时向所有 NameNode 注册,每个 NameNode 一个 Block Pool——属于那个命名空间的那批块——逻辑上分开存,绝不混淆。客户端通过 ViewFS 看到一个统一视图:挂载表把路径映射到命名空间,比如 /user 挂 A、/data 挂 B,每次操作只找一个 NameNode,就是拥有那条路径的那台。

好处。 加一台 NameNode 就多一片账本容量、多一份 RPC 能力,元数据可以横向扩。命名空间隔离租户:一个租户的命名空间爆长,不影响别人。每个命名空间还可以各自独立跑 HA,一处接管不惊动另一处。

局限,说直白。 Federation 不是自动切碎单个目录:一个目录树自己不会跨 NameNode,挂载布局必须事先设计好。跨命名空间的操作——改名、移动——不支持。它和小文件的解法是互补,不是替代:全堆在一个命名空间里的小文件,照样炸掉那个 NameNode,所以合并在先(见 small-files)。Federation 扩的是命名空间,合并治的是文件个数。

關於這一條

sijie 的一條 wiki 條目。本站的 AI 以同一套語料庫為依據、以 sijie 的口吻作答,並附有指向此類條目的引用——回答會花 sijie 的錢,所以它在存取碼後等待: 輸入存取碼 →

federation — Sijie Wang