Capitolo 9. Panoramica del Server Virtuale di Linux

Il clustering LVS di Red Hat Enterprise Linux usa un dispositivo Linux chiamato router attivo per inviare le richieste da internet ad un gruppo di server. Per fare questo, i cluster LVS sono costituiti da due tipi di dispositivi di base — il router LVS (uno attivo e uno di backup) e un gruppo di server reali, i quali forniscono i servizi critici.

Il router attivo ha due funzioni nel cluster:

La funzione del router di backup é di controllare il router attivo e di assumerne il suo ruolo in caso di presenza di un errore.

9.1. Configurazione LVS di base

Figura 9-1 mostra un semplice cluster LVS formato da due livelli. Sul primo ci sono due router LVS — uno attivo e uno di backup. Ogni router LVS ha due interfaccie di rete, una su internet e una sulla rete privata, abilitandole ad un traffico regolare tra le due reti. In questo esempio, il router attivo stá usando una Network Address Translation o NAT per direzionare il traffico da internet ad un numero variabile di server reali sul secondo livello, i quali a turno forniscono i servizi essenziali. Quindi, i server reali sono collegati, in questo esempio, ad un segmento di rete privato e passano tutto il traffico pubblico, avanti ed indietro attraverso il router LVS attivo. Al mondo esterno, un gruppo di server appare come una unica identitá.

Figura 9-1. Configurazione LVS di base

Le richieste del servizio che arrivano al cluster LVS, vengono indirizzate ad un indirizzo IP virtuale o VIP. Esso é un indirizzo publicly-routable che l'amministratore del sito, associa ad un nome del dominio qualificato, come www.example.com, il quale é assegnato ad uno o piú server virtuali [1]. Nota bene che un indirizzo VIP, migrerá da un router LVS ad un altro durante la procedura di failover, mantenendo cosí una presenza su quell'indirizzo IP, considerati anche indirizzi IP mobili o "floating".

Gli indirizzi VIP possono essere pseudonimo dello stesso dispositivo il quale collega il router LVS ad internet. Per esempio, se eth0 é collegato ad internet, i server virtuali multipli possono essere pseudonimi di eth0:1. Alternativamente, ogni server virtuale, puó essere associato ad un dispositivo separato per servizio. Per esempio, il traffico HTTP, puó essere gestito su eth0:1, ed il traffico FTP puó essere gestito su eth0:2.

Un solo router LVS per volta é attivo. La funzione del router attivo é quella di ridirezionare le richieste di servizio da un indirizzo IP virtuale ai server reali. La ridirezione é basata su uno degli otto algoritmi di bilanciamento del carico supportati e descritti nella Sezione 9.3.

Il router attivo controlla dinamicamente lo stato di salute generale dei servizi specifici sui server reali attraverso degli script invio/ricezione. Per individuare lo stato dei servizi che richiedono dati dinamici, come HTTPS o SSL, l'amministartore puó anche chiamare dei programmi eseguibili esterni. Se un servizio su di un server reale presenta un errore, il router attivo termina l'invio dei lavori al suddetto server, fino a quando lo stesso non ripristina le sue normali funzioni.

Il ruolo del router di backup é quello di un sistema standby. Periodicamente, i router LVS scambiano messaggi heartbeat tramite l'interfaccia pubblica esterna primaria, e in una situazione di failover attraverso l'interfaccia privata. Se il nodo di backup non riceve il messaggio heartbeat dopo un certo intervallo di tempo, esso inizia una procedura di failover assumendo cosí il ruolo di router attivo. Durante la procedura di failover, il router di backup prende a carico gli indirizzi VIP dal router che presenta l'errore, usando una tecnica nota come ARP spoofing — dove il router LVS di backup si presenta come destinatario dei pacchetti IP indirizzati al nodo che presenta un errore. Quando il suddetto nodo ripristina il suo servizio, il nodo di backup assume il suo ruolo di hot-backup.

Il tipo di configurazione a due livelli usato in Figura 9-1 é la migliore per i cluster che hanno un servizio dati che non cambia molto frequentemente — come ad esempio le pagine Web statiche — questo perché i server reali individuali non sincronizzano automoticamente i dati tra ogni nodo.

9.1.1. Duplicazione e condivisione dati tra i Server Reali

A causa della non esistenza di un componente "built-in" nel clustering LVS, per poter condividere gli stessi dati tra i server reali l'amministratore ha due opzioni di base:

  • Sincronizzare i dati attraverso il gruppo dei server reali

  • Aggiungere un terzo livello alla topologia, per l'accesso ai dati condivisi

La prima opzione é la migliore per i server che non permettono ad un ampio numero di utenti di caricare o cambiare i dati sui server reali. Se invece il cluster permette ad un ampio numero di utenti di modificare i dati, come ad esempio un sito web e-commerce, é preferibile aggiungere un terzo livello.

9.1.1.1. Configurazione dei Server Reali per la Sincronizzazione dei Dati

Ci sono diversi modi per un amministratore di scegliere come sincronizzare i dati attraverso un gruppo di server reali. Per esempio, gli sript della shell possono essere usati in modo tale che se un ingegnere Web aggiorna una pagina, la stessa viene inviata a tutti i server simultaneamente. Ed anche, l'amministartore del cluster puó usare alcuni programmi, come rsync, per replicare i dati che sono stati cambiati, attraverso tutti i nodi ad un intervallo determinato.

Comunque, questo tipo di sincronizzazione dei dati non funziona bene se il cluster é sovraccarico di utenti, che caricano costantemente i file o cheemettono delle transazioni del database. Per un cluster con carichi alti, una tipologia a tre-file é la migliore soluzione.

Note

[1]

Un server virtuale é un servizio configurato per ascoltare su di uno specifico IP virtuale. Controllare la Sezione 12.6 per maggiori informazioni sulla configurazione di un server virtuale usando Tool di configurazione di Piranha.