Trasferimento di una grande quantità di dati tra continenti [duplicato]


12

Possibile duplicato:
modo gratuito per condividere file di grandi dimensioni su Internet?
Quali sono alcune opzioni per trasferire file di grandi dimensioni senza usare Internet?

Il laboratorio di mia moglie sta facendo un progetto qui negli Stati Uniti con collaboratori a Singapore. Occasionalmente devono trasferire una grande quantità di dati immagine ad alta dimensione (compressi ~ 10 GB) attraverso i continenti. Con le attuali tecnologie, quale sarebbe una buona soluzione per questo scenario di utilizzo?

Posso pensarne alcuni ma nessuno sembra ideale:

  • Connessione diretta via Internet: la velocità di trasferimento è di circa 500 KB / s, anche priva di uno strumento per gestire errori / ritrasmissioni.
  • Carica su un server o servizio comune come Dropbox: doloroso caricamento per collaboratori non statunitensi.
  • Masterizzazione di dischi o copia su HD e spedizione tramite Courier: la latenza è significativa, oltre al lavoro extra per fare una copia locale.

Eventuali suggerimenti?

Aggiornamento: nessuna delle parti della collaborazione è utenti esperti di tecnologia.


Immagine come in foto o immagine come in un file che rappresenta un DVD?
Daniel Beck

Immagini ad alta dimensione, generate dai microscopi.
Frank,

1
Quindi sono molti file molto grandi? Potresti fornirci ulteriori informazioni sul conteggio dei file, sulle dimensioni dei singoli file e su quanti di questi cambi tra i trasferimenti? Sono tutti, alcuni, ecc.?
Daniel Beck


Sembra un lavoro per Sneakernet o IPoAC .
Naftuli Kay,

Risposte:


20

Ti suggerisco di usare rsync . Rsync supporta l'algoritmo di trasferimento delta, quindi se i tuoi file vengono modificati solo parzialmente o se il trasferimento precedente è stato terminato in modo anomalo, Rsync è abbastanza intelligente da sincronizzare solo le novità / modifiche.

Esistono diverse porte dell'originale Rsync su Windows e altri sistemi non unix compatibili, sia gratuiti che non liberi. Per ulteriori dettagli, consultare l' articolo di Rsync Wikipedia .

Rsync su SSH è molto usato e funziona bene. 10 GB è una quantità relativamente piccola di dati al giorno d'oggi e non è stato specificato cosa significa "occasionalmente". Settimanalmente? Quotidiano? Oraria? Con una velocità di trasferimento di 500 KB / sec ci vorranno circa 6 ore, non molto tempo. Se è necessario trasferire frequentemente i dati, è probabilmente meglio creare un'attività cron per avviare automaticamente rsync.


Non rsyncrichiede un proprio protocollo per i delta, che richiede un sistema di contropartita capace all'altra estremità?
Daniel Beck

@DanielBeck: Non c'è nulla nei documenti che dice che rsync su SSH non può usare deltacopy ... Fondamentalmente il client rsync esegue un'altra copia rsync sul server tramite ssh, quindi non vedo perché non funzionerebbe.
haimg

+1 Hai un punto lì. Ciò lascia però il requisito Linux sul server?
Daniel Beck

L' rsyncalgoritmo delta funziona quando si trasferiscono dati compressi binari ( .zipo .jpg)?
Aditya,

@DanielBeck: ho aggiunto un collegamento all'articolo di Wikipedia con diverse porte rsync di Windows. Apparentemente almeno alcuni di loro funzionano come server, incluso ssh. Non ho mai usato nessuno di loro però.
haimg

12

La connessione attraverso Internet può essere un'opzione praticabile e un programma come bittorrent è esattamente adatto a questo scopo in quanto spezzerà i file in pezzi logici da inviare su Internet per essere ricostruiti all'altra estremità.

Bittorrent ti dà anche la correzione automatica dell'errore, la riparazione di pezzi danneggiati e se più persone hanno bisogno dei file, allora avranno il vantaggio di poter ricevere il file da tante fonti quante ne hanno già (parti) del file scaricato.

Le persone garantite lo vedono come un bel modo per scaricare film e simili, ma ha molti altri usi legali.

Molti client bittorrent hanno anche tracker integrati, quindi non è necessario disporre di un server dedicato per ospitare i file.


2
Grazie per l'input. L'uso di BitTorrent all'interno delle reti accademiche può rendere nervosi i loro amministratori. Inoltre, l'installazione e la manutenzione di un server tracker potrebbe non essere così semplice per un utente medio.
Frank,

2
Questo è un buon punto, il bittorrent è attivamente proibito in molte reti aziendali e accademiche. Con una corretta amministrazione, tuttavia, è possibile impostare una lista bianca all'interno di reti di utenti o macchine a cui è consentito utilizzare bittorrent, sebbene ciò significherebbe legami molto stretti con i rispettivi dipartimenti IT per funzionare correttamente. Come ho già detto, non è necessario disporre di un server dedicato in quanto può essere integrato in molti programmi client. Se non è adatto alla tua situazione, non preoccuparti, mi è sembrato ragionevole considerando le tue esigenze.
Mokubai

Se stavi usando bitorrent, anche usare un seme web sembra un'idea geniale
Journeyman Geek

(Come esempio di uno degli "usi più legali" menzionati nella risposta, Facebook utilizza bittorrent per distribuire il proprio sito, binario da 1 GB, a migliaia di server di produzione. Che peccato che una tecnologia venga scartata principalmente a causa di uno dei suoi usi.)
Anton Strogonoff,

6

Suddividere il file in pezzi ad es. 50 MB (usando ad es split.). Calcola i checksum per tutti (ad es md5sum.). Carica direttamente utilizzando FTP e un client FTP tollerante agli errori, come lftpsu Linux. Trasferisci tutti i blocchi e un file contenente tutti i checksum.

Sul sito remoto, verificare che tutti i blocchi abbiano il checksum desiderato, ricaricare quelli non riusciti e rimontarli nel file originale (ad es. Utilizzando cat).

Ripristina posizione del server (ho pubblicato presupponendo che il sito di destinazione fornisse il server e avvii il trasferimento localmente quando i file sono pronti), se necessario. Al tuo client FTP non dovrebbe interessare.


Ho avuto problemi simili in passato e l'utilizzo di un client FTP tollerante agli errori ha funzionato. Nessun bit è stato mai capovolto, solo interruzioni regolari della connessione, quindi ho potuto saltare la creazione di blocchi e semplicemente caricare il file. Abbiamo comunque fornito un checksum per il file completo, per ogni evenienza.


3
È necessario essere consapevoli, tuttavia, che lftpnon interrompe un trasferimento in corso per qualsiasi motivo. Assicurati di avere sempre abbastanza spazio libero su disco nel sito di destinazione.
Daniel Beck

3

Una variante della risposta di Daniel Beck è quella di suddividere i file in blocchi nell'ordine da 50 MB a 200 MB e creare file di parità per l'intero set.

Ora puoi trasferire i file (compresi i file di parità) con FTP, SCP o qualcos'altro sul sito remoto ed effettuare un controllo dopo l'arrivo dell'intero set. Ora se ci sono parti danneggiate possono essere riparate dai file di parità se ci sono abbastanza blocchi. Ciò dipende più o meno dal numero di file danneggiati e dal numero di file di parità creati.

I file di parità vengono utilizzati molto su Usenet per inviare file di grandi dimensioni. La maggior parte delle volte vengono quindi suddivisi come archivi RAR. Non è raro inviare dati fino a 50-60 GB in questo modo.

Dovresti assolutamente dare un'occhiata al primo link e puoi anche dare un'occhiata a QuickPar , uno strumento che può essere usato per creare file di parità, verifica i tuoi file scaricati e può anche ripristinare i file danneggiati con i file di parità forniti.


+1: questo approccio funziona bene su usenet e i file di parità possono riparare una quantità sorprendente di dati mancanti. Il rovescio della medaglia è il tempo di elaborazione richiesto per dividere e generare file di parità e per controllare la parità ed estrarre i file dopo la ricezione.
Deizel,

1

È un grande file da 10 GB? Potrebbe essere facilmente diviso?

Non ho giocato molto con questo, ma mi è sembrato un concetto interessante e relativamente semplice che potrebbe funzionare in questa situazione:

http://sendoid.com/


Sendoid è piuttosto interessante, ma sfortunatamente il caricamento sarà ancora doloroso. Inoltre, il problema persiste per tutti i tipi, credo, a meno che non si stia inviando un HDD. +1 in quanto è facile da usare.
DMan,

0

Rendere i dati disponibili tramite ftp / http / https / sftp / ftps (che richiedono credenziali di accesso) e utilizzare qualsiasi gestore di download sul lato client.

I download manager sono progettati specificamente per recuperare i dati indipendentemente da eventuali errori che possono verificarsi in modo da adattarsi perfettamente al tuo compito.

Per quanto riguarda il server, un server FTP è in genere il più semplice da configurare. Puoi consultare un elenco su Wikipedia. HTTPS, SFTP e FTPS consentono la crittografia (in puro FTP / HTTP, la password viene inviata in chiaro) ma SFTP / FTPS sono meno comunemente supportati dal software client e la configurazione del server HTTP / HTTPS è complicata.


1
Il problema con l'utilizzo di http o ftp è che ci sono errori di trasmissione, devi inviare di nuovo tutto. rsync, bittorrent e altri protocolli possono verificare che i file corrispondano e ritrasmettere solo i pezzi danneggiati. Anche i dati di parità, come genera QuickPar, possono aiutare.
Afrazier

Sia FTP che HTTP includono una funzionalità di ripresa del trasferimento come estensione opzionale che è supportata dalla maggior parte dei server e praticamente da tutti i gestori di download.
ivan_pozdeev il

Essi possono riprendere, e teoricamente TCP fa in modo che i dati arrivano in ordine e con un checksum valido. Tuttavia, chiunque abbia subito un trasferimento HTTP o FTP di grandi dimensioni danneggiato ha appreso il valore di protocolli più affidabili o di un qualche tipo di ECC.
Afrazier
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.