PDA

View Full Version : Sincronizzare due cartelle di rete


Shinobi
12-12-2013, 09:43
Salve ragazzi.
Avrei la necessità di tenere sincronizzate due cartelle con relativi file e sottocartelle considerando che:

-I dati totali da tenere sincronizzati sono 202Gb di dati con circa 235000 files e 28000 sottocartelle
-L'origine al momento è un file server su Windows 2003 R2
-La destinazione è una share creata su un Netgear Readynas 2100
-Abbiamo linee MPLS ma al momento pesantemente sottodimensionate (al momento le aziende lavorano con linee a 2Mbit)
-La sincronizzazione deve essere unidirezionale, ossia i file vengono inseriti nell'origine e devono essere replicati, se un file viene cancellato nell'origine deve essere eliminato nella destinazione ma non vice versa.

Fino ad ora ho tentato con:
-Impostato un server Rsync sull'origine con DeltaCopy Server e tentato di creare dei job rsync con gli strumenti nativi del readynas:con un job unico la copia falliva con un tristissimo "unknown error" e ho quindi tentato di fare dei job differenti per tutte le macro sottocartelle: mentre vanno a vuon fine per le cartelle più piccole per le grandi viene lanciato il solito "unknown error".

-Ho quindi tentato di usare robocopy dal server di origine con i seguenti flag:

robocopy origine destinazione /MIR /FFT /Z /XA:H

e per funzionare funziona ma ovviamente ci mette molto tempo (ore e ore) a comparare le varie directory. Avete qualche suggerimento come ad esempio utilizzare uno strumento diverso oppure qualche flag aggiuntivo di robocopy?

grazie a tutti

eimer
12-12-2013, 12:57
server e nas sono in due aziende diverse ??? per quello parli di linee a 2 mega ???

Shinobi
12-12-2013, 13:30
Si dovevo specificarlo meglio: il server di origine è in Italia e il nas di destinazione è nella sede cinese. 2Mbit è la connettività di ciascuna delle due sedi.

Kaya
12-12-2013, 14:20
robocopy origine destinazione /MIR /FFT /Z /XA:H

e per funzionare funziona ma ovviamente ci mette molto tempo (ore e ore) a comparare le varie directory. Avete qualche suggerimento come ad esempio utilizzare uno strumento diverso oppure qualche flag aggiuntivo di robocopy?

grazie a tutti

Quella del robocopy è una strada che funziona in una sola direzione: nel mio caso ogni 24 lancio una copia dei files modificati nelle ultime 24 ore.
Questo risolve il problema dei files NUOVI ma non di quelli cancellati.
Per quelli cancellati potresti aggiungere un evento audit che monitora quali che sono gli eventi di tipo cancellazione nella directory. Poi li esporti in un file di testo che invii all'altro nas, e che poi darai in pasto al comando "rm"

Può essere fattibile?

Aggiungo: se potessi avere due serverini linux risolveresti in un baleno con glusterfs...

Shinobi
12-12-2013, 16:00
Quella del robocopy è una strada che funziona in una sola direzione: nel mio caso ogni 24 lancio una copia dei files modificati nelle ultime 24 ore.
Questo risolve il problema dei files NUOVI ma non di quelli cancellati.
Per quelli cancellati potresti aggiungere un evento audit che monitora quali che sono gli eventi di tipo cancellazione nella directory. Poi li esporti in un file di testo che invii all'altro nas, e che poi darai in pasto al comando "rm"

Può essere fattibile?

Aggiungo: se potessi avere due serverini linux risolveresti in un baleno con glusterfs...

Ciao, il flag /mir ha questa peculiarità:

/mir Mirrors a directory tree (equivalent to /e plus /purge)

che in sintesi non è altro che l'unione di:

/e Copies subdirectories. Note that this option includes empty directories.

/purge Deletes destination files and directories that no longer exist in the source.


Quindi la replica "a specchio" con il sorgente origine che fa "da padrone" è corretta (in sintesi è una replica unidirezionale):

i)Se nella sorgente aggiungo files e creo directory esse vengono aggiunte alla destinazione
ii)Se nella destinazione cancello files essi vengono ricreati copiandoli dall'origine dal successivo robocopy
iii)Se nell'origine cancello files e/o directory la cancellazione viene correttamente replicata nella destinazione

Il mio problema è che sembra funzionare ma ha tempi biblici di ore ed ore: ho guardato un pò di log e il problema non è nella mole di dati ma sta nell'elevato numero di directory e files coinvolte.

Esempio pratico: applico la sincronizzazione a una directory che pesa 5Gb e contenente 100 files (quindi files che mediamente pesano 50Mb) e impiego X tempo, ma se provo con una directory che magari pesa meno ma hamolte più cartelle e/o files il processo di confronto richiede molto più tempo e vorrei trovare una maniera di ottimizzare il tutto.

Alfonso78
18-12-2013, 10:11
Il link è su una VPN?