大量のファイルを移動する最も速い方法は?


8

約320,000個のファイル、80,000個のフォルダー(100 GBのみ)のデータを移動する必要があります。一部のファイルは1 GBを超えますが、ほとんどのファイルは1 KB未満です。

私はファイルをコピーする最速の方法を見てきましたが、これらのどれがどれだけ役立つかはわかりません。私の問題は、純粋な転送速度ではなく、Windowsが32万ファイルのIOをどれだけ速く処理できるかについてです。

xcopy、robocopy、teracopy、fastcopyのいずれかを使用すると、速度が向上すると思いますか?

それらを(robocopyを使用して)1回コピーするのに長い時間(12時間以上)がかかりました。スピードアップするにはどうすればよいですか?

内容はUSB 2.0外付けドライブにあります。

回答:


9

ロボコピーのようなものがあなたの最善の策になります。USBドライブは、そもそも大量のIOを処理することはできません。

robocopyを使用して、何百万もの小さなファイルをUSBドライブとやり取りしました。時間はかかりますが、仕事は終わりです。


3

mrdennyが言ったように、Robocopyは、その堅牢性の理由もあって最高です。移動するファイルの清潔さについて確信がある場合、提供できる最善のアドバイスは、移動中はウイルス対策ソフトウェアを無効にすることです。これらすべてのファイルをスキャンすることによるオーバーヘッドを本当に望まないでしょう。


1

明らかに、ここで述べたすべてよりも速い方法があります。より速く、あまり柔軟:-) 場合は、あなたが別のパーティション上のファイルを入れている、あなたはできるパーティション全体をコピー先のディスクに。

私は仕事用の無料のWindowsツール(VSSをサポートするツールで完璧です)に精通していませんが、Ghost CDまたはPartition Magic CDから起動したり、LinuxスタンドアロンCDから起動したりできます。Linux ddでは、パーティションのみ、またはntfscloneこれがたまたまNTFSパーティションである場合。


0

外付けハードドライブをFirewireに変更するとしたら、速度の転送はUSB2よりもはるかに高速です。

ファイルを単一の "tar"にパックし、ファイルを転送すると、少し時間が節約されると思います。何千ものファイルと比較して1つの巨大なファイルをコピーするだけなので、I / O時間が削減されるため、(コピーフェーズ中)信じるリソースの消費も少なくなります。または、tarストリームをUSBドライブに直接パイプすることもできます。


はい、単一のtarアプローチで確実に結果が得られることはわかっていますが、単一のファイルの構築にかなりの時間がかかるかどうかはわかりませんでした。
in.spite、2009

Firewireは優れていますが、eSATAの方が高速です。
Chopper3

0

大量のファイルをコピーする最も効率的な方法は、まずそれらをISOファイルにストリーミングしてから、代わりにISOをコピーすることでした。このようにして、ファイルをコピーするために必要な何千ものコマンドを発行することで、ディスクは心配されません。

もちろん、これはディレクトリ構造によって異なります。幸運にも、4.7GB間隔で新しいディレクトリを作成して、プロセスを自動化するVBScriptを非常に簡単に作成できるようになりました。


私はあなたの論理に従いません。ISOを作成するには、これらのすべてのファイルを読み取り、ISOに書き込む必要があります。次に、ISOを読み取ってファイルを抽出し、最後にそれらを宛先に書き込みます。一度読み書きするよりも効率的ですか?
John Gardeniers、

VBSCript、C#、または別のスクリプト言語のサンプルコードはありますか?
キケネット

@JohnGardeniers Lewisは、ネットワーク経由で小さなファイルをコピーするのにかかる時間は、それらをISOに入れてからそのファイルを転送するのにかかる時間よりもはるかに大きなオーバーヘッドがあることに賭けています。それは実際には特定の環境に依存しますが、思ったほど直感的ではないので、何千もの小さなファイルの代わりに1つの統合ファイルを転送する方が速くなる可能性があります。

0

最初にソースファイルを単一のアーカイブ(tarまたはzipに圧縮など)にパックしてから、ネットワーク経由でアーカイブを転送し、次にアーカイブを解凍する場合、転送シーケンスの全体的なパフォーマンスがほぼ確実に向上します。先。

アーカイブをネットワーク経由で転送する場合は、単純なSMBファイルのコピーよりもFTP(または別のファイル指向の転送プロトコル)を使用するほうがよいことを忘れないでください。

上記のようなプロセスを使用して、地理的に離れた複数のデータセンター(米国、ヨーロッパ、アジア)間で約60GB(約50,000〜75,000ファイル)のアプリケーションディレクトリを定期的に転送しました。一度に1つのファイルを転送することと、FTP経由で圧縮アーカイブを転送することの違いは、10〜40倍高速です。

他の多くのファイル転送シナリオと同様に、Rsyncもここであなたの友達になることができます。

商用オプションを利用できる場合は、複数のUDPストリームを介してビットをプッシュできるUDPベースのバイナリストリーミングソリューションが価値があるかもしれません。見てくださいhttp://www.filecatalyst.com/を


0

別のオプションは、内蔵のトラッカーまたはDHTをオンにしてBittorrentを使用することです。クライアントは、すべてのファイルをブロックにまとめます(可能な場合は2MB以上を使用します)。受信側では、ハードドライブに書き込まれるファイルを大きなブロックチャンクで受信します。これは、小さなファイルを2MBのチャンクに統合するのに役立ち、転送速度が向上し、

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.