Uno de los primeros problemas que me encontré es de lo más simple. La idea es crear un recurso IP, que levanta una IP virtual en uno de los nodos del cluster. Esa IP la podemos utilizar posteriormente como recurso para un servicio HTTP ó MySQL por ejemplo, IP que en caso de fallo del nodo activo se traspasará junto con el resto de servicio a otro nodo del cluster.
Lo único que hay que tener claro es que la subred de esa IP debe estar configurada en alguna de las interfaces de red de los nodos, sino el rgmanager no sabrá donde levantarla. La máscara es opcional, pero por ahí venían todos mis problemas. Recibía el siguiente error al levantar el servicio:
Dec 28 21:41:53 nodo1 rgmanager[3563]: Initializing service:IP Dec 28 21:42:32 nodo1 rgmanager[3563]: Recovering failed service service:IP Dec 28 21:42:32 nodo1 rgmanager[3563]: start on ip "192.168.1.200/255.255.255.0" returned 1 (generic error) Dec 28 21:42:33 nodo1 rgmanager[3563]: #68: Failed to start service:IP; return value: 1 Dec 28 21:42:33 nodo1 rgmanager[3563]: Stopping service service:IP Dec 28 21:42:35 nodo1 rgmanager[3563]: Service service:IP is recovering
Y la configuración del recurso/servicio:
<service autostart="0" domain="IP_FAILOVER" name="IP" recovery="relocate"> <ip address="192.168.1.200/255.255.255.0" monitor_link="1" sleeptime="10"/> </service>
El problema, tras darle unas cuantas vueltas era tan simple como que la máscara se especifica como bits de máscara de red, es decir, en lugar de 255.255.255.0, 24:
<service autostart="0" domain="IP_FAILOVER" name="IP" recovery="relocate"> <ip address="192.168.1.200/24" monitor_link="1" sleeptime="10"/> </service>
Tratamos de arrancar el servicio y ya levanta la IP virtual correctamente. Puede parecer una tontería pero es útil tenerlo en cuenta por si os pasa.
Dec 28 21:47:31 nodo1 rgmanager[3331]: Starting stopped service service:IP Dec 28 21:47:37 nodo1 rgmanager[8561]: [ip] Adding IPv4 address 192.168.1.200/24 to eth0 Dec 28 21:47:44 nodo1 rgmanager[3331]: Service service:IP started