キャッシュ使用モデルについて

キャッシュ使用モデルを使用すると、Azure HPC Cache でのファイルの保存方法をカスタマイズして、ワークフローを高速化できます。

基本的なファイル キャッシュの概念

ファイル キャッシュとは、Azure HPC Cache によるクライアント要求の迅速化です。 次の基本的な方法を使用します。

  • 読み取りキャッシュ - Azure HPC Cache は、クライアントがストレージ システムから要求したファイルのコピーを保持します。 次にクライアントで同じファイルを要求するときに、HPC Cache によってキャッシュでバージョンを提供でき、バックエンド ストレージ システムから再びファイルをフェッチする必要はありません。 書き込み要求はバックエンド ストレージ システムに渡されます。

  • 書き込みキャッシュ - 必要に応じて、クライアント コンピューターから送信された変更済みのファイルのコピーを Azure HPC Cache に格納できます。 複数のクライアントが短時間に同じファイルに変更を加えた場合、キャッシュは、各変更をバックエンド ストレージ システムに個別に書き込むのではなく、キャッシュ内のすべての変更を収集します。 変更が行われないまま、指定した時間が経過すると、キャッシュはファイルを長期ストレージ システムに移動します。

  • 検証タイマー - 検証タイマーの設定では、キャッシュがファイルのローカル コピーをバックエンド ストレージ システム上のリモート バージョンと比較する頻度を決定します。 バックエンド コピーがキャッシュされたコピーより新しい場合、キャッシュはリモート コピーをフェッチし、今後の要求のために保存します。

    検証タイマーの設定は、キャッシュのファイルをリモート ストレージ内のソース ファイルと "自動的に" 比較するタイミングを示します。 ただし、readdirplus 要求を含むディレクトリ操作を実行すると、Azure HPC Cache でファイルを強制的に比較できます。 readdirplus は、ディレクトリ メタデータを返す標準的な NFS API です (拡張読み取りとも呼ばれます)。これにより、キャッシュでファイルが比較され更新されます。

  • 書き戻しタイマー - 読み取り/書き込みキャッシュを使用するキャッシュの場合、書き戻しタイマーは、変更されたファイルをバックエンド ストレージ システムにコピーする前に、そのキャッシュが待機する最大時間 (秒単位) です。

Azure HPC Cache に組み込まれている使用モデルには、それぞれの状況に最適な組み合わせを選択できるように、これらの設定に対して異なる値が設定されています。

ワークフローに適した使用モデルを選択する

使用する NFS プロトコル ストレージ ターゲットごとに、使用モデルを選択する必要があります。 Azure Blob Storage ターゲットには、カスタマイズできない組み込みの使用モデルがあります。

HPC Cache 使用モデルでは、迅速な応答と古いデータを取得するリスクとのバランスを取る方法を選択できます。 ファイルの読み取り速度を最適化する場合、キャッシュ内のファイルがバックエンド ファイルと照合されるかどうかは重要でないかもしれません。 一方、ファイルがリモート ストレージに対して常に最新であることを保証したい場合は、モデルを選択して検証タイマーを低い数値に設定し、頻繁にチェックします。

使用モデルのオプションは次のとおりです。

  • 読み取り専用キャッシュ - ファイルへの読み取りアクセスを高速化する場合は、このオプションを使用します。 ワークフローに最小限の書き込み操作 (0% から 5% など) が含まれる場合は、このオプションを選択します。

    このオプションでは、クライアントの読み取りがキャッシュされますが、書き込みはキャッシュされません。 書き込みはバックエンド ストレージに渡されます。

    キャッシュに格納されているファイルが NFS ストレージ ボリューム上のファイルと自動的に比較されることはありません (手動で比較する方法については、上記の検証タイマーの説明をお読みください)

    読み取り専用キャッシュ オプションを選択すると、検証タイマーを変更することができます。 既定値は 30 秒です。 その値は、1 から 31536000 秒 (1 年) までの整数 (小数点以下なし) である必要があります。

  • 読み取り/書き込みキャッシュ - このオプションは、読み取りと書き込み操作の両方をキャッシュします。 このオプションを使用する場合、ほとんどのクライアントは、バックエンド ストレージを直接マウントするのではなく、Azure HPC Cache 経由でファイルにアクセスすることが想定されます。 キャッシュされたファイルには、まだバックエンドにコピーされていない最近の変更があります。

    この使用モデルでは、既定で 8 時間ごとにキャッシュ内のファイルがバックエンド ストレージ上のファイルと照合されます。 キャッシュされたバージョンのファイルの方が新しいと見なされます。 キャッシュ内の変更されたファイルは、既定でキャッシュ内に 1 時間留まってから、バックエンド ストレージ システムに書き込まれます。

    読み取り/書き込みキャッシュ オプションを選択すると、検証タイマーと書き戻しタイマーの両方を変更することができます。 検証タイマーの既定値は 28,800 秒 (8 時間) です。 その値は、1 から 31536000 までの整数 (小数点以下なし) である必要があります。 書き戻しタイマーの既定値は 3600 秒 (1 時間) です。 その値は、1 から 31536000 秒 (1 年) までの整数 (小数点以下なし) である必要があります。

このテーブルは、使用モデルの違いをまとめたものです。

使用モデル キャッシュ モード 検証タイマー 書き戻しタイマー
読み取り専用キャッシュ Read 30 秒 なし
読み取り/書き込みキャッシュ 読み取り/書き込み 8 時間 1 時間

警告

使用モデルを変更すると、サービスの中断が発生します。 使用モデルの移行中は、HPC Cache クライアントは応答を受信しません。 使用モデルを変更する必要がある場合は、クライアントの中断を防ぐために、予定メンテナンス期間中に変更を行うことをお勧めします。

Azure HPC Cache ワークフローの最適な使用モデルについて不明な点がある場合は、Azure の担当者にお問い合わせいただくか、サポート要求をオープンしてください。

ヒント

キャッシュの内容全体を書き込まずに、特定の個々のファイルをストレージ ターゲットに書き戻すユーティリティを使用できます。 flush_file.py スクリプトの詳細については、Azure HPC Cache でのファイル書き戻しのカスタマイズに関する記事を参照してください。

次のステップ