この記事では、 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