Copia file di grandi dimensioni su più macchine su una LAN


9

Ho alcuni file di grandi dimensioni che devo copiare da una macchina Linux a circa 20 altre macchine Linux, tutte sulla stessa LAN il più rapidamente possibile. Quali strumenti / metodi sarebbero i migliori per copiare questi file, osservando che questa non sarà una copia singola. Queste macchine non saranno mai connesse a Internet e la sicurezza non è un problema.

Aggiornare:

Il motivo per cui ho chiesto questo è perché (come ho capito) attualmente stiamo usando scpin seriale per copiare i file su ciascuna delle macchine e sono stato informato che questo è "troppo lento" e si sta cercando un'alternativa più veloce. Secondo quanto mi è stato detto, il tentativo di parallelizzare le scpchiamate semplicemente rallenta ulteriormente a causa delle ricerche del disco rigido.


Definisci "grande". Centinaia di MB / GB / TB / altro?
Janne Pikkarainen,

Attualmente, il totale è di circa 4 GiB (compresso), anche se potrebbe aumentare in futuro.
Jonathan Callen,

Cioè, in ogni caso, anche nel 2011 - NON GRANDE. Dato un link 1gigabit che è stato correttamente commutato (standard nel 2011) che è abbastanza buono da realizzare. Eseguendolo su un server 10g (non così raro nemmeno nel 2011) ... beh;)
TomTom

Risposte:


27

BitTorrent. È così che Twitter distribuisce alcune cose internamente.

http://engineering.twitter.com/2010/07/murder-fast-datacenter-code-deploys.html (collegamento all'archivio web)


3
Oltre alla mia risposta (che credo possa fare un buon lavoro, se è possibile implementarlo), la risposta di seguito per NFS è molto buona. Un buon server NFS dovrebbe memorizzare nella cache i file in modo da non continuare a colpire il disco. Inoltre, con ciò, non copiare i file dal server ai client. Avvialo dal client e consenti alla cache del server NFS di aiutarti.
mfinni,

1
Assicurati di provarlo in un ambiente non di produzione, nella presentazione dicono (iirc) che alcuni switch hanno sofferto molto durante le prime distribuzioni a causa del numero di pacchetti scambiati.
Shadok,

1
@psusi Perché dici che deve inviare tutti i dati 20 volte? Una volta che gli altri peer hanno parte del file, possono iniziare a inviare le parti che hanno agli altri peer stessi.
Jonathan Callen,

2
Il problema per l'OP non è la LAN, è il disco sul server centrale.
mfinni,

1
@pSusi - multicast sarebbe sicuramente un'altra valida risposta. Pubblicalo come una risposta, non come un colpo alla mia risposta.
mfinni,

12

Che ne dici di UFTP , usa multicast per consegnare file su UDP a più client contemporaneamente. Non per tutti e non sono un esperto, ma sembra che faccia quello che vuoi.


1
Dichiarazione di non responsabilità: ciò richiederà apparecchiature che supportano il multicast.
user606723

Speravo piuttosto che sarebbe stato sullo stesso vlan - riducendo l'impatto di questo uso.
Chopper3,

@ user606723: non è tutto moderno? Forse un po 'di spazzatura dei consumatori non lo fa, ma non ho incontrato nulla con il multicast rotto da un po'. Troppo lo usa in questi giorni. Penso che Windows Active Directory utilizzi anche il multicast.
Zan Lynx,

In realtà non ho esperienza con questo @ZanLynx. So che molti uffici / laboratori informatici utilizzano switch consumer / non gestiti all'ultimo hop. Come si comporteranno questi switch con multicast?
user606723

3

Hai provato a copiare questi dati con rsync? Se si dispone di 1 Gbit LAN o più veloce, la copia di oltre 4 * 20 GB non dovrebbe essere un problema.

Con quale frequenza si verificherà questa copia? Importa se ci vogliono un paio di minuti per finire?



2

L'impostazione di una condivisione NFS e l'estrazione di ciascuna macchina da questo repository condiviso di file di grandi dimensioni sarebbe probabilmente il metodo più veloce (NFS è molto veloce e ha un piccolo sovraccarico).

È possibile aggiungere una o due NIC aggiuntive al server di origine e collegarle insieme per offrire un throughput migliore.

L'implementazione potrebbe essere un semplice processo cron su ciascun server di destinazione che recupera alla cieca dalla condivisione ogni ora / giorno / qualunque cosa. È inoltre possibile configurare un demone per eseguire il polling per i nuovi file; potresti anche semplicemente scrivere una sessione di controllo su SSH (con coppie di chiavi) in ogni casella di destinazione e istruire loro a recuperare il file quando esegui lo script.


1
Credo che il mio predecessore abbia tentato di utilizzare NFS per questo e ho scoperto che (al momento), la cache RAM non era abbastanza grande per l'intero trasferimento, il che faceva sì che il carico sul disco rigido diventasse il fattore limitante anziché la rete velocità.
Jonathan Callen,
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.