Ich muss einige Daten, die 900.000 winzige Dateien mit einer Gesamtgröße von 30 Gigabyte enthalten, auf einen Windows-Computer kopieren. Es muss jedoch in weniger als anderthalb Stunden kopiert und eingerichtet werden können, und das Kopieren von einer USB-Festplatte kann mehr als 5 Stunden dauern, was hauptsächlich auf die verrückte Menge an Dateien zurückzuführen ist. Gibt es eine bessere / schnellere Möglichkeit, damit umzugehen, beispielsweise eine Art Blockkopieren? Vielen Dank
usb-storage
file-transfer
Joe Lyga
quelle
quelle
Antworten:
Bei einer großen Anzahl von Dateien ist es am besten, ein Tar-Archiv zu erstellen, damit Sie weniger Dateien bearbeiten müssen. Wenn Sie eine externe USB 2.0-Festplatte verwenden, sollten Sie USB 3.0, eSATA oder ein schnelles lokales Netzwerk verwenden.
Was ist Ihr Quellbetriebssystem? Wenn beide Betriebssysteme Linux wären, könnten Sie die Dateien über tar, gzip und ssh an den Zielcomputer weiterleiten. Sie können cygwin unter Windows installieren, um diese Art von Funktionalität auch für Windows zu erhalten.
Update: Der Beitrag
" Verwenden von Tar und SSH zur Verbesserung der SCP-Geschwindigkeiten " beschreibt die Befehle, die zum Senden von Tar-Inhalten über ssh erforderlich sind.
quelle
Wenn die Festplatte von der USB-Schnittstelle auf SATA / ATA entfernt werden kann, würde ich sie auf dem Zielcomputer installieren. Sie erhalten viel schnellere Übertragungsgeschwindigkeiten, wie andere angemerkt haben. Zum Kopieren würde ich unter der Annahme, dass Sie unter Windows arbeiten, eine einfache ROBOCOPY durchführen. Es ist ungefähr so schnell, wie Sie wirklich hoffen können, obwohl es andere Alternativen gibt.
Ich würde versuchen, das Komprimieren all dieser Dateien zu vermeiden. Es besteht jedoch eine gute Chance, dass die Zeit zum Komprimieren und Verschieben das einfache Verschieben der Dateien übersteigt.
* Die Option / MT für Robocopy wurde hinzugefügt. In einer Umgebung mit mehreren Threads können Übertragungen erheblich beschleunigt werden.
quelle
/MT
bei lokalen Übertragungen einzelner Festplatten oder verursacht es massiven Festplatten-Thrashing? Es ist üblich, große Freigaben zwischen Servern zu kopieren, aber beide haben häufig eine zusätzliche Latenz, da sie über das Netzwerk gehen, und verbesserte IOPS von RAID-Arrays.Sie können versuchen, ein Image des gesamten Ordners / Laufwerks aufzunehmen
Auf Linux-Systemen können Sie
dd
eine Rohkopie des Dateisystems abrufen und als einzelne große Datei kopieren.Um das Image auf Windows zu extrahieren, müssen Sie möglicherweise cygwin oder ein Programm installieren, das Images verarbeiten
dd
kann.quelle
Installieren Sie die Festplatte, auf der sich die Quelldateien befinden, auf dem Computer, den Sie einrichten, und übertragen Sie die Festplatte auf die Festplatte. USB vergessen. Selbst die Übertragung über das Kabel (Netzwerk der Maschinen miteinander) wäre schneller als USB (vorausgesetzt, USB 2.0 und 1 Gbit / s NIC). Wenn dies ein wiederkehrendes Ereignis ist, prüfen Sie stattdessen die Replikation.
quelle
Verwenden Sie
rsync
mitz
Option.Dies erhöht die Übertragungsgeschwindigkeit über das Netzwerk. Also höchstwahrscheinlich nicht nützlich in Ihrem Fall.
Nach einigem Lesen wurde mir klar, dass wir beim Kopieren von Daten von einer lokalen Festplatte auf eine andere nicht das Flag '-z' verwenden sollten, da dies den Overhead erhöht. Vielen Dank für einen Kommentar von @FakeName.
quelle
Sie nähern sich schnell den Einschränkungen Ihrer Festplatte. Tatsächlich ist es bei aktuellen Standardlaufwerken unmöglich, Ihre Übertragungszeit mit einem Kopiervorgang pro Datei zu messen.
Angenommen, jede Datei benötigt 1 HD-Such- und Suchzeit beträgt 7 ms (was realistisch gesehen etwas idealisiert ist, erfordert jede Datei zwei Suchvorgänge, es sei denn, die Volume-Bitmap wird im RAM zwischengespeichert), verwalten Sie bestenfalls ~ 142 Dateien / Sek. ( \ $ \ frac {1000} {7} = 142,8 ... \ $).
Mit den OP-Spezifikationen (30 GB, 900.000 Dateien) sind das ~ 33 KB pro Datei (\ $ \ frac {30.000.000.000} {900.000} = ~ 33,3 ... \ $. 33 KB * 142 = 4,68 MBit / s.
Die Mindestzeit für die Übertragung von 30 GB mit 5 MBit / s beträgt ~ 1 Stunde und 40 Minuten (\ $ \ frac {30.000} {5} = = 6.000 \ $ Sekunden. \ $ \ Frac {6.000} {60} = 100 \ $ Minuten oder 1:40 Stunden)
Daher ist es unmöglich , eine Geschwindigkeit zu erreichen, die besser als ~ 5 MBPS ist, und das bei einem idealen Laufwerk (und weniger Suchvorgängen. Dies gilt für einen Suchvorgang pro Datei. Realistisch gesehen wären es zwei). Sie sind vollständig durch die Festplattenleistung eingeschränkt.
Die einzige Möglichkeit, die Leistung zu verbessern, besteht darin, das gesamte Dateisystem und die Partition nacheinander zu kopieren.
dd
kann dies unter Linux tun.Was versuchst du zu machen?
quelle
Versuchen Sie 7zip, die Dateien nur in einer Datei zu archivieren. Verwenden Sie nach Möglichkeit WLAN mit einer Ad-hoc-Verbindung zu einem Notebook.
quelle
Im Zusammenhang mit der Antwort von @arcyqwery können Sie sie möglicherweise komprimieren und gleichzeitig in eine große Datei umwandeln. Dies wird den Prozess etwas beschleunigen.
Es kann sich auch lohnen, ein Programm wie TeraCopy zu verwenden , da es normalerweise schneller ist als die standardmäßige Windows- Kopierleistung . Sie sollten in Ihrem Fall jedoch mit ähnlichen Umständen testen, um dies zu überprüfen.
quelle
Ich hatte einen ähnlichen Fall. Ich habe Antivirus deaktiviert und die Kopiergeschwindigkeit von 3 MB / s auf 12 MB / s geändert.
quelle