Servidor de Alta Dispoñibilidade NFS de Dous Nodos
Introducción
Crearemos un servicio NFS de alta dispoñibilidade con dous nodos: gandalf.iesrodeira.com e earendil.iesrodeira.com. O espacio en disco para compartir atópase nun sistema DRBD activo/pasivo, no que o nodo activo ofrecerá o servicio NFS. En caso de caída do nodo activo, deberá activarse o nodo pasivo.
Para facer eso, utilizaremos unha IP virtual que inicialmente estará asignada ao nodo activo e a que resolverá o nodo nfs.iesrodeira.com. Esa IP (172.20.1.20) será asignda automáticamente ao nodo activo, de xeito que os clientes montarán o recurso empregando urls do tipo nfs:/recursonfs.
A monitorizacion, activación e parada de servicios implicados se fará mediante un cluster de dous nodos basado en heartbeat.
Configuración
En primeiro lugar, procederemos a instalación de heartbeat:
apt-get install heartbeat
A configuración realízase en tres ficheiros: /etc/ha.d/ha.cf, /etc/ha.d/authkeys e /etc/ha.d/haresources.
- ha.cf (igual nos dous nodos)
autojoin none
# Give cluster 30 seconds to start
initdead 30
# Keep alive packets every 1 second
keepalive 2
# Misc settings
traditional_compression off
deadtime 20
deadping 22
warntime 5
# Nodes in cluster
node gandalf.iesrodeira.com
node earendil.iesrodeira.com
# Use ipmi to check power status and reboot nodes
# Non dispoñemos de STONITH para asegurarnos que o 'nodo desconectado' está apagado antes de tomar os seus recursos.
#stonith_host nfs01 external/ipmi nfs02 192.168.3.33 ADMIN somepwd lan
#stonith_host nfs02 external/ipmi nfs01 192.168.3.34 ADMIN somepwd lan
# Use logd, configure /etc/logd.cf
use_logd on
# Don't move service back to preferred host when it comes up
auto_failback on
# If all systems are down, it's failure
# Facemos ping aos switches do A3 e do Departamento, si non temos ping a eso, fallo fixo
ping_group lan_ping 172.20.2.254 172.20.3.254
# Takover if pings (above) fail
respawn hacluster /usr/lib/heartbeat/ipfail
##### Use unicast instead of default multicast so firewall rules are easier
# gandalf (descomentar no nodo gandalf, comentar en earendil)
ucast lan 172.20.1.10
# earendil (descomentar no nodo earendil, comentar en gandalf)
# ucast lan 172.20.1.1
ucast eth0 172.21.1.100
- /etc/ha.d/authkeys (igual en ambos nodos)
auth 1
1 sha1 password_cluster