Newsgroup: it.comp.os.linux.sys
Titolo: Rsync impazzito

Stamattina un processo rsync che doveva copiare qualcosa come 2 GB su
una linea da 100 Mbps ha praticamente ucciso la linea per due ore -
fino al momento in cui abbiamo disabilitato la porta sullo switch che
era fisicamente collegata a quel computer, nessuna macchina in quel
datacentre è stata raggiungibile.
La situazione è questa: abbiamo 3 macchine, A, B e C, residenti in tre
diversi datacentre; ognuna delle tre genera una certa quantità di dati
nel corso delle 24 ore, da 200 MB a circa 2 GB; questi dati vengono
archiviati alle 4 del mattino, e poco dopo dei cronjob li rsyncano
sulle altre due macchine. Una connessione privata congiunge il
datacentre dove vive A agli uffici dove vive B, ed un'altra va dagli
uffici di B al datacentre di C. Per andare da C ad A, in altre parole,
occorre passare per B. Lo stesso vale per l'accesso a Internet: tutto
passa per la linea da 100 Mbps verso A e da lì su una di due possibili
linee che arrivano a Internet (le persone nell'ufficio dove si trova B
utilizzano una xDSL separata per navigare e inviare/ricevere email).
A genera circa 2 GB al giorno di dati, B circa 200 MB e C circa
400-600 MB. Per gli ultimi due mesi il processo è andato avanti
regolarmente, con una sola eccezione circa tre settimane fa. Pensando
di aver sovraccaricato la rete facendo partire tutti e tre i processi
allo stesso tempo, abbiamo modificato le crontab per farli partire a
tre quarti d'ora di distanza l'uno dall'altro. Alle 5:30 A risucchia i
dati da B e C, alle 6:15 B risucchia i dati da A e C e alle 7 C
risucchia i dati da A e B. Il disastro è capitato quando C ha
cominciato a risucchiare i dati da B. Due ore dopo, non solo la linea
era completamente intasata, ma rsync aveva generato in C svariati
gigabyte di file temporanei e continuava a richiedere dati da A. Ci
tengo a ribadire che questo è successo solo due volte in circa due
mesi, e che la quantità di dati da trasferire in ambo i casi non era
maggiore degli altri giorni, nè c'erano altre differenze sulla rete o
nelle macchine stesse, che non vengono nemmeno toccate da oltre due
settimane.
La riga di comando, incidentalmente, è la più semplice possibile
rsync -az -e ssh <macchinaA>:<dir> <localdir>
rsync -az -e ssh <macchinaB>:<dir> <localdir>
rsync -az -e ssh <macchinaA>:<altradir> <altralocaldir>
rsync -az -e ssh <macchinaB>:<altradir> <altralocaldir>
l'autenticazione avviene tramite chiave ssh, e al momento <dir> è
vuota su tutte le macchine, solo <altradir> contiene dati da
sincronizzare
Qualcuno ha qualche idea di cosa sia successo a rsync, o se sia un bug
noto, o insomma qualunque suggerimento su come prevenire o almeno
spiegare quello che è successo?
Grazie in anticipo
Eugenio

 spiegare quello che � successo?
Nessuna idea in particolare, ma sarebbe da verificare che
versione di "rsync" gira, se sei vecchia o nuovo, se vi
sono bug gia` discussi (i.e. con un motore di ricerca).
bye,
-- 
piergiorgio

 sono bug gia` discussi (i.e. con un motore di ricerca).
Um, scusa, hai ragione, avrei dovuto specificarlo - rsync è la
versione che viene con CentOS 5.0/x86_64, 2.6.8-3.1. Credo esista la
versione 2.6.9, ma per quanto riguarda CentOS mi pare che 2.6.8 sia
ancora quella corrente. Non ho trovato tracce di comportamenti simili
googlando; ho trovato le release notes della versione 2.6.9, che
elencano tutti i bug fix da 2.6.8, e ancora non si menziona niente del
genere. Il problema è che proprio non riesco a riprodurre la
condizione, ma essendo successo due volte devo supporre che continuerà
a capitare ad intervalli irregolari.

spiegare quello che � successo?
Non so che tipo di dati tu tratti, ma provo a sparare una cosa fin troppo 
ovvia.
Magari non fa al caso tuo.
Ma se si tratta di semplici cartelle, ed un utente SPOSTA una cartella,
rsync la considera un operazione di cancellazione + nuova copia.
--fuzzy & co. dovrebbero aiutare in quel caso.
Poi ricordavo di una patch che faceva lo stesso con il relativo checksum..
Ciao,
ScriptJus 

 a capitare ad intervalli irregolari.
ti dirò, ho avuto lo stesso problema 2 volte ed ho messo la seconda 
macchina in down. mi sono liquidato la cosa come "sarà un problema sulla 
scheda di rete", del resto non vedevo altra soluzione visto che 
l'interfaccia spara pacchetti fino a saturare tutto il dominio di 
broadcast. ho preferito spegnere la macchina piuttosto che vivere con 
l'ansia di scappare a risolvere nuovamente quel problema.
...però ora che me lo stai dicendo... ci sto ripensando sul guasto 
hardware... anche perchè la stessa macchina, cambiato l'hd, ora fa altro 
e non ha mai dato problemi...
rsync version 3.0.2-15.1

 broadcast.
Che accidenti di pacchetti spara, esattamente?

whiplash ha scritto:

non avevo molta voglia di approfondire con una DMZ in ginocchio :D
di sicuro lo switch pullava all'impazzata. staccato il server tutto ha 
ripreso a funzionare. d'istinto mi dissi "n'altra scheda di rete andata" 
ma ora a sentire quest'altro caso...

 rsync la considera un operazione di cancellazione + nuova copia.
Ti ringrazio ma non fa, appunto, al caso mio - si tratta di dati
statici che un processo salva intorno a mezzanotte (ho controllato i
tempi - non c'era nulla di attivo in nessuno dei due casi "disastrosi"
quando è partito il processo di rsync) e nulla viene toccato fino alla
mezzanotte circa del giorno successivo.
Eugenio