# 永続クライアントキャッシュ
## 定義
永続クライアントキャッシュとは、並列ファイルシステム(PFS)のクライアントノードが備える高速・不揮発なローカルストレージ(SSDやNVMM)を、サーバ側ストレージ層の「キャッシュ」として組み込み、ネットワーク経由のI/Oをローカルアクセスに置き換えることでレイテンシとスループットを改善する仕組みである。単なるバッファキャッシュと異なり、(1) サーバ障害時にもキャッシュ済みデータへのアクセスを継続できる永続性、(2) PFS全体で単一の名前空間を維持したままキャッシュ層を透過的に組み込む統一名前空間、(3) キャッシュとサーバ間のデータ一貫性保証、の3点を要件とする。(Source: [[@2021__TOS__NVMM-Oriented Hierarchical Persistent Client Caching for Lustre]])
[[Lustre]]におけるLPCC(Lustre Persistent Client Cache)系列の実装は、Lustreの階層型ストレージ管理(HSM)機構とレイアウトロックを再利用することで、この3要件を既存アーキテクチャへの変更を最小化しながら達成する。HSMのcopytoolをクライアント側キャッシュのattach/restore処理に転用し、レイアウトロックでキャッシュとOSTs間の一貫性を制御する。
## キャッシュモードの分類
- **読み書き(RW)モード**: 単一クライアントがファイルを占有的に読み書きする場合に用いる。ファイルデータはクライアントのキャッシュにのみ保持され(サーバ側は消去)、他クライアントからのアクセス時は自動restoreでブロッキング的に同期する。
- **読み取り専用(RO)モード**: 複数クライアントが同一の(ほぼ不変な)ファイル集合を共有読み取りする場合に用いる。サーバ側にデータを保持したままクライアントにも複製し、いずれかのクライアントで変更が発生したら全クライアントのキャッシュを無効化する。
この2モードの使い分けは、キャッシュ一貫性制御のコスト(RWは排他ロック、ROはinvalidation)とデータ局所性の要求パターン(占有アクセス vs 共有読み取り)のトレードオフに対応する。(Source: [[@2021__TOS__NVMM-Oriented Hierarchical Persistent Client Caching for Lustre]])
## 横断的知見
- 本概念に触れたソースは現時点で1件([[@2021__TOS__NVMM-Oriented Hierarchical Persistent Client Caching for Lustre]])のため、複数ソース突き合わせによる知見の蓄積は今後の ingest に委ねる。[[並列ファイルシステム]]がサーバ側の設計原則(データ/メタデータ分離・オブジェクトベース・分散ロック)を扱うのに対し、本概念はクライアント側に高速永続ストレージを組み込む補完的な設計層であり、両者は独立した軸として組み合わせられる(NVMM-LPCCはLustreのサーバアーキテクチャに手を加えず、クライアント側にのみキャッシュ層を追加している)。
- [[ローカルファイルシステム実装比較]]で扱うext4/XFS/ZFS/Btrfsは単一ホストのブロックデバイス最適化(ジャーナリング・COW)が主眼だが、本概念のキャッシュ媒体として使われるNVMM向けローカルファイルシステム(NOVA・PMFS・EXT4-DAX)はDAX(direct access)によりページキャッシュ・ブロック層そのものをバイパスする点で設計思想が異なる。永続クライアントキャッシュの性能は、キャッシュ媒体(NVMM vs SSD)だけでなく、その上で動くローカルファイルシステムのDAX対応可否にも大きく依存する(NVMM-LPCCの実験では、同じNVMM上でも標準EXT4よりDAX対応ファイルシステムが読み取りスループットで約3.3倍優れた)。
## 未解決の問い
- Panache・FS-Cache・BWCCといった既存キャッシュシステムとLPCC系列の詳細な性能比較(同一環境でのベンチマーク)は、NVMM-LPCC論文には示されていない。
- RWモードでの自動restoreがI/Oをブロックする際の実際のレイテンシは定量化されていない。頻繁なクライアント間ファイル競合が発生するワークロードでの実運用インパクトは不明。
- GPFS(Panache)やCephなど他のPFSに同種の永続クライアントキャッシュを移植する場合、HSM相当の機構を持たないPFSではどのような設計変更が必要か。
- 実NVMMデバイス(3D XPoint等)における書き込み耐久性の制約が、長期運用でのキャッシュ層の信頼性にどう影響するかは、DRAMエミュレーションによる評価では検証できていない。
## 関連
- [[@2021__TOS__NVMM-Oriented Hierarchical Persistent Client Caching for Lustre]] — 本概念の原典。LustreクライアントのNVMM永続キャッシュ実装。
- [[Lustre]] — 本概念が対象とする並列ファイルシステム。
- [[並列ファイルシステム]] — サーバ側設計原則との対比。
- [[ローカルファイルシステム実装比較]] — キャッシュ媒体上で動くローカルファイルシステムの実装比較。
## 出典
- [[@2021__TOS__NVMM-Oriented Hierarchical Persistent Client Caching for Lustre]] §3(Design and Implementation), §4(Experiment and Evaluation)