Newsgroup: it.comp.os.linux.sys
Titolo: Bonding performance

Ho due macchine ognuna con una scheda dual gigabit della Broadcom. Le 
macchine sono collegate con cavi UTP diretti (no swicth) e le schede di 
rete sono affasciate in bonding (è la rete privata di un cluster heartbeat).
Ho fatto un paio di prove con netcat usando i vari algoritmi di bonding 
disponibili per verificare le performance:
balance-rr: ~68 MB/s
802.3ad: ~ 73 MB/s
Non mi sembravano valori malvagi, il problema è che staccando un cavo di 
rete le performance sono assolutamente identiche...
In pratica usando il bonding non ho il minimo aumento di prestazioni, 
forse il collo di bottiglia è da qualche altra parte, oppure sbglio 
qualcosa.
Per verificare la velocità ho usato:
node1# cat /dev/zero | pv -r -b -i5 | nc -u 10.0.0.2 12345
node2# nc -l -u 10.0.0.2 12345

 802.3ad: ~ 73 MB/s
Non so che algoritmo usi balance-rr ma 802.3ad bilancia in base al
mac-address (sorgente,destinazione, o lo xor fra i due); quindi il
traffico del tuo test passa tutto dalla stessa scheda. In ogni caso, da
standard i protocolli di link-aggregation dovrebbero evitare il fenomeno
di frame-reordering quindi va da se che una connessione implica una
scheda utilizzata.


 scheda utilizzata
Ok, in pratica con un collegamento diretto non c'e' load-balancing ma se 
non altro funziona il failover.

 
Supponi che le due macchine abbiano due schede di rete e chiamiamole A e
B; supponi inoltre che la scheda A del nodo 1 vada sulla scheda A del
nodo due. Se si rompe la scheda A del nodo 1 e la scheda B del nodo 2
hai perso l'heartbeat.
Ciao,
Alberto

 hai perso l'heartbeat.
Se poi supponiamo anche che un terremoto abbia distrutto il tuo sito
principale, l'hot site sia andato a fuoco e il cold site sia stato vittima
di un'alluvione, probabilmente si può asserire che nessun sistema
informatico possa garantirti l'alta disponibilità...
-- 
Flavio Visentin
Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.

 
Io non so in quali ambienti lavori e a dire il vero non mi interessa, ad
ogni modo a me non è mai capitato di mettere su un cluster per il sito
web delle suore.
E quando un cliente spende migliaia di euro per l'alta affidabilità non
te lo sogni nemmeno di fare heartbeat in quel modo lì; anzi, l'heartbeat
viene fatto con un bonding che ha un path su uno switch ed un altro su
un altro switch. Stesso discorso per i path in fibra, non solo saranno
(almeno) due, ma andranno anche su due switch FC che afferiscono a
fabric distinte.
Senza contare che, proprio nella definizione di HA è insito il fatto che
ogni sottosistema che vi partecipi deve poter far fronte ad un singolo
fault senza che l'operatività dell'infrastruttura sia in alcun modo
compromessa.

 hai perso l'heartbeat.
Un evento la cui probabilità è decisamente elevata, nevvero?

>> hai perso l'heartbeat.
quindi devo dedurre che per te se si rompono DUE schede si tratta di un
SINGOLO fault... probabilmente abbiamo definizioni diverse di singolo.


 SINGOLO fault... probabilmente abbiamo definizioni diverse di singolo.
2 != 1
:-)

 un altro switch. 
Scusa eh, seguendo il tuo ragionamento se si rompono TUTTI e DUE gli 
switch sei a piedi lo stesso...

 qualcosa.
Sì, sbagli nell'aspettarti di default che il bonding ti consenta un
aumento di throughput perchè non è vero ;^)
L'eventuale guadagno ottenibile dal bonding dipende dalla politica che
usi e dalla topologia che hai a disposizione. Ovviamente, se usi
politiche che garantiscono solo failover (come il round robin) hai
solo una scheda per volta che lavora quindi in effetti non c'e' nè ci
può essere differenza prestazionale rispetto alla singola interfaccia.
Altre politiche effettuano il load balancing sulla base dei client,
quindi avrai vantaggi solo se hai più di un client (o addirittura più
di una subnet) che ti possono saturare più di un link. In altri casi,
c'e' bisogno di fare trunking sulle porte dello switch a monte del
server. Insomma, qui non c'e' lo spazio di coprire tutte le
eventualità, ma spero di essermi spiegato ;^)
bye!

 [...]
Fai un rapido conto: supponi che una scheda si sia rotta; se se ne rompe
un'altra, nel caso dei cavi crossover hai il 66% di probabilità di
perdere l'heartbeat, nel caso degli switch il 33%.
E qui c'entra poco la probabilità dell'evento in se: il punto è che hai
erroneamente introdotto un vincolo strutturale che indebolisce la
dependability dell'intera infrastruttura.

Cristian "sengo" Mammoli ha scritto:

Cosa c'entra? Anche se prende fuoco lo storage. Allora non ridondiamo
niente; allora non mettiamo in piedi i cluster.
La differenza è che nel caso dei cavi sei stato tu ad introdurre un
ulteriore punto critico inserendo una interdipendenza strutturale che
non dovrebbe esserci.

 Un evento la cui probabilità è decisamente elevata, nevvero?
E' assolutamente irrilevante; è invece altamente probabile che un intero
 CED si allaghi, bruci, venga distrutto da un meteorite? Eppure le
aziende mediamente grandi spendono spesso fior di milioni (di euro) per
avere dei siti di DR. Sono pazzi? No non sono pazzi; si fanno
semplicemente le seguenti domande: quanto spendo se tutta o buona parte
dell'infrastruttura informatica rimane ferma?. Spendo X; bene e quanto
spendo a fare un progetto per l'HA o il DR? Spendo Y.
Per fare la scelta giusta basta paragonare questi due costi.

 dependability dell'intera infrastruttura.
Non so dove tu veda vincoli strutturali, ma a giudicare dal modo in cui
calcoli le probabilità dei guasti non penso di volerlo sapere :)


 Per fare la scelta giusta basta paragonare questi due costi.
No, non basta... è una semplificazione inaccettabile.


 
Vedi sopra; sia per l'atteggiamento da docente che per l'esempio sui
power supply.
Ad ogni modo, ripensandoci credo tu abbia ragione; direi di interrompere
questo thread, sta diventando sterile e faticoso.
Saluti,
Alberto

 avere dei siti di DR.
Ti rivelerò un segreto: chi si dota di un DR geografico di quelli che
costano *milioni* lo fa soprattutto perchè obbligato normativamente.
(Basilea 2 anyone?)

 contemporaneamente.
Quoto, in tutto e per tutto.
In 5 anni (nel frattempo mi tocco :-) ) su circa 30-40 server
da me gestiti ho visto rompersi di tutto, tranne che le schede di rete.
Non mi si è mai rotta una singola ethernet.
(ecco, adesso l'ho detto e mi si spacca tutto,... al fuoco al fuoco !!)

 questo thread, sta diventando sterile e faticoso.
OK :)
