Scenari di Load Balancing
Esistono molti metodi per fare load balancing: alcuni sono semplici e grossolani, altri usano software dedicati per monitoring e failure management.
DNS round robin
E' uno dei metodi più semplici. Il bilanciamento viene fatto assegnando diversi indirizzi allo stesso hostname. Non gestisce guasti e, anche con script di monitoraggio/aggiornamento DNS e TTL bassi non risulta essere una soluzione ideale.
Round robin tramite iptables
Esistono diversi metodi: prevedono la gestione del reindirizzamento (tipicamente tramite PREROUTING) dei pacchetti in entrata sull'IP del firewall / balancer verso diversi server reali.
Per gestire l'alternanza si può usare:
- match nth, con alternanza round robin
- match random, con alternanza random
Per gestire il controllo dei server e togliere dal pool server guasti si può abbinare il match condition per una verifica su file che possono essere gestiti da script di monitoraggio.
Linux Virtual Server
Una soluzione strutturata, più complessa ma più affidabile perchè può essere affiancata da tool di monitoring e gestione.
Richiede: Patch LVS nel kernel (ormai ufficiale) e strumenti di controllo e gestione dei servizi
Il Load Balancer può a sua volta essere ridondato con Keepalived, Ultra Monkey, Piranha, Heartbeat ecc.
LVS inoltre include progetti figli interessanti (e sperimentali):
TCPHA - Supporto di strutture con triangolazione del traffico (Internet->Directory->RealServer->Internet) senza gestire i pacchetti di ritorno dai server tramite il Balancer
KTCPVS (Kernel TCP Virtual Server) implementa load balancing a livello applicativo.