Opzioni del protocollo di trasferimento file?
-
03-07-2019 - |
Domanda
Sto cercando un buon modo per trasferire quantità non banali (10G > x > 10MB) di dati da una macchina all'altra, potenzialmente su più sessioni.
Ho esaminato brevemente
- * ftp (sftp, tftp, ftp)
- http
- torrent (fuori perché non avrò una rete di seed in generale)
- rsync (non sono sicuro di poter davvero adattare questo a ciò di cui ho bisogno)
Esistono altri protocolli che potrebbero adattarsi un po 'meglio al conto? La maggior parte di quanto sopra non è molto tollerante ai guasti in sé e per sé, ma si affida piuttosto alle app client / server per colmare il problema. In questa fase mi interessa molto di più del protocollo stesso, piuttosto che una particolare implementazione client / server che funzioni bene.
(E sì, so di poter scrivere il mio su udp, ma preferirei quasi tutto !!)
Soluzione
Uso rsync (su SSH) per trasferire qualsiasi cosa che possa richiedere più di un minuto.
È facile limitare il limite, sospendere / riprendere e ottenere rapporti sui progressi. Puoi automatizzarlo con le chiavi SSH. È (di solito) già installato (su * nix box, comunque).
A seconda delle necessità, probabilmente rsync può adattarsi. Se stai distribuendo a molti utenti, FTP / HTTP potrebbe essere migliore per le preoccupazioni del firewall; ma rsync è ottimo per i trasferimenti uno a uno o uno a pochi.
Altri suggerimenti
rsync è quasi sempre la scommessa migliore.
poiché trasferisce solo differenze, se il trasferimento viene interrotto, la volta successiva non sarà così diverso come il primo (quando non c'era un file a destinazione)
BitTorrent non richiede una grande rete di semi per essere efficace - funzionerà perfettamente con una seminatrice e un peer. C'è un po 'di overhead nell'impostare un tracker ecc., Ma una volta impostato sarebbe un metodo di trasferimento piacevole, scattante e tollerante ai guasti.
Bene, HTTP è una buona opzione, in quanto supporta il riavvio dei trasferimenti parziali utilizzando intervalli di byte . FTP o TFTP sono utili perché è possibile ottenere un software server estremamente semplice da configurare, anziché dover bloccare qualcosa come un server HTTP.
GridFTP è ciò che Argonne sta usando per trasportare enormi quantità di dati affidabili.