キャッシュ使用モデルを使用すると、ワークフローを高速化するために 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 時間 |
Warnung
使用モデルを変更すると、サービスの中断が発生します。 使用モデルの移行中は、HPC Cache クライアントは応答を受信しません。 使用モデルを変更する必要がある場合は、クライアントの中断を防ぐために、スケジュールされたメンテナンス期間中に変更を行うことをお勧めします。
Azure HPC Cache ワークフローに最適な使用モデルに関する質問がある場合は、Azure の担当者にお問い合わせください。または、サポート リクエストを開いてヘルプを確認してください。
Tip
キャッシュの内容全体を書き込まずに、特定の個々のファイルをストレージ ターゲットに書き戻すユーティリティを使用できます。 Flush_file.py スクリプトの詳細については、「 Azure HPC Cache でのファイルライトバックのカスタマイズ」を参照してください。
次のステップ
- Azure HPC Cache にストレージ ターゲットを追加する