この記事では、 msrsync
ユーティリティを使用して、Azure HPC Cache で使用するために Azure Blob Storage コンテナーにデータをコピーする方法について詳しく説明します。
Azure HPC Cache の Blob Storage へのデータの移動の詳細については、「Azure Blob Storage へのデータの移動」を参照してください。
msrsync
ツールを使用して、Azure HPC Cache のバックエンド ストレージ ターゲットにデータを移動できます。 このツールは、複数の並列 rsync
プロセスを実行して帯域幅の使用を最適化するように設計されています。 GitHub ( https://github.com/jbd/msrsync) から入手できます。
msrsync
は、ソース ディレクトリを個別の "バケット" に分割し、各バケットで個々の rsync
プロセスを実行します。
4 コア VM を使用した予備テストでは、64 のプロセスを使用する場合に最適な効率が示されました。
msrsync
オプション -p
を使用して、プロセスの数を 64 に設定します。
msrsync
はローカル ボリュームとの間でのみ書き込み可能であることに注意してください。 ソースと宛先は、コマンドの発行に使用されるワークステーション上のローカル・マウントとしてアクセス可能でなければなりません。
msrsync
を使用して Azure BLOB ストレージに Azure HPC Cache を設定するには、次の手順に従います。
msrsync
とその前提条件をインストールする (rsync
および Python 2.6 以降)コピーするファイルとディレクトリの合計数を決定します。
たとえば、ユーティリティ
prime.py
を引数prime.py --directory /path/to/some/directory
と共に使用します ( https://github.com/Azure/Avere/blob/main/src/clientapps/dataingestor/prime.pyをダウンロードして使用できます)。prime.py
を使用しない場合は、GNUfind
ツールを使用して項目の数を次のように計算できます。find <path> -type f |wc -l # (counts files) find <path> -type d |wc -l # (counts directories) find <path> |wc -l # (counts both)
項目数を 64 で除算して、プロセスごとの項目数を決定します。 コマンドの実行時にバケットのサイズを設定するには、
-f
オプションでこの番号を使用します。msrsync
コマンドを発行してファイルをコピーします。msrsync -P --stats -p64 -f<ITEMS_DIV_64> --rsync "-ahv --inplace" <SOURCE_PATH> <DESTINATION_PATH>
たとえば、このコマンドは、64 個のプロセス内の 11,000 個のファイルを /test/source-repository から /mnt/hpccache/repository に移動するように設計されています。
mrsync -P --stats -p64 -f170 --rsync "-ahv --inplace" /test/source-repository/ /mnt/hpccache/repository