Domanda

Voglio essere in grado di distribuire pacchi di file, circa 500 MB per pacco, a tutte le macchine di una "extranet" aziendale (che è fondamentalmente un paio di LAN collegate mediante vari meccanismi privati, tra cui le linee affittate e VPN).

Il numero totale di host è di circa 100, e l'obiettivo è quello di ottenere una copia del fascio da un host su tutti gli altri host in modo affidabile, in modo rapido ed efficiente. Una questione importante è che alcuni host sono riuniti sul LAN singoli veloci nel qual caso la rete di I / O dovrebbe essere fatto una volta da un gruppo all'altro e poi all'interno di ciascun gruppo tra tutti i coetanei. Questo è in contrasto con un sistema di server centrale rigoroso in cui più host potrebbero prendere ogni fascio stesso su un collegamento lento, piuttosto che una volta tramite il collegamento lento e poi tra l'altro in modo rapido.

Un nuovo bundle sarà prodotto ogni pochi giorni, e, occasionalmente, i vecchi fasci verranno eliminati (ma questo problema può essere risolto separatamente).

Le macchine in questione capita di eseguire versioni di Linux recenti, ma punti bonus andranno a soluzioni che sono almeno un po 'più piattaforme (nel qual caso il fascio potrebbe differire per piattaforma ma forse lo stesso meccanismo può essere usato).

Questo è praticamente. Io non sono contrario a scrivere del codice per gestire questo, ma sarebbe preferibile se si trattasse di una delle bash, Python, Ruby, Lua, C o C ++.

È stato utile?

Soluzione

Credo che tutti questi problemi sono stati risolti dalla ricerca moderna in rete p2p e ben confezionato in forme piacevoli. Un po 'di sceneggiatura e Bit Torrent dovrebbe risolvere questi problemi. Esistono client torrent per tutti i sistemi operativi moderni, poi uno script su ogni macchina per controllare una posizione per un nuovo torrent file, avviare il DL, quindi eliminare il vecchio pacchetto una volta che il DL è terminata.

Altri suggerimenti

Che dire di rsync?

ho intenzione di suggerire di utilizzare l'idea di compie di rysnc per copiare i file, nel qual caso è possibile utilizzare un linguaggio di scripting di vostra scelta.

Sul sistema di propagazione avrete bisogno di uno script che contiene una qualche forma di rappresentazione dei padroni di casa e una matrice tra loro ponderata con la velocità. È quindi necessario calcolare un albero di copertura minimo da tali informazioni. Da questo, si può quindi inviare i messaggi ai sistemi a cui si intende diffondere in dettaglio il MST e il bundle per andare a prendere, per cui lo script / demone inizia il trasferimento. Che ospitano poi contatti i padroni di casa nel corso dei collegamenti veloci ...

Si potrebbe implementare in bash - pitone potrebbe essere migliore o un demone personalizzato C

.

Quando si aggiorna la rete è necessario aggiornare la matrice base di informazioni più aggiornate.

Si veda:. Algoritmo di Prim

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top