Cerca


stampa pdf
File server + Cluster (gruppo di servers)

Introduzione
Voi disponete di uno spazio disco protetto (RAID) su di un server di salvataggio dati(file server).Condividete questo spazio tra più servers dedicati (via NFS).OVH vi attribuisce un nuovo indirizzo IP (IP di ripartizione di carico, "balanced IP").Per finire, OVH ha configurato i Vostri servers al fine che possano accedere allo spazio protetto e ricevere il traffico a partire dalla ripartizione di carico degli indirizzi IP.

Come sono modificati i Vostri servers
Se volete utilizzare direttamente il servizio Cluster senza studiarne il suo funzionamento in modo dettagliato, potete passare alla sezione Primi passi con il Vostro Cluster.

1. Configurazione dell'IP di ripartizione di carico
Perchè il server accetti i pacchetti a partire dall'IP di ripartizione di carico, è stata aggiunta un'interfaccia di rete virtuale in lo:0:
lo:0 Link encap:Local Loopback
inet addr:213.251.xxx.xxx Mask:255.255.255.255
UP LOOPBACK RUNNING MTU:16436 Metric:1

Il routing è stato anche modificato a livello server (aggiunta della tabella 201 dentro iproute2).

2. Configurazione di una rete privata per accesso al file server
L'accesso al file server si fa tramite una rete privata in 192.168.xxx.xxx. Ciascun server ha il proprio IP privato configurato come eth0:0:
eth0:0 Link encap:Ethernet HWaddr 00:E0:4C:82:32:3F
inet addr:192.168.xxx.xxx Bcast:192.168.xxx.255 Mask:255.255.254.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:19 Base address:0xc000

3. Montaggio della partizione protetta
Lo spazio protetto è montato sui servers via NFS in /home/ha. L'archivio /etc/fstab comporta una nuova linea :
192.168.xxx.xxx:/vol0/Z-xxx-xxx /home/ha nfs rw 0 0


4. Installazione della sonda
Al fine di assicurare il principio di "Alta disponibilità", il sistema di ripartizione di carico deve saper ritirare una macchina dal cluster quando questa diventa indisponibile.
Per questo, utilizziamo un démon su ciascun server (OCO) che verifica se il server è 'idoneo' a rispondere alle richieste.Per default, OCO verifica solo se la porta 80 risponde alle richieste HTTP.Voi potete facilmente aggiungere gli scripts di cui avete bisogno per effettuare delle verifiche più particolari (verificare che PHP risponda correttamente, verificare l'FTP, etc.).

Funzionamento di OCO
OCO è installato dentro /usr/local/oco, il démon è lanciato automaticamente all'avvio del server da /etc/init.d/oco.
Gli scripts di verifica sono nelle directories
/usr/local/oco/60sec ou /usr/local/oco/120sec
oppure
/usr/local/oco/300sec.

Sono eseguiti automaticamente in funzione alla frequenza di ciascuna directory.Ogni script genera un file nella directory /usr/local/oco/result.
Il contenuto di questo file è un numero:
  • 200 se tutto va bene,
  • 300 o più, se ci sono dei difetti.

Occorre che almeno un file contenga 200 nella directory /usr/local/oco/result affinchè il server sia aggiunto al cluster.Se un file o più contengono 300 (o superiore a 300), allora il server viene ritirato dal cluster. Se almeno un file ha un data di modifica superiore a 15 minuti, allora il server viene ritirato dal cluster.

Avvertimento :
Se modificate gli scripts di verifica forniti con OCO, cambiate i nomi degli scripts, poichè le vostre modifiche verrebbero sovrascritte in caso di un aggiornamento di OCO.

5. Flussi rete da autorizzare
Se il vostro server è dotato di firewall, dovrete autorizzare i flussi seguenti sul vostro server :
  • comunicazione con la ripartitura di carico (OCO) : autorizzare i flussi da xx.yy.zz.240 e xx.yy.zz.241 e xx.yy.zz.242 verso la porta 79 del vostro server
(essendo xx.yy.zz i primi 3 ottetti del vostro IP principale). Per esempio:
iptables -A INPUT -s 213.251.164.240 -i eth0 -p tcp -m tcp --dport 79 -j ACCEPT
iptables -A INPUT -s 213.251.164.241 -i eth0 -p tcp -m tcp --dport 79 -j ACCEPT
iptables -A INPUT -s 213.251.164.242 -i eth0 -p tcp -m tcp --dport 79 -j ACCEPT


  • comunicazioni con il file server : dovete autorizzare il traffico NFS tra il vostro server e il file server (troverete l' IP del file server nel file /etc/fstab, sarà del tipo 192.168.1.1).Per esempio :
iptables -A INPUT -s 192.168.59.2 -i eth0 -j ACCEPT


Primi passi con il vostro cluster
La prima cosa che desidererete fare con il vostro cluster è certamente la ripartizione delle richieste HTTP.
1. Utilizzo del file server
Affinchè la ripartizione del carico funzioni il meglio possibile, dovrete avere le stesse pagine e gli stessi scripts su tutti i servers.Per questo, è meglio utilizzare lo spazio di archiviazione esterno che è montato dentro /home/ha.
Copiate i vostri siti dentro /home/ha/xxxxx ; saranno a questo punto visibili da ciascun server.Se utilizzate dei CGI in suexec oppure suphp, dovete verificare che gli utenti e le uid siano identiche su ciascun server (ed eventualmente modificare /etc/passwd ).
In fine, si deve modificare il file di configurazione apache httpd.conf al fine di indicare il corretto percorso d'accesso (/home/ha/yyyy) a 'DocumentRoot'.

2. Ripartizione delle richieste HTTP
Prendiamo per esempio, un server dedicato del quale l' IP sia 213.186.33.2 e l'IP di load-balancing attribuito sia 213.251.131.8.
Bisogna modificare il file di configurazione apache httpd.conf :
  • aggiungere 'NameVirtualHost' 213.251.131.8 sotto alla linea 'NameVirtualHost' 213.186.33.2,
  • modificare i 'VirtualHost' in maniera tale che Apache risponda a tutte le richieste destinate a tutti gli indirizzi IP del server ; per farlo, sostituire <'VirtualHost' 213.186.33.2> con <'VirtualHost' 213.186.33.2 213.251.131.8>,
  • In fine, utilizzare l'IP del load-balancing al posto dell'IP del server nella configurazione DNS dei vostri domini; per esempio :
www.mondomaine.com A 213.186.33.2
diverrà
www.mondomaine.com A 213.251.131.8


3. Testare la ripartizione del carico prima di modificare i records DNS e/o durante la propagazione
Sulla vostra postazione CLIENT (browser web), potete temporaneamente fissare la risoluzione di un dominio verso l'IP di load-balancing:
  • se siete sotto Linux, aggiungete la linea seguente al file /etc/hosts:
213.251.131.8 www.mondomaine.com

  • sotto Windows, editate il file corrispondente alla vostra versione :
Windows 95/98/Me : c:windowshosts
Windows NT/2000/XP Pro : c:winntsystem32driversetchosts
Windows XP Home : c:windowssystem32driversetchosts
e aggiungete la linea :
213.251.131.8 www.mondomaine.com


Limitazioni
E' tecnicamente possibile ripartire i pacchetti destinati a tutte le porte (HTTP:80, SMTP:25, STREAMING, etc).Tuttavia, è impossibile utilizzare questa soluzione per MySQL (e certamente per la maggioranza dei databases). Questo limite è intrinseco ai databases; è necessario utilizzare le soluzioni proposte da chi li ha concepiti.