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 
				




 
				

