ワークフローに Azure Blob Storage へのデータの移動が含まれている場合は、効率的な戦略を使用していることを確認してください。 キャッシュを作成し、ストレージ ターゲットとして BLOB コンテナーを追加し、Azure HPC Cache を使用してデータをコピーする必要があります。
この記事では、Azure HPC Cache で使用するために BLOB ストレージにデータを移動する最適な方法について説明します。
ヒント
この記事は、NFS マウント BLOB ストレージ (ストレージ ターゲットADLS-NFS) には適用されません。 任意の NFS ベースのメソッドを使用して、HPC キャッシュに追加する前または後に、ADLS-NFS BLOB コンテナーを設定できます。 詳細については、 NFS プロトコルを使用して事前読み込みデータを読み取 る。
次の点に注意してください。
Azure HPC Cache では、特殊なストレージ形式を使用して BLOB ストレージ内のデータを整理します。 このため、BLOB ストレージ ターゲットは、新しいコンテナー、空のコンテナー、または以前に Azure HPC Cache データに使用されていた BLOB コンテナーである必要があります。
複数のクライアントと並列操作を使用する場合、Azure HPC Cache を介してバックエンド ストレージ ターゲットにデータをコピーする方が効率的です。 1 つのクライアントから単純なコピー コマンドを実行すると、データの移動速度が遅くなります。
この記事で説明する戦略は、空の BLOB コンテナーを設定したり、以前に使用したストレージ ターゲットにファイルを追加したりするために機能します。
Azure HPC Cache を使用してデータをコピーする
Azure HPC Cache は複数のクライアントに同時にサービスを提供するように設計されているため、キャッシュを介してデータをコピーするには、複数のクライアントからの並列書き込みを使用する必要があります。
通常、あるストレージ システムから別のストレージ システムにデータを転送するために使用する cp
または copy
コマンドは、一度に 1 つのファイルのみをコピーするシングルスレッド プロセスです。 つまり、ファイル サーバーは一度に 1 つのファイルのみを取り込みます。これはキャッシュのリソースの無駄です。
このセクションでは、Azure HPC Cache を使用してデータを BLOB ストレージに移動するマルチクライアントのマルチスレッド ファイル コピー システムを作成する方法について説明します。 複数のクライアントと単純なコピー コマンドを使用した効率的なデータ コピーに使用できるファイル転送の概念と決定ポイントについて説明します。
また、役に立つユーティリティについても説明します。
msrsync
ユーティリティを使用すると、データセットをバケットに分割し、rsync コマンドを使用するプロセスを部分的に自動化できます。
parallelcp
スクリプトは、ソース ディレクトリを読み取り、コピー コマンドを自動的に発行する別のユーティリティです。
戦略的計画
データを並行してコピーする戦略を構築するときは、ファイル サイズ、ファイル数、ディレクトリの深さのトレードオフを理解する必要があります。
- ファイルが小さい場合、関心のあるメトリックは 1 秒あたりのファイル数です。
- ファイルが大きい (10MiBi 以上) 場合、対象となるメトリックは 1 秒あたりのバイト数です。
各コピー プロセスにはスループット レートとファイル転送率があります。これは、コピー コマンドの長さをタイミングし、ファイルのサイズとファイル数を考慮して測定できます。 レートを測定する方法については、このドキュメントの範囲外ですが、小さいファイルと大きなファイルのどちらを扱うかを理解することが不可欠です。
Azure HPC Cache を使用した並列データ取り込みの戦略は次のとおりです。
手動コピー - 定義済みのファイルまたはパスのセットに対して複数のコピー コマンドをバックグラウンドで一度に実行することで、クライアントでマルチスレッド コピーを手動で作成できます。 Azure HPC Cache のデータ取り込みの読み取り - 手動コピー方法で詳細を確認します。
msrsync
-msrsync
を使用した部分的に自動化されたコピーは、複数の並列rsync
プロセスを実行するラッパー ユーティリティです。 詳細については、「 Azure HPC Cache のデータ取り込み - msrsync メソッド」を参照してください。parallelcp
を使用したスクリプトコピー - Azure HPC Cache データ取り込みで並列コピー スクリプトを作成して実行する方法について説明します。
次のステップ
ストレージを設定したら、クライアントがキャッシュをマウントする方法について説明します。