Capitolo 1. Panoramica del Linux Virtual Server
Il Linux Virtual Server (LVS) è composto da un set di componenti software per il bilanciamento del carico IP attraverso un insieme di real server. Viene eseguito su di una coppia di computer configurati in modo identico: uno come router LVS attivo, e l'altro come router LVS di backup. Il router LVS attivo serve per:
- Bilanciare il carico attraverso i real server.
- Per controllare l'integrità dei servizi su ogni real server.
Il router LVS di backup controlla il router LVS attivo, e ne assume il controllo in caso di un suo fallimento.
Questo capitolo fornisce una panoramica dei componenti LVS e delle loro funzioni, e consiste nelle seguenti sezioni:
1.1. A Basic LVS Configuration
Figura 1.1, «A Basic LVS Configuration» shows a simple LVS configuration consisting of two layers. On the first layer are two LVS routers — one active and one backup. Each of the LVS routers has two network interfaces, one interface on the Internet and one on the private network, enabling them to regulate traffic between the two networks. For this example the active router is using Network Address Translation or NAT to direct traffic from the Internet to a variable number of real servers on the second layer, which in turn provide the necessary services. Therefore, the real servers in this example are connected to a dedicated private network segment and pass all public traffic back and forth through the active LVS router. To the outside world, the servers appears as one entity.
Figura 1.1. A Basic LVS Configuration
Service requests arriving at the LVS routers are addressed to a virtual IP address, or VIP. This is a publicly-routable address the administrator of the site associates with a fully-qualified domain name, such as www.example.com, and is assigned to one or more virtual servers. A virtual server is a service configured to listen on a specific virtual IP. Refer to Sezione 4.6, «VIRTUAL SERVERS» for more information on configuring a virtual server using the Piranha Configuration Tool. A VIP address migrates from one LVS router to the other during a failover, thus maintaining a presence at that IP address (also known as floating IP addresses).
È possibile eseguire l'alias degli indirizzi VIP sullo stesso dispositivo che collega il router LVS ad internet. Per esempio, se eth0 è collegato ad internet, allora sarà possibile eseguire l'alias dei server virtuali multipli su
eth0:1
. Alternativamente ogni server virtuale può essere associato con un dispositivo separato per servizio. Per esempio, il traffico HTTP può essere gestito su eth0:1
, ed il traffico FTP gestito su eth0:2
.
Only one LVS router is active at a time. The role of the active router is to redirect service requests from virtual IP addresses to the real servers. The redirection is based on one of eight supported load-balancing algorithms described further in Sezione 1.3, «Panoramica sulla schedulazione LVS».
Il router dinamico controlla dinamicamente anche lo stato generale dei servizi specifici sui real server, attraverso script send/expect semplici. Per un ausilio al rilevamento dello stato dei servizi che necessitano di dati dinamici, come ad esempio HTTP o SSL, l'amministratore potrà chiamare anche eseguibili esterni. Se un servizio su di un real server funziona incorrettamente, il router attivo sospende l'invio dei lavori al server in questione, fino a quando non verrà ripristinato un funzionamento normale.
Il router di backup esegue il ruolo di un sistema in standby. Periodicamente i router LVS scambiano messaggi heartbeat attraverso l'interfaccia pubblica esterna primaria e, in condizioni di failover, attraverso l'interfaccia privata. Se il nodo di backup non riceve un messaggio heartbeat entro un intervallo di tempo previsto, esso inizierà un processo di failover, assumendo il ruolo del router attivo. Durante il processo di failover, il router di backup assume il controllo degli indirizzi VIP serviti dal router fallito, utilizzando una tecnica conosciuta come ARP spoofing — dove il router LVS di backup si presenta come destinazione per i pacchetti IP inviati al nodo fallito. Quando il suddetto nodo ripristina il proprio servizio attivo, il nodo di backup assume il suo ruolo di hot-backup.
The simple, two-layered configuration used in Figura 1.1, «A Basic LVS Configuration» is best for serving data which does not change very frequently — such as static webpages — because the individual real servers do not automatically sync data between each node.
1.1.1. Riproduzione dati e loro condivisione tra real server
Poichè non è presente alcun componente interno a LVS per poter condividere gli stessi dati tra i real server, l'amministratore è in possesso di due opzioni:
- Sincronizzare i dati attraverso il gruppo di real server
- Aggiungere un terzo livello alla topologia per un accesso dei dati condivisi
È preferibile la prima opzione per quei server che non permettono ad un gran numero di utenti di caricare o modificare i dati sui real server. Se la configurazione permette invece ad un gran numero di utenti di modificare i dati, come ad esempio un sito web e-commerce, allora sarà preferibile aggiungere un terzo livello.
1.1.1.1. Configurazione dei real server per sincronizzare i dati
Per un amministratore sono diponibili diversi metodi per poter sincronizzare i dati in un gruppo di real server. Per esempio, è possibile implementare gli script della shell in modo tale che se un Web engineer aggiorna un apagina, la pagina stessa viene inviata simultaneamente su tutti i server. Altresì, l'amministratore del sistema può utilizzare programmi come
rsync
, per riprodurre i dati modificati attraverso tutti i nodi ad un intervallo di tempo prestabilito.
Tuttavia questo tipo di sincronizzazione dei dati non funziona in maniera ottimale, se la configurazione è sovraccarica con utenti che caricano costantemente file o che emmetono transazioni del database. Per una configurazione con un carico molto elevato, una topologia a tre livelli risulta essere la soluzione ideale.