Übertragen einer großen Datenmenge zwischen Kontinenten [Duplikat]

12

Mögliches Duplizieren:
Kostenlose Möglichkeit, große Dateien über das Internet zu teilen?
Welche Möglichkeiten gibt es, um große Dateien ohne Internet zu übertragen?

Das Labor meiner Frau führt hier in den USA ein Projekt mit Mitarbeitern in Singapur durch. Sie müssen gelegentlich eine große Menge hochdimensionaler Bilddaten (~ 10 GB komprimiert) über Kontinente übertragen. Was wäre mit den aktuellen Technologien eine gute Lösung für dieses Nutzungsszenario?

Ich kann mir einige vorstellen, aber keine davon scheint ideal zu sein:

  • Direkte Verbindung über das Internet: Die Übertragungsrate beträgt ca. 500 KB / s, und es fehlt auch ein Tool zur Behandlung von Fehlern / Neuübertragungen.
  • Hochladen auf einen gemeinsamen Server oder Dienst wie Dropbox: Hochladen für Mitarbeiter außerhalb der USA schmerzhaft.
  • Brennen von Discs oder Kopieren auf HDs und Versand über Courier: Die Latenz ist erheblich, zuzüglich der zusätzlichen Arbeit zum Erstellen einer lokalen Kopie.

Irgendwelche Vorschläge?

Update: Keine der Parteien der Zusammenarbeit sind technisch versierte Benutzer.

Frank
quelle
Bild wie in Bildern oder Bild wie in einer Datei, die eine DVD darstellt?
Daniel Beck
Hochdimensionale Bilder, wie sie von Mikroskopen erzeugt werden.
Frank
1
Es sind also mehrere sehr große Dateien? Können Sie uns weitere Informationen zur Anzahl der Dateien, zur Größe der einzelnen Dateien und zu den vielen Änderungen zwischen den Übertragungen geben? Sind es alle, einige von ihnen usw.?
Daniel Beck
Klingt nach einem Job für Sneakernet oder IPoAC .
Naftuli Kay

Antworten:

20

Ich schlage vor, Sie verwenden rsync . Rsync unterstützt den Delta-Übertragungsalgorithmus. Wenn Ihre Dateien also nur teilweise geändert werden oder wenn die vorherige Übertragung abnormal beendet wurde, ist Rsync intelligent genug, um nur das zu synchronisieren, was neu / geändert ist.

Es gibt mehrere Ports des ursprünglichen Rsync für Windows und andere nicht unix-kompatible Systeme, sowohl kostenlos als auch nicht kostenlos. Weitere Informationen finden Sie im Rsync Wikipedia-Artikel .

Rsync über SSH ist sehr verbreitet und funktioniert gut. 10 GB sind heutzutage eine relativ kleine Datenmenge, und Sie haben nicht angegeben, was "gelegentlich" bedeutet. Wöchentlich? Täglich? Stündlich? Mit einer Übertragungsrate von 500 KB / s dauert es ungefähr 6 Stunden, was nicht wirklich lange dauert. Wenn Sie die Daten häufig übertragen müssen, ist es wahrscheinlich besser, eine Cron-Task zu erstellen, um rsync automatisch zu starten.

haimg
quelle
Benötigen Sie kein rsynceigenes Protokoll für Deltas, sondern ein leistungsfähiges Gegenstücksystem am anderen Ende?
Daniel Beck
@DanielBeck: Es gibt nichts in den Dokumenten, was besagt, dass rsync über SSH keine Deltakopie verwenden kann ... Grundsätzlich führt der rsync-Client eine andere rsync-Kopie auf dem Server über ssh aus, daher verstehe ich nicht, warum es nicht funktionieren würde.
Haimg
+1 Da hast du einen Punkt. Damit bleibt die Linux-Anforderung auf dem Server?
Daniel Beck
Funktioniert rsyncder Delta-Algorithmus beim Übertragen von binär komprimierten Daten ( .zipoder .jpg)?
Aditya
@ DanielBeck: Ich habe einen Link zum Wikipedia-Artikel mit mehreren Windows-rsync-Ports hinzugefügt. Anscheinend arbeiten zumindest einige von ihnen als Server, einschließlich ssh. Ich habe aber noch nie einen von ihnen benutzt.
Haimg
12

Eine Verbindung über das Internet kann eine praktikable Option sein, und ein Programm wie bittorrent ist genau für diesen Zweck geeignet, da es die Dateien in logische Teile aufteilt, die über das Internet gesendet und am anderen Ende rekonstruiert werden sollen.

Bittorrent bietet Ihnen auch eine automatische Fehlerkorrektur, die Reparatur beschädigter Teile. Wenn mehr Personen die Dateien benötigen, können sie die Datei aus so vielen Quellen liefern, wie bereits (Teile) der Datei heruntergeladen wurden.

Zugegeben, die Leute sehen darin eine gute Möglichkeit, Filme und ähnliches herunterzuladen, aber es hat viel mehr legale Verwendungszwecke.

Viele Bittorrent-Clients haben auch integrierte Tracker, sodass Sie keinen dedizierten Server zum Hosten der Dateien benötigen.

Mokubai
quelle
2
Danke für die Eingabe. Die Verwendung von BitTorrent in akademischen Netzwerken kann die Administratoren nervös machen. Außerdem ist die Einrichtung und Wartung eines Trackerservers für einen durchschnittlichen Computerbenutzer möglicherweise nicht so einfach.
Frank
2
Das ist ein guter Punkt, Bittorrent ist in vielen Unternehmens- und akademischen Netzwerken aktiv verboten. Bei ordnungsgemäßer Verwaltung können Sie jedoch eine Whitelist in Netzwerken von Benutzern oder Computern einrichten, die Bittorrent verwenden dürfen. Dies würde jedoch eine sehr enge Verbindung zu den jeweiligen IT-Abteilungen bedeuten, um ordnungsgemäß zu funktionieren. Wie bereits erwähnt, benötigen Sie nicht unbedingt einen dedizierten Server, da dieser in viele Client-Programme integriert werden kann. Wenn es nicht gut zu Ihrer Situation passt, dann keine Sorge, es schien mir nur vernünftig, wenn man Ihre Anforderungen berücksichtigt.
Mokubai
Wenn Sie Bitorrent verwendet haben, klingt auch die Verwendung eines Webseeds nach einer cleveren Idee
Journeyman Geek
(Als Beispiel für eines der ‚mehr Recht Verwendungen‘ in der Antwort erwähnt, Facebook nutzt Bittorrent ihre Website zu implementieren, 1 GB binär, um Tausende von Produktionsservern. Wie bedauerlich , dass eine Technologie , vor allem , weil eines seiner Verwendungen verworfen.)
Anton Strogonoff
6

Teilen Sie die Datei in Blöcke von z split. B. 50 MB auf (z . B. ). Berechnen Sie Prüfsummen für alle (z md5sum. B. ). Laden Sie direkt über FTP und einen fehlertoleranten FTP-Client hoch, z. B. lftpunter Linux. Übertragen Sie alle Chunks und eine Datei mit allen Prüfsummen.

Stellen Sie auf dem Remote-Standort sicher, dass alle Blöcke die gewünschte Prüfsumme haben, laden Sie die fehlgeschlagenen Blöcke erneut hoch und setzen Sie sie wieder in der Originaldatei zusammen (z cat. B. mithilfe von ).

Standort des Servers zurücksetzen (ich habe unter der Annahme gepostet, dass der Zielstandort den Server bereitgestellt hat und Sie die Übertragung lokal starten, wenn die Dateien bereit sind) nach Bedarf. Ihr FTP-Client sollte sich nicht darum kümmern.


Ich hatte in der Vergangenheit ähnliche Probleme und die Verwendung eines fehlertoleranten FTP-Clients hat funktioniert. Es wurden nie Bits umgedreht, nur regelmäßige Verbindungsabbrüche, sodass ich das Erstellen von Chunks überspringen und einfach die Datei hochladen konnte. Für alle Fälle haben wir noch eine Prüfsumme für die gesamte Datei bereitgestellt.

Daniel Beck
quelle
3
Sie müssen sich jedoch bewusst sein, dass lftpeine laufende Übertragung aus irgendeinem Grund nicht abgebrochen wird . Stellen Sie sicher, dass auf dem Zielstandort immer genügend freier Speicherplatz vorhanden ist.
Daniel Beck
3

Eine Variation der Antwort von Daniel Beck besteht darin, die Dateien in Blöcke in der Größenordnung von 50 MB bis 200 MB aufzuteilen und Paritätsdateien für den gesamten Satz zu erstellen .

Jetzt können Sie die Dateien (einschließlich der Paritätsdateien) mit FTP, SCP oder etwas anderem an den Remote-Standort übertragen und nach Eintreffen des gesamten Sets eine Überprüfung durchführen. Wenn nun Teile beschädigt sind, können diese durch die Paritätsdateien behoben werden, wenn genügend Blöcke vorhanden sind. Dies hängt mehr oder weniger davon ab, wie viele Dateien beschädigt sind und wie viele Paritätsdateien Sie erstellt haben.

Paritätsdateien werden im Usenet häufig zum Senden großer Dateien verwendet. Meistens werden sie dann als RAR-Archive aufgeteilt. Es ist nicht ungewöhnlich, auf diese Weise Daten mit bis zu 50 bis 60 GB zu senden.

Sie sollten auf jeden Fall den ersten Link überprüfen und sich auch QuickPar ansehen , ein Tool, mit dem Sie Paritätsdateien erstellen, Ihre heruntergeladenen Dateien überprüfen und mit den bereitgestellten Paritätsdateien sogar beschädigte Dateien wiederherstellen können.

Martijn B.
quelle
+1 - Dieser Ansatz funktioniert gut im Usenet, und die Paritätsdateien können eine erstaunliche Menge fehlender Daten reparieren. Nachteil ist die Verarbeitungszeit, die erforderlich ist, um Paritätsdateien zu teilen und zu generieren sowie um Dateien nach dem Empfang zu prüfen und zu extrahieren.
Deizel
1

Ist es eine große 10-GB-Datei? Könnte es leicht aufgeteilt werden?

Ich habe nicht so viel damit gespielt, aber es kam mir als interessantes und relativ einfaches Konzept vor, das in dieser Situation funktionieren könnte:

http://sendoid.com/

Craig H.
quelle
Sendoid ist ziemlich cool, aber das Hochladen wird leider immer noch schmerzhaft sein. Andererseits bleibt das Problem bei allen Typen bestehen, die ich glaube, es sei denn, Sie senden eine Festplatte per E-Mail. +1, da es einfach zu bedienen ist.
DMan
0

Stellen Sie die Daten über ftp / http / https / sftp / ftps zur Verfügung (Anmeldeinformationen erforderlich) und verwenden Sie einen beliebigen Download-Manager auf der Clientseite.

Download-Manager wurden speziell entwickelt, um Daten unabhängig von auftretenden Fehlern abzurufen, damit sie optimal zu Ihrer Aufgabe passen.

Für den Server ist ein FTP-Server normalerweise am einfachsten einzurichten. Sie können eine Liste bei Wikipedia konsultieren . HTTPS, SFTP und FTPS ermöglichen die Verschlüsselung (bei reinem FTP / HTTP wird das Kennwort im Klartext gesendet), SFTP / FTPS werden jedoch weniger häufig von der Client-Software unterstützt, und die Einrichtung des HTTP / HTTPS-Servers ist schwierig.

ivan_pozdeev
quelle
1
Das Problem bei der Verwendung von http oder ftp ist, dass es Übertragungsfehler gibt und Sie das Ganze erneut senden müssen. rsync, bittorrent und andere Protokolle können überprüfen, ob die Dateien übereinstimmen, und nur die beschädigten Teile erneut übertragen. Paritätsdaten, wie sie QuickPar generiert, können ebenfalls hilfreich sein.
Afrazier
Sowohl FTP als auch HTTP bieten als optionale Erweiterung eine Funktion zur Wiederaufnahme der Übertragung, die von den meisten Servern und praktisch allen Download-Managern unterstützt wird.
ivan_pozdeev
Sie können fortgesetzt werden, und theoretisch stellt TCP sicher, dass die Daten in der richtigen Reihenfolge und mit einer gültigen Prüfsumme eintreffen. Jeder, der eine große HTTP- oder FTP-Übertragung beschädigt hat, hat den Wert robusterer Protokolle oder einer Art ECC gelernt.
Afrazier