La funzione di affinità di Load Balancer mappa un indirizzo IP del
client a un server di back-end. L'affinità viene stabilita una volta che l'indirizzo IP di destinazione di un pacchetto corrisponde al cluster, la porta di destinazione corrisponde alla porta di Load Balancer e l'indirizzo IP di origine corrisponde.
Informazioni su questa attività
Una volta stabilita l'affinità, i pacchetti successivi vengono inviati allo stesso server di back-end. Quando l'affinità viene interrotta, a causa dello spegnimento o rimozione di un server, si interrompe l'affinità e quindi tutte le connessioni verso tale server. Inoltre, non saranno presenti informazioni sulla connessione riportate sui client della riga comandi o della GUI. Verrà utilizzato soltanto il numero di record di affinità attivi.
Questo approccio ha il vantaggio di fornire una maggiore affinità e risulta più efficiente per il Load Balancer. Il metodo di affinità utilizzato diminuisce l'utilizzo della CPU e della memoria rispetto all'inoltro della connessione.
Prevenzione dei problemi: poiché
la rimozione di un record di affinità interrompe le connessioni, quando si
esegue la migrazione da Load Balancer per IPv4 a Load Balancer per IPv4 ed
IPv6, il valore massimo di staletimeout impostato deve essere utilizzato come nuovo
valore di intervallo fisso per Load Balancer IPv4 e IPv6.
gotcha
scegliere un algoritmo di selezione in base a come si desidera che Load Balancer instradi le connessioni. È scegliere i seguenti algoritmi di selezione:
- affinity
- Specifica che quando arriva il pacchetto successivo dallo stesso client del precedente, la richiesta verrà indirizzata verso lo stesso server. Nel corso del tempo, il client termina di inviare pacchetti e il record di
affinità non sarà più necessario.
Ciascun record di affinità ha una durata di vita per il valore di intervallo fisso, che viene calcolato in secondi:
- Se si riceve una connessione in un periodo di tempo inferiore a quello del valore dell'intervallo fisso, il record di affinità risulterà valido e la richiesta sarà inviata allo stesso server.
- Se si riceve una connessione in un periodo di tempo superiore a quello del valore dell'intervallo fisso, il record verrà eliminato. Load Balancer selezionerà un nuovo server per una connessione ricevuta dopo la scadenza del valore dell'intervallo fisso.
È possibile utilizzare il comando quiesce per mettere il server fuori linea.
Il server non sarà reso inattivo fino a che non viene raggiunto il valore staletimeout.
Questo è un esempio di comando quiesce:dscontrol manager quiesce server
- connection
- Specifica riceve una nuova connessione TCP da un client, Load Balancer sceglie il server in quel momento e gli inoltra i pacchetti. Se un'altra connessione viene dallo stesso client, Load Balancere la considera come una nuova
connessione non correlata e seleziona di nuovo il server più adatto in quel momento.
- connection+affinity
- Specifica che quando un pacchetto arriva da una connessione esistente, viene inoltrato verso il server selezionato per tale connessione.
Se il pacchetto non appartiene ad una connessione esistente, ma proviene dallo stesso client, Load Balancer seleziona lo stesso server scelto per la connessione precedente.
Il comportamento dell'algoritmo connection+affinity è simile a quello affinity, ma il valore di timeout per l'affinity viene calcolato dall'inizio di ogni connessione. Ciò significa che se il tempo intercorso tra l'avvio di due connessioni provenienti dallo stesso client è minore del valore dell'intervallo fisso, entrambe le connessioni verranno inoltrate verso lo stesso server.