# メタデータスケーリング ## 定義 メタデータスケーリングとは、並列ファイルシステムにおいて、名前空間操作(作成・削除・ルックアップ・属性取得)の処理能力を、データ帯域とは独立に拡張する設計上の課題とその手法群を指す。データ I/O が OST の台数で素直にスケールするのに対し、メタデータ操作は名前空間の整合性を保つ必要から集中点を生みやすく、単一のメタデータサーバが全体の上限を決めてしまう。手法は大きく 3 層に分かれる。**サーバ側の水平分割**(名前空間を複数の MDT に分散する)、**クライアント側のキャッシュ**(操作をローカルで完結させ RPC 自体を消す)、**ロックの粒度制御**(整合性を保ちつつ競合を減らす)である。(Source: [[@2025__TOS__Lustre Unveiled - Chapter 3 Architectural Details of Lustre]], [[@2025__TOS__Lustre Unveiled - Chapter 5 Lustre Design Evolution]]) ## 手法の 3 層 - **サーバ側の水平分割**: [[wiki/entities/Lustre|Lustre]] の分散名前空間(DNE)は 2 段階で導入された。DNE1(リモートディレクトリ)はディレクトリ単位で MDT に配置し、DNE2(ストライプディレクトリ)は単一ディレクトリを複数 MDT にまたがってストライピングする。粒度がディレクトリ単位から entry 単位へ細かくなる進化である。(Source: [[@2025__TOS__Lustre Unveiled - Chapter 5 Lustre Design Evolution]]) - **クライアント側のキャッシュ**: メタデータライトバックキャッシュ(WBC)は、ディレクトリツリーに対する排他ロックを取ったうえで作成・削除・属性変更をクライアントのローカルメモリで実行し、MDS への RPC を遅延させる。RPC を減らすのではなく発生させないという点で、前 2 者と質的に異なる。(Source: [[@2025__TOS__Lustre Unveiled - Chapter 7 Future Directions and Open Challenges in Lustre]]) - **ロックの粒度制御**: LDLM は 6 種のロックモードと 4 種のロックタイプ(エクステント・inode ビット・flock・プレーン)を持ち、inode ビットロックによって同一 inode の異なる属性群への並行アクセスを許す。ロックの単位を細かくすることが並行性の上限を決める。(Source: [[@2025__TOS__Lustre Unveiled - Chapter 3 Architectural Details of Lustre]]) ## 横断的知見 - **水平分割はスケールするが、単体の壁は動かない**: [[Orion]] は 40 台の MDT を持ち、全体では作成・削除が 100K ops/s 超、stat が 500K ops/s 超に達する一方、単一 MDT でのファイル作成は 95.3K ops/s、ルックアップは 200K ops/s 級にとどまる。MDT を増やすことで総量は伸びるが、単一 MDT の処理能力そのものはサーバ側の分割では改善しない。ここに WBC のようなクライアント側の手法が必要になる構造的理由がある。(Source: [[@2025__TOS__Lustre Unveiled - Chapter 6 Lustre in Practice - Frontier's Orion]], [[@2025__TOS__Lustre Unveiled - Chapter 7 Future Directions and Open Challenges in Lustre]]) - **RPC を減らす手法と、RPC を発生させない手法では効果の桁が違う**: DNE による分割やリードアヘッド・ステートアヘッドといったキャッシュ機構は RPC 数の削減にとどまるのに対し、WBC の初期評価は一般的なメタデータ操作で 100 倍以上の高速化を示し、ローカル RAM ベースのファイルシステムに匹敵する水準に達している。桁の違いは、ネットワーク往復そのものを消すかどうかに由来する。(Source: [[@2025__TOS__Lustre Unveiled - Chapter 5 Lustre Design Evolution]], [[@2025__TOS__Lustre Unveiled - Chapter 7 Future Directions and Open Challenges in Lustre]]) - **小ファイルの支配がメタデータ層を性能の主戦場に押し上げた**: [[Orion]] では 4 KiB 以下のファイルが件数の約 30%(約 8.83 億ファイル)を占める一方、容量では 16 GiB バケットが全体の 73% を消費する。件数と容量で支配的な層が逆転しており、件数側の負荷はそのままメタデータ層にかかる。Data on MDT(DoM)がデフォルト PFL の第 1 コンポーネントとして小ファイルを MDT 上に置く設計は、この分布への直接の応答である。(Source: [[@2025__TOS__Lustre Unveiled - Chapter 6 Lustre in Practice - Frontier's Orion]], [[@2025__TOS__Lustre Unveiled - Chapter 5 Lustre Design Evolution]]) - **メタデータの冗長性はデータの冗長性に大きく遅れている**: ファイルデータには FLR によるミラーリングが 2.10 以降提供されているのに対し、メタデータ側の冗長性は MDT フェイルオーバーに限られ、MDT0000 が単一障害点として残る。これを解消する Lustre メタデータ冗長性(LMR)はなお一連のプロジェクトの計画段階にある。スケーリングの議論が性能に偏り、可用性が後回しになってきた構図が見える。(Source: [[@2025__TOS__Lustre Unveiled - Chapter 7 Future Directions and Open Challenges in Lustre]], [[@2025__TOS__Lustre Unveiled - Chapter 5 Lustre Design Evolution]]) ## 未解決の問い - WBC の排他ロックはディレクトリツリー単位で取られる。共有ディレクトリへの多数クライアントからの同時作成という HPC で頻出のパターンでは、ロック競合によって利得が失われないか。単一共有ディレクトリと専用ディレクトリの性能差(第 6 章の測定が示す)は、WBC 導入後にどう変わるのか。 - MDT プールによる MDT 群の隔離は、DNE リカバリ時の MDT 間依存を減らす狙いを持つ。分割の粒度を上げるほどリカバリは軽くなる一方で負荷分散の自由度は下がるはずだが、この均衡点をどう決めるのか。 - 名前空間の水平分割は、他システムではどう解かれているか。メタデータとデータを等価に扱いクラスタ全体へ分散する GPFS・DAOS の方式と、専用の MDS を置く Lustre・Ceph・BeeGFS の方式では、メタデータ性能の上限とスケーリング特性がどう違うのか([[並列ファイルシステム]] の比較軸と接続する)。 - メタデータ操作の 100 倍高速化が実現したとき、ボトルネックは次にどこへ移るのか。LDLM のロック処理そのものか、クライアント側のメモリ容量か。 ## 関連 - 上位概念: [[並列ファイルシステム]] - 隣接概念: [[分散ロック管理]] / [[ファイルシステムキャッシュ階層]] - ソース: [[@2025__TOS__Lustre Unveiled - Chapter 3 Architectural Details of Lustre]] / [[@2025__TOS__Lustre Unveiled - Chapter 5 Lustre Design Evolution]] / [[@2025__TOS__Lustre Unveiled - Chapter 6 Lustre in Practice - Frontier's Orion]] / [[@2025__TOS__Lustre Unveiled - Chapter 7 Future Directions and Open Challenges in Lustre]] - 文書全体: [[Lustre Unveiled]] ## 出典 - Anjus George ほか, "Lustre Unveiled: Evolution, Design, Advancements, and Current Trends", ACM Transactions on Storage, Vol. 21, No. 3, Article 21, 2025, 第 3・5・6・7 章.