web-dev-qa-db-ja.com

ネットワーク経由でビッグデータをコピーする方法は?

Centos7を搭載したHPMicroserver gen 8があり、ベイエリアに2 TBのハードディスクが1つだけ、NTFSとしてマウントされています。

ローカルからネットワーク経由でファイル(一度に約100GB)をコピーしようとしています。

私は以下を試しました:

  • Samba経由
  • SCP経由
  • Rsync経由

このメソッドの途中でよくある問題は、通常、次のエラーメッセージにあります。

  • システムは読み取り専用でI\Oエラーが発生します(ハードディスクを交換しました。この問題の原因である可能性が高いためですが、確かではありません)
  • ディスクがいっぱいです(これは見たばかりで、私はSambaを使用していました)、ディスクは92%空です。
  • mkstempの失敗した操作は許可されていません

ですから、ビッグデータをコピーするより良い方法があるのではないかと思います。ある?

また、私はこれをやろうとしました:

rsync -rvz -e "ssh" * [email protected]:/folder

そして私はこのエラーを受け取りました:

rsync: writefd_unbuffered failed to write 16385 bytes [sender]: Broken pipe (32)
rsync: write failed on "/folder/movie.mkv": Input/output error (5)
rsync error: error in file IO (code 11) at receiver.c(322) [receiver=3.0.9]
rsync: connection unexpectedly closed (490 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /BuildRoot/Library/Caches/com.Apple.xbs/Sources/rsync/rsync-47/rsync/io.c(453) [sender=2.6.9]

これだけの量のデータをコピーするための有効な方法は、急流の回答だけではありません。トレントのないLinuxベースのソリューションが必要です。

-

更新:

@zeppelinが多くの4-5GBファイルの代わりに1つの大きなファイルを試すことを提案した後、私は次を使用して1つの大きなアーカイブを作成しました:tar -zcvf movies.tar.gz *

アーカイブを入手したら:

ls -alh movies.tar.gz 
-rw-r--r--  1 Abude  staff    77G Nov 11 13:54 movies.tar.gz

rsyncを実行したところ、次の問題が発生しました。

rsync -avz -e 'ssh' --progress movies.tar.gz [email protected]:/nas/media
/etc/profile.d/lang.sh: line 19: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
building file list ... 
1 file to consider
movies.tar.gz
 82671089587 100%   25.36MB/s    0:51:49 (xfer#1, to-check=0/1)
rsync: mkstemp "/nas/media/.movies.tar.gz.ezRUOM" failed: Operation not permitted (1)

sent 82698841857 bytes  received 42 bytes  26586993.06 bytes/sec
total size is 82671089587  speedup is 1.00
rsync error: some files could not be transferred (code 23) at /BuildRoot/Library/Caches/com.Apple.xbs/Sources/rsync/rsync-47/rsync/main.c(992) [sender=2.6.9]
3
Abude

更新

パーミッションエラー(下記)は、rsyncコマンドから '-a'(-archive)フラグを削除して、の所有権とパーミッションを保持しようとしないようにすることです。コピーされたファイル。

ローカルの「dd」テストを実行した後、低レベルのIOエラーが検出されました。これは、ディスクの障害が原因である可能性があり、ファイルシステムが破損しています。


操作不可(1)

表示される最後のエラーは、おそらく単純な権限の問題です。つまり、ユーザー 'abude'には/ nas/media /)への書き込みアクセス権がないため、このフォルダーを公開してみてください書き込み可能:

 chmod a+rwx /nas/media

rsyncコマンドを繰り返します。

---- OPは現在NTFSパーティションを使用しているため、以下は無視してください)-----

これに基づいて:

Centos7を搭載したHPMicroserver gen 8があり、ベイエリアに2 TBのハードディスクが1つだけあり、fat32としてマウントされています。

.。

rsync:「/ folder /movie.mkv」で書き込みに失敗しました:入出力エラー(5)rsyncエラー:ファイルのエラーIO(コード11).c(322)>> [receiver = 3.0.9]

そしてあなたの後のコメント

@GMaster〜4GB未満のファイルにはエラーがありません。私はこの数を約8-10GBにプッシュすることさえできますが、確かではありません。 –8時間前に

私はあなたが持っている問題はあなたがrsync(少なくともいくつか)4GB以上のファイルをFAT32ファイルシステムにしようとしていることだと思いますが、これは厳しい制限であるため不可能ですFAT32のファイルサイズについて。

最大ファイルサイズ2 ^ 32マイナス1バイト

(---(https://technet.Microsoft.com/en-us/library/cc938937.aspx

したがって、rsyncはファイルを報告しますIOエラー:

11     Error in file I/O

https://linux.die.net/man/1/rsync

あなたが持っているオプションは次のとおりです。

  • -max-size = SIZErsyncオプションを使用してこれらの大きなファイルを同期から除外します(後で何らかの方法で手動で処理します)

  • それらをより小さな部分に分割します(つまり、findおよびsplitを使用)

  • ファイルシステムをNTFSまたはExt4e.t.cに変換します。 (例: https://askubuntu.com/questions/303091/convert-fat32-partition-to-ntfs-without-data-loss を参照)

1
zeppelin

データの大きなチャンクをコピーするには、プライベートトレントが主観的に最良の選択の1つである可能性があります。

ただし、これはトレントのチュートリアルを作成する場所ではありません。

たとえば、 ここ を検索するか、次のように検索します。

プライベートトレントを作成する方法

6

rsyncが最善の解決策です。圧縮がスキップされるように、-zを削除することをお勧めします。圧縮により、一時的な圧縮ファイル用に余分なディスク領域が使用される可能性があります。したがって、以下を使用する必要があります。

rsync -av -e "ssh" * [email protected]:/folder

3
GMaster

ローカルネットワークまたはその他の安全なネットワークを使用している場合は、ディストリビューションに応じて、netcatまたはncを使用してデータを直接送信できます。

ターゲットマシン上:

nc -l 0.0.0.0 45999 | tar -xz

ソースマシンの場合:

tar -cz the_files_or_folder | nc <target IP> 45999

これにより、必要なすべてのファイルがtarおよび圧縮され、TCPを介してターゲットマシンに直接パイプされます(暗号化されていないため、ローカルネットワークまたはセキュアネットワーク)。受信側では、ncがリッスンし、tarにパイプして解凍します。アーカイブを解除します。 bothzコマンドの送受信でtar引数を削除して、圧縮を省略し、データをそのまま送信できます。

ターゲットマシンでもIP0.0.0.0はすべてのインターフェースでリッスンします。他のインターフェースがある場合、送信側のマシンが到達可能な目的のIPに置き換えるだけでこれを回避するために、これは少し安全ではない可能性があります。

1
Dalvenjia

データを使用してマシン上にFTPサーバーをセットアップします。ファイルをダウンロードするのにかかる時間だけ実行する必要があり、その後シャットダウンすることができます。 wgetのようなツールを使用してそれをフェッチすることができます。そうすれば、ダウンロードが中断された場合でも、時間を無駄にすることなく再開できます。

0
vespid

エラー:receiver.c(322)のファイルIO(コード11)のエラー1./folderは書き込み可能ですか?

rsync:接続が予期せず閉じられました(これまでに490バイトを受信しました)[送信者]2。SSHがドロップしました。 sshできますか?キーレスまたはpw?

「ローカルからネットワーク経由でファイル(一度に約100GB)をコピーしようとしています」とおっしゃいました。私がそれを間違って読んでいないことを願っています。ターゲットIPはルーティング不可能なIP(192.168.0.106)ですか? VPNを使用している可能性があります。

rsync -avr * user@<remoteIP>:/folder

接続から切断された場合は、-bwlimitを使用して「速度を落とします」。 --partialを使用して、中断された試行を再開します

0
Billy K