4.14. NFS コンテンツのクライアント側キャッシュの有効化
FS-Cache は、クライアント上の永続的なローカルキャッシュです。ファイルシステムがネットワーク経由で取得したデータを取得してローカルディスクにキャッシュするために使用できます。これにより、ネットワークトラフィックを最小限に抑えることができます。
4.14.1. NFS キャッシュの仕組み リンクのコピーリンクがクリップボードにコピーされました!
以下の図は、FS-Cache の仕組みの概要を示しています。
FS-Cache は、システムのユーザーおよび管理者が可能な限り透過的になるように設計されています。FS-Cache を使用すると、オーバーマウントされたファイルシステムを作成することなく、サーバー上のファイルシステムがクライアントのローカルキャッシュと直接対話できるようになります。NFS では、マウントオプションにより、FS-cache が有効になっている NFS 共有をマウントするようにクライアントに指示します。マウントポイントにより、fscache と cachefiles の 2 つのカーネルモジュールの自動アップロードが実行します。cachefilesd デーモンは、カーネルモジュールと通信してキャッシュを実装します。
FS-Cache は、ネットワーク上で動作するファイルシステムの基本操作を変更しません。単に、そのファイルシステムに、データをキャッシュできる永続的な場所を提供するだけです。たとえば、クライアントは FS-Cache が有効になっているかどうかに関わらず、NFS 共有をマウントできます。さらに、キャッシュされた NFS は、ファイルが部分的にキャッシュされ、事前完全に読み込む必要がないため、ファイル (個別または一括) に収まらないファイルを処理できます。また、FS-Cache は、クライアントファイルシステムドライバーからキャッシュで発生するすべての I/O エラーも非表示にします。
キャッシュサービスを提供するには、FS-Cache にキャッシュバックエンド、つまり cachefiles サービスが必要です。FS-Cache には、ブロックマッピング (bmap) と拡張属性をキャッシュバックエンドとしてサポートするマウントされたブロックベースのファイルシステムが必要です。
- XFS
- ext3
- ext4
FS-Cache は、ネットワークを介するかどうかに関係なく、あらゆるファイルシステムを任意にキャッシュすることはできません。FS-Cache の操作、データの保存または取得、およびメタデータの設定と検証を実行できるよう、共有ファイルシステムのドライバーが変更されている必要があります。FS-Cache では、永続性に対応するためにキャッシュされたファイルシステムの インデックスキー と 一貫性データ が必要になります。インデックスキーはファイルシステムオブジェクトをキャッシュオブジェクトに一致させ、一貫性データを使用してキャッシュオブジェクトが有効のままかどうかを判断します。
FS-Cache を使用する際には、さまざまな要素の妥協点を探すことになります。FS-Cache を使用して NFS トラフィックをキャッシュすると、クライアントの速度が低下する可能性があります。一方で、ネットワーク帯域幅を消費せずに読み取り要求をローカルで満たせるため、ネットワークとサーバーの負荷を大幅に軽減できます。