クラスタからストレージサーバーへの非常に大きなデータセットの転送

クラスタからストレージサーバーへの非常に大きなデータセットの転送

非常に大きなデータセット(ペタバイト単位で測定)をHPCクラスタからストレージサーバーに移動する必要がありました。我々は、デバイス間の大容量通信リンクを持っています。しかし、ボトルネックは、個々のファイルを並列化できる高速転送ツールのようです(各個々のファイルのサイズはテラバイトなので)。

この点で、私は管理者権限を必要とせず、scpやrsyncよりもはるかに高速なツールを探しています。管理者権限なしでローカルにインストールできるツールがあれば、それも役に立ちます。私はこのリンクを見つけました(2台のコンピュータ間で大量のデータを転送する最速の方法は何ですか?)、netcatの方法について言及しましたが、うまくいくことはできませんでした。

参考までに、比較的少数の非常に大きなファイル(および多くの小さなファイル)をコピーしようとしています。

時間をかけて助けてくれてありがとう。

答え1

rsync私は+を使用しましたparallel

  • すべての大容量ファイルの識別
  • rsync30~100個のファイルを並列に実行

次のようになります(テストされていません)。

cd src-dir
find . -type f -size +10000 |
  parallel -j100 -X rsync -zR -Ha --inplace ./{} fooserver:/dest-dir/

切断された接続を処理するには、--appendforrsyncおよび--retriesforparallel を使用します。

parallel --retries 987 -j100 -X rsync -zR -Ha --append ./{} fooserver:/dest-dir/

ファイルソースが変更されていないとします。

関連情報