[MontelLUG] Ottimizzare/velocizzare tar in rete

Samuele samuele.zanin a tiscali.it
Gio 15 Set 2011 21:55:02 CEST


Buonasera.
Posto di avere una macchina che fa backup tramite rnsapshot (qundi una 
serie di file hardlinkati assieme), tengo un backup giornaliero per 90 
giorni + 53 settimanali.
Posto che questo backup è di circa 350 GB a crescere.

Devo copiare questi 350 GB ogni giorno su un disco usb (faccio un tar 
per preservare gli hard link).
La complicazione è posta dal fatto (per una serie di motivi che non sto 
a spiegare) che il disco usb non è attaccato alla macchina che su cui 
sono i dati, ma ad un'altra macchina più user friendly per l'utonto di 
turno ed il disco è condiviso via samba.
Le due macchine sono collegate tramite una connessione ethernet a 100 MB 
(effettivi 50).

Devo trovare il modo di far transitare questi 350 GB in un tempo 
all'incirca di 6/8 ore.
L'utilizzo della copia su disco usb sarebbe solo in caso di crash della 
macchina che fa i backup ed andrebbe ripristinato completamente tutto 
l'archivio.

L'unico modo per far viaggiare quei dati su quella connessione in quel 
tempo è la compressione.
I dati sono un misto, una stima approssimativa, dava un rapporto di 
compressione massimo di 1 a 4.
Il primo tentativo è stato di tar + bzip2.
Velcità di circa mezzo mega al secondo.
Secondo tentativo tramite tar + gzip con livello di compressione 3. 
Sembrerebbe un buon compromesso, ogni tanto saturavo la connessione di 
rete, ma spesso, specie con file non comprimibili, tar + gzip andavano 
alla velocità di 4 MB/s, mi è capitato di vedere anche che in alcuni 
casi si saturava il disco in lettura (presumo a causa della presenza di 
file piccoli (un fottio di operazioni di i/o, ma transfer rate di pochi 
MB)).
Domani mattina saprò quanto ci sarà stato a fare la copia in queste 
condizioni (stasera dopo 9 ore la copia era ancora in alto mare).

Possibili soluzioni:
1) Splitto il job di backup in più parti (attualmente le directory di 
top level sono da 10 GB, 100 GB e 250 GB) e li lancio in contemporanea, 
riuscendo a sfruttare i 2 core della macchina.

2) Mi ispirava il comando buffer, impostandogli ad esempio 1 GB di 
cache, dovrei riuscire ad evitare che tar + gzip e copia in rete si 
aspettino a vicenda, facendoli lavorare il più possibile in parallelo ed 
al massimo della velocità (non l'ho ancora provato).

3) La soluzione ottimale sarebbe (se funzionasse, ma l'ho provato a casa 
per altri motivi e non era affidabile) fusecompress. Questo memorizza i 
file già compressi, quindi una volta fatto girare rsnapshot per la prima 
volta, le volte successive la cosa sarebbe molto veloce.

Qualche altra ipotesi?
Ah, fare un rsync della directory di backup sul disco usb non è 
fattibile in quanto il disco di destinazione DEVO tenerlo in ntfs dove 
gli hard link non è che funzionino benissimo.






More information about the montellug mailing list