Ciao Ragazzi,
oggi parliamo di HA (High Availability) e di failover…in un’unica parola: CLUSTER!
Quello che vi mostro è un semplice cluster tra due server Debian 7, la verifica del funzionamento sarà fatta tramite Apache (con 2 pagine web che mi diranno su quale dei due server mi trovo)
Per prima cosa analizziamo lo scenario:

Per realizzare il cluster di 2 Debian, ho deciso di utilizzare CARP che viene fornito in maniera nativa nei repository.
SERVER 1 (Master)
Per prima cosa installiamo carp:
razorblade@Server1:~$ apt-get install ucarpAdesso editiamo il file delle interfacce ETH per aggiungere la VIP:
razorblade@Server1:~$ vi /etc/network/interfaces# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.200
netmask 255.255.255.0
gateway 192.168.1.1
#######################
# ucarp configuration
#######################
ucarp-vid 1
ucarp-vip 192.168.1.250
ucarp-password mypass32
ucarp-advskew 1
ucarp-advbase 1
ucarp-master yes
# The carp network interface, on top of eth0
iface eth0:ucarp inet static
address 192.168.1.250
netmask 255.255.255.0Riavviamo il servizio di networking:
razorblade@Server1:~$ vi /etc/init.d/networking restartSERVER 2 (Slave)
Per prima cosa installiamo carp:
razorblade@Server2:~$ apt-get install ucarpAdesso editiamo il file delle interfacce ETH per aggiungere la VIP:
razorblade@Server2:~$ /etc/network/interfaces# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.201
netmask 255.255.255.0
gateway 192.168.1.1
#######################
# ucarp configuration
#######################
ucarp-vid 1
ucarp-vip 192.168.1.250
ucarp-password mypass32
ucarp-advskew 1
ucarp-advbase 1
ucarp-master no
# The carp network interface, on top of eth0
iface eth0:ucarp inet static
address 192.168.1.250
netmask 255.255.255.0Riavviamo il servizio di networking:
razorblade@Server2:~$ /etc/init.d/networking restartFatto questo possiamo subito provare se funziona, effettuando un semplice ping all’indirizzo 192.168.1.250 da un PC presente sulla stessa sottorete.
Fatto questo creiamo due pagine di test su entrambi i server che ci fanno capire se siamo sul server1 o sul server2.
Raggiungendo l’indirizzo: http://192.168.1.250 il sistema ci mostra la pagina index del Server1 che abbiamo detto essere il master:

Se adesso spengo il server1 simulando un crash/errore/power loss della macchina, il server web continua a funzionare perchè il server2 diventa in automatico il master:

Semplice, veloce, ma davvero efficace!
E’ possibile personalizzare le operazioni da eseguire quando l’interfaccia eth del master/slave va giù/su tramite l’opzione da passare nel file etc/network/interfaces
ucarp-downscript /usr/local/bin/vip-down
ucarp-upscript /usr/local/bin/vip-upEnjoy!
paolodaniele.it – linux & networking







