web-dev-qa-db-ja.com

2台のマシン間でテラバイト単位のデータを効率的に転送する(SambaおよびNFSマウント)

15 TBのデータをあるマシンから別のマシンに転送する必要がありますが、過去3週間で数回失敗したため、選択肢がなく、どうすればよいかわかりません。

2つのマシンがあります。

  • ソースマシン:samba共有マウントポイントを使用し、厳しく制限されています(ネットワーク外のマシンへの接続にはVPNが必要であり、10時間ごとに自動的に切断するVPNをセットアップしないと、2番目の[ターゲット]マシンに共有を正常にマウントできません)。 15TBのデータがこのマシンにあります
  • ターゲットマシン:NFSを使用します

私が最初に試したのは、最初のマシンに接続し、簡単なrsyncを使用することでした。

rsync -rvz --stats --progress /mnt/samba/my_15TB_data user@second_machine:/mnt/NFS/backup

これは数時間後に失敗しました:

 rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]
bash: syntax error near unexpected token `('

  12820840448  55%    9.02MB/s    0:18:31
 12820840448: command not found
 rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)

rsync: connection unexpectedly closed (731 bytes received so far) [sender]
syntax error near unexpected token `('
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]
bash: syntax error near unexpected token `('

私はこのエラーの意味を本当に理解していませんが、いくつかのフォーラムからオンラインで収集したものから、大量のデータがコピーされているときにrsyncが生成するバグのように見えます!別の可能性は、2台のマシン間の接続が切断された可能性があることです。

その後、データを可能な限り圧縮しようとしたため、7zで最高レベルの圧縮を選択しました。

7z a 15T_data_compressed.7z /mnt/samba/my_15TB_data -mx9

これは非常にうまくいきましたが、7Zipプロセスに460時間のCPU時間を費やした後、マシンの管理者によってプロセスが強制終了されました。マシンで使用可能なすべてのコアを使用していることに気付きました。ファイルを圧縮するためだけにリソースを大量に使用した後、それを行う権利があります。

データを効率的に転送するにはどうすればよいですか?より具体的には、何か問題が発生した場合に転送を再開する可能性を提供する方法を探しています。たとえば、上記のrsyncの場合、かなりの量のデータが転送されたことがわかります。

VPN(10時間ごとに自動的に切断)を使用してsamba共有をマウントし、何らかの方法でフォルダーをNFSにミラーリングすることをお勧めしますか?そのようなことは可能ですか、それはより速くなりますか?

ところで、2台のマシン間の平均転送速度は12 MB/sです。これらは、2つの異なる国にある2つの異なるマシンです。

1
dudeze

まず第一に、あなたが引用するrsyncのerrorは、あなたが何かを端末に貼り付けたようです。元のエラーメッセージではありません。

端末に貼り付けた元のメッセージは、再起動、ネットワークの問題などの何らかの理由で接続が閉じられたことを示しています。しかし、rsyncは再開できるはずです。

単に実行する

rsync -rvz --stats --progress /mnt/samba/my_15TB_data user@second_machine:/mnt/NFS/backup

もう一度、ファイルのステータスをチェックして、タイムスタンプとサイズを比較し、ソース側と宛先側で同じサイズとタイムスタンプを持つファイルを無視します。このプロセスには時間がかかりますが、非常に小さなファイルが大量にない限り、ファイルを再転送するよりも高速です。

一般に、rsyncを使用して何度でも再開できます。これはかなり堅牢なファイル転送メカニズムです。

2
vidarlo