Azure HPC Cache でファイルの書き戻しをカスタマイズする

HPC Cache ユーザーは、flush_file.py ユーティリティを使用して、キャッシュが必要に応じて特定の個々のファイルをバックエンド ストレージに書き込むよう要求できます。 このユーティリティは、Linux クライアント マシンにインストールして使用する、個別にダウンロードされたソフトウェア パッケージです。

この機能は、キャッシュにマウントされていないシステムに対して、キャッシュされたファイルの変更をできるだけ早く使用できるようにする状況向けに設計されています。

たとえば、Azure HPC Cache を使用してコンピューティング ジョブをクラウドにスケーリングし、データ セットをオンプレミスのデータ センターに永続的に格納することができます。 Azure HPC Cache で作成された変更に依存するデータ センターでコンピューティング タスクが発生した場合は、このユーティリティを使用して、クラウド タスクによって生成された出力または変更をオンプレミスの NAS ストレージに "プッシュ" できます。 これにより、新しいファイルをオンプレミスのコンピューティング リソースでほぼすぐに使用できます。

カスタムライトバックとフラッシュの選択

Azure HPC Cache に組み込まれている "ストレージ ターゲット フラッシュ" オプションを使用してデータを強制的に書き戻すことができますが、このアプローチはすべての状況に適していない可能性があります。

  • 変更されたすべてのファイルをストレージ システムに書き戻すには、データの量と、オンプレミス システムに戻るネットワーク リンクの速度に応じて、数分または数時間かかることがあります。 また、書き込みを完了したファイルのみを選択することはできません。現在も変更中のファイルは、この計算に含まれます。

  • キャッシュは、フラッシュ プロセス中に、そのストレージ ターゲットからの一部の要求の処理をブロックする可能性があります。 これにより、同じストレージ ターゲット上に存在するファイルを使用する他のコンピューティング クライアントがある場合、処理が遅れる可能性があります。

  • このアクションをトリガーするには、エンド ユーザーが持っていない可能性がある Azure Resource Manager への共同作成者アクセス権が必要です。

たとえば、同じ HPC Cache ストレージ ターゲットに存在するデータを使用する複数の並列 (ただし重複しない) コンピューティング ジョブを作成できます。 1 つのジョブが完了したら、そのジョブの出力をキャッシュからバックエンドの長期ストレージにすぐに書き込む必要があります。

次の 3 つのオプションがあります。

  • キャッシュされたファイルがキャッシュから自動的に書き戻されるのを待ちますが、完全に書き戻される前に、ファイルが 1 時間以上キャッシュに格納される可能性があります。 タイミングは、キャッシュ使用モデルのライトバック遅延と、ネットワーク リンクのパフォーマンスやファイルのサイズなどのその他の要因によって異なります。 (書き戻し遅延の詳細については、 キャッシュの使用モデル について説明します)。

  • ストレージ ターゲット全体のキャッシュされたファイルをすぐにフラッシュしますが、これにより、このストレージ ターゲットのデータも使用している他のコンピューティング ジョブが中断されます。

  • このカスタマイズされた書き戻しユーティリティを使用して、必要な特定のファイルのみを書き戻す特別な NFS 要求をキャッシュに送信します。 このシナリオは、他のクライアントのアクセスを中断せず、コンピューティング タスクの任意の時点でトリガーできます。

ライトバック ユーティリティについて

ライトバック ユーティリティには、キャッシュから長期ストレージ システムに書き込まれる個々のファイルを指定するために使用できるスクリプトがあります。

スクリプトは、書き込むファイルの入力ストリームと、ストレージ ターゲット エクスポートへのキャッシュ名前空間パス、HPC Cache マウント IP アドレスを受け取ります。

このスクリプトでは、特殊な引数を有効にした NFSv3 "commit" 呼び出しが使用されます。 Linux nfs 共通クライアントは、これらの引数を適切に渡すことができないため、flush_file.py ユーティリティは Python ライブラリの NFS クライアント エミュレーターを使用して HPC Cache NFS サービスと通信します。 ライブラリには必要なものがすべて含まれており、コンピューティング クライアントの Linux カーネル ベースの NFS クライアントに存在する可能性のある制限をバイパスします。

この機能を使用するには、次の操作を行う必要があります。

  • hpc-cache-nfsv3-clientにある GitHub Microsoft HPC-Cache-NFSv3-client リポジトリからhttps://github.com/microsoft/hpc-cache-nfsv3-client ライブラリをインストールします。 1 つ以上のコンピューティング クライアントで使用できます。 前提条件の情報と手順は、リポジトリの README ファイルに含まれています。

  • 付属の 'flush_file.py' スクリプトを使用して、必要な正確なファイルを長期ストレージ システムに書き戻すようキャッシュに指示します。

GitHub リポジトリでのflush_file.py スクリプトのインストールと使用の詳細について説明します。