El gran fuerte de Keepalived es posiblemente su sencillez. La configuración se basa unicamente en un fichero de configuración (keepalived.conf) donde se incluyen todas las opciones necesarias para la puesta a punto, (nada de linea de comandos, nada de interfaces gráficas), y los scripts de arranque y parada típicos. Quizá se pueda echar en falta algún método de configuración más elaborado, por ejemplo, para producir un failover controlado, cambiar el estado Master-Slave de los nodos mediante línea de comandos, ya que la única manera de hacerlo es producirlo manualmente, parando el servicio en el nodo Master.
Vamos ahora con un pequeño ejemplo de la forma que presenta el fichero de configuración. Necesitamos un fichero de configuración en cada uno de los nodos del cluster.
vrrp_sync_group VG1 {
group {
VI_1
VI_2
}
}
group {
VI_1
VI_2
}
}
En Vrrp_sync_group especificamos los recursos que se van a sincronizar en caso de failover. En nuestro caso tenemos dos instancias VI_1 y VI_2 que se corresponden con dos interfaces virtuales. En caso de fallo queremos que ambas interfaces se cambien de nodo, por ello las metemos en este grupo.
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.110.115/24
}
}
vrrp_instance VI_2 {
state MASTER
interface eth1
virtual_router_id 52
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.110.115/24
}
}
vrrp_instance VI_2 {
state MASTER
interface eth1
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.5/24
}
}
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.5/24
}
}
El resto del fichero se compondrá de las instancias, entendiendo por instancia, los servicios que mantendremos en alta disponibilidad. La forma de estas es la que sigue.
- state MASTER: Aqui definimos quien será el Master/Slave sobre este recurso. En uno de los nodos estará puesto en Master, en el otro/otros estará/an como Slave.
- interface eth1: Sobre qué interfaz se levantará nuestra Ip virtual.
- virtual_router_id 51: Identificador de "Cluster". Debe ser el mismo en ambos (o los que sean) nodos del cluster y distinto a cualquier otro Id de cluster que utilice keepalived.
- authentication: Opciones de autenticación.
- auth_type PASS: tipo de autenticación por Password.
- auth_pass xxxx: password que comparten los nodos para identificarse. Debe ser el mismo en todos los nodos. va en texto claro, así que ojito con quien ve este fichero.
- virtual_ipaddress: Ip virtual. Formato IP/mascara.
Con estos parametros en todos los nodos de nuestro cluster tendriamos configurado la alta disponibilidad de interfaces en nuestro cluster. La forma de configurar los servicios es ligeramente distinta a la forma de configurar las interfaces y no entraremos en ello aquí.
Para ver quien tiene configuradas las interfaces virtuales que hemos configurado en keepalived, no es suficiente con el comando "ifconfig" . Podemos ver las interfaces con uno de los siguientes comando.
- ip address list
- ip -4 addr show
V.
0 comentarios: