Cerca nel blog

giovedì 7 luglio 2011

Network Load Balancing: come funziona il criterio IP-Hash

La policy di Load Balancing “Route based on IP-Hash”, selezionabile nella scheda “NIC Teaming” a livello di vSwicth (o Portgroup) permette, di distribuire il traffico di una VM o di una porta VMkernel tra tutte le VMNIC appartenenti allo switch virtuale. Affinché questo metodo possa funzionare è necessario che lo switch fisico sia configurato per aggregare (802.3ad) le porte utilizzate nello switch virtuale.

Network Load Balancing “Route based on IP-Hash”

Il bilanciamento viene eseguito per il traffico in uscita e IP-Hash stabilisce un connessione, impegnando una NIC fisica differente, per ogni sessione “IP-sorgente – IP destinazione”; quindi se una VM con un IP comunica con 2 indirizzi IP differenti (esterni ad ESX) utilizzerebbe 2 NIC fisiche distinte.

Limiti di questo metodo:



  • ogni sessione utilizzarà al massimo alla velocità della NIC fisica su cui si è attesta;


  • il calcolo della scelta della NIC fisica viene fatto per ogni connessione, quindi se una VM comunica sempre o molto spesso solo con un IP, ESX è impegnato per fare un calcolo che darà sempre lo stesso risultato;


  • il sistema non tiene conto del carico di lavoro della NIC quindi in un ambiente ricco di VM è possibile che il calcolo restituisca una NIC fisica già fortemente utilizzata.


Per quanto riguarda il calcolo eseguito per selezionare la NIC fisica è necessario convertire in esadecimale i 2 indirizzi IP della sessione e con una calcolatrice scientifica eseguire lo XOR. Esempio:



  • IP sorgente 192.168.100.134, che in esadecimale diventa C0A86486


  • IP destinazione 192.168.100.70, che in esadecimale diventa C0A86446


  • C0A86486 XOR C0A86446 = C0


Successivamente è necessario calcolare il resto (MOD) dividendo il risultato dell’operazione XOR con il numero di VMNIC associate allo switch virtuale. Quindi se il vSwitch avesse 2 NIC si ottiene:



  • C0 MOD 2 = 0


Per maggiori infoirmazioni è possibile consultare:

Nessun commento: