900,000ファイルをすばやくコピーする方法


9

私は全部で30ギガバイトの合計90万の小さなファイルを含むいくつかのデータをウィンドウズのコンピュータにコピーする必要があります。ただし、コピーして1時間半以内にセットアップできるようにする必要があります。また、USBハードドライブからファイルをコピーするのに5時間以上かかることもあります。ある種のブロックコピーをするなど、これに対処するためのより良い/より速い方法はありますか?ありがとう


7
それはなるだろう 非常に 単一の非SSDディスクからのファイルベースのコピーに対する積極的なターゲット。すべてのファイルを列挙し、その多くのファイルのファイルシステムエントリとメタデータを処理するだけでもかなりの時間がかかります。
afrazier

5
あなたはただハードドライブを取り外して目的地に置くことができますか?これが最も速いスピードで、マザーボードのバックプレーンを介して転送されます。
iTom


この質問をブログで見たいですか? に答えるか投票することで助けてください メタ
Tom Wijsman

回答:


6

大量のファイルを扱う場合は、扱うファイルが少なくなるようにtarアーカイブを作成するのが最善です。 USB 2.0外付けハードドライブを使用している場合は、USB 3.0、eSATAの使用、または高速ローカルネットワークの使用を検討してください。

ソースOSは何ですか?両方のオペレーティングシステムがLinuxの場合は、ファイルをtar、gzip、およびsshを介してターゲットマシンにパイプすることができます。 WindowsにcygwinをインストールしてWindows用のこのような機能を取得することもできます。

更新:
SCP速度を向上させるためのTarとSSHの使用 msgstr "" "postはssh上でtarの内容を送信するのに必要なコマンドを説明しています。


tarはまだすべてのファイルを一つずつ読みます。
Tomas Andrle

はい、しかしあなたは一度だけそれをするでしょう、そしてscpのような他のコマンドは個々のファイルを扱うことによって遅れることはないでしょう。ファイルをターゲットマシンのtarアーカイブに保存できる場合は、多数のファイルではなく1つのファイルを書き込む時間も節約できます。
dabest1

USB接続がボトルネックだと思います。 @arcyqwertyが示唆しているようにドライブの生のイメージを撮ることは私にとって最良の解決策のようです。実際の結果を見たいのですが、私は完全に間違っているかもしれません!
Tomas Andrle

1
@TomA - 私の経験では、取引時 たくさん 小さなファイルの ハードドライブ ボトルネックです。ファイルを読み込むたびに、Allocationビットマップへのヘッドシークが必要になり、次に実際のファイルの内容へのヘッドシークがもう1つ必要になります。その結果、ハードドライブは、検索の時間の大部分を費やし、実際にファイルの読み取りにはほとんど時間を費やしません。
Fake Name

2
例として、1Kファイルの場合、ギガビットLANで1〜5 MBpsかかります。大きなファイル(それぞれギガバイト)の場合、私は80〜90 MBpsを得ます。これはすべてシーケンシャルリードに関するものです。
Fake Name

8

ハードドライブをUSBインターフェイスからSATA / ATAに取り外すことができる場合は、インストール先のコンピュータに取り付けます。他の人が指摘したように、あなたははるかに速い転送速度を得るでしょう。コピーのために、あなたがWindows上にいると仮定して、私は簡単なROBOCOPYをするでしょう。他にも選択肢がありますが、あなたが本当に望むことができるのと同じくらい速いです。

ROBOCOPY /E /B /MT 'source' 'destination'

私はこれらすべてのファイルの圧縮を避けようとしますが、圧縮して移動する時間は単にファイルを移動するだけの時間を超える可能性があります。

* robocopyに/ MTオプションを追加しました。あなたがマルチスレッド環境にいるとき、それは転送を非常にスピードアップすることができます。


意志 /MT ローカルのシングルディスク転送を手助けしますか、それとも大量のディスクスラッシングを引き起こしますか?サーバー間で大きなシェアをコピーするのが一般的ですが、ネットワークを経由するためにレイテンシが増え、RAIDアレイからのIOPSが向上することがよくあります。
afrazier

私はこの側面についてあまりにもそれほど強くコメントすることはできません。私は毎晩、自分のVSプロジェクトのすべてをバックアップするためにロボコピーを使用しています。すでに存在するファイルはコピーされないため、ほんの少しの時間がかかります。私は数ヶ月前にこれらのRobocopyベンチマークを見つけました: demartek.com/Reports_Free/…
Lee Harrison

私の経験では、ドライブエンクロージャのUSB - SATAアダプタがネイティブコマンドキューイングをサポートしている場合は、/ MTスイッチのパフォーマンスが大幅に向上します。
longneck

6

あなたは全体のフォルダ/ドライブの画像を撮ってみることができます

Linuxシステムでは使用できます dd ファイルシステムの生のコピーを入手し、それを単一の大きなファイルとしてコピーします。

画像をWindowsに抽出するには、cygwinまたはそれを処理できるプログラムをインストールする必要があるかもしれません。 dd 画像


それがチケットです。
Tomas Andrle

3

設定しているコンピュータのソースファイルがあるディスクをインストールし、ディスクをディスクに転送します。 USBを忘れます。有線で(マシンをネットワークにまとめて)転送する場合でも、USBよりも高速です(usb 2.0および1Gbps NICを想定)。 これが繰り返し発生するイベントである場合は、代わりにレプリケーションを調べてください。


3

つかいます rsyncz オプション。

-z,         --compress              compress file data during the transfer
            --compress-level=NUM    explicitly set compression level
            --skip-compress=LIST    skip compressing files with suffix in LIST

これにより、ネットワークを介した転送速度が向上します。だからあなたのケースではおそらくほとんど役に立ちません。

もう少し読んだ後、私は、あるローカルハードドライブから別のローカルハードドライブにデータをコピーするときに '-z'フラグを使うべきではないことを認識しました、それはオーバーヘッドを増やします。 @FakeNameからコメントしていただきありがとうございます。


1
rsyncはローカル転送(またはLAN経由)には圧縮されません。また、本当の問題は時間がかかるため、これにはメリットがありません。 読む ファイルは、ネットワーク経由では送信されません(ファイルの読み取りごとに最低2回のシーク操作が必要になるため)。
Fake Name

@ FakeName + 1あなたは正しいです、読んだ後に私はあなたの主張を得ました。私は自分の答えを更新しました。
Sachin Divekar

1

あなたはすぐにあなたのハードドライブの限界に近づいています。事実、現在のコモディティドライブでは、ファイルごとのコピー操作で転送時間を合わせることは不可能です。

各ファイルが1 HDシークを必要とし、シーク時間が7 msであると仮定すると(これは少し理想化された、現実的には各ファイルが必要となります) ボリュームビットマップがram)にキャッシュされていない限り、たかだか142ファイル/秒まで管理できます(\ $ \ frac {1000} {7} = 142.8 ... \ $)。

1ファイルあたり最大33KのOP仕様(30 GB、900,000ファイル)の場合(\ $ \ frac {30,000,000k} {900,000} =〜33.3 ... \ $ 33 KB * 142 = 4.68 MBps)。

最小 30 MBを5 MBpsで転送するのにかかる時間は、1時間40分です(\ $ \ frac {30,000} {5} = = 6,000 \ $秒。\ $ \ frac {6,000} {60} = 100 \ $分、または1:40時間)

したがって、それは 不可能 最大5 MBPSを超える速度を達成するには、理想的なドライブを使用する必要があります(そして、シーク操作が少なくなります。これはファイルごとに1回のシークです。あなたは限られています 完全に ディスク性能によって。


パフォーマンスを向上させる唯一の方法は、ファイルシステム全体をコピーすることです。順次分割します。 dd Linuxでこれを行うことができます。

あなたは何をしようとしているのですか?


TeXは他の人のために働いていますか?私にはレンダリングされていないようです。
Fake Name

0

ファイルを1つのファイルにのみアーカイブするには、7zipを試してください。可能であれば、ノートブックへのアドホック接続でWLANを使用してください。


1
あるいはもっと良いことに、直接のイーサネット接続、できればgig-e
Journeyman Geek

0

@arcyqweryの答えに関連して、あなたはそれを圧縮し、同時に一つの大きなファイルに変えることができるかもしれません。これはプロセスをいくらかスピードアップするでしょう。

次のようなプログラムを使うことも価値があるでしょう。 テラコピー 通常はデフォルトのWindowsコピーのパフォーマンスよりも速いからです。あなたがチェックするためにあなたのケースで同様の状況でテストするべきです。

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