====== KeepAlived ====== Supports de présentation des nocturnes 2018 : {{ :doc:keepalived-prez-2018-12-08.pdf |}} Le guide utilisateur officiel est bien fait : http://www.keepalived.org/pdf/UserGuide.pdf La documentation officielle : http://keepalived.org/documentation.html ===== Présentation ===== KeepAlived est une solution incontournable de la HA sous Linux. Il s’agit d’un loadbalancer et d’un manager de VIP, écrit en C. Il se base sur le module Linux Virtual Server pour le LB, et le protocole VRRP pour la partie IP virtuelle. La première version publique (0.2.1) date du 22-12-2000 et la première version stable du 13-01-2003. Si vous cherchez des nouvelles fonctionnalités funky, passez votre chemin. ===== Configuration du démon (systemd) ===== Avec le fichier /etc/default/keepalived (ou /etc/sysconfig/keepalived sous redhat). les options suivantes se révèlent souvent utiles au quotidien : -D : Detailed log messages –log-facility=0 : syslog facility (il faut couper ce règlage à une configuration du daemon syslog) En cas de problème, les options suivantes sont très pratiques : -d : Dump the configuration on startup -l : Log messages to the local console ===== Configuration des VIP ===== Voici un exemple : global_defs { notification_email { truc@truc.fr } notification_email_from machineenpanne@truc.fr smtp_server 127.0.0.1 smtp_connect_timeout 30 } vrrp_script 23c1ddc2-8091-5efc-aecc-9dd80657bfe0 { script "killall -0 haproxy" interval 2 fall 2 rise 4 } vrrp_sync_group sync-group { group { ws-bi-vrrp ws-lb-vrrp } } vrrp_instance ws-bi-vrrp { interface eth2 state BACKUP nopreempt advert_int 2 virtual_router_id 16 smtp_alert priority 118 authentication { auth_type PASS auth_pass xxxxxxxxxx } track_interface { eth2 } virtual_ipaddress { 172.16.10.16 } track_script { 23c1ddc2-8091-5efc-aecc-9dd80657bfe0 } } vrrp_instance ws-lb-vrrp { interface eth1 state BACKUP nopreempt advert_int 2 virtual_router_id 20 smtp_alert priority 118 authentication { auth_type PASS auth_pass xxxxxxxxxx } track_interface { eth1 eth2 } virtual_ipaddress { 172.16.2.20 } track_script { 23c1ddc2-8091-5efc-aecc-9dd80657bfe0 } } ===== Utilisations pratiques en réseau étudiant ===== C'est très utile pour un routeur : on peut le redonder très simplement et éviter les coupures en cas de maintenance. En général, il faut utiliser quelque chose de "stateless" (sans état) ; une base de donnée sera très complexe à redonder avec keepalived, ça n'est pas fait pour. ===== Alternatives ===== ==== HeartBeat + MON ==== C’est une ancienne alternative (aussi vieille que KeepAlived). Heartbeat fait du ping sur l’interface des deux machines du cluster, et bascule la VIP en cas de non réponse. MON permet une configuration plus fine, par exemple en effectuant une requête HTTP pour vérifier le statut d’un serveur Web. En cas de problème, il commande à Heartbeat de basculer la VIP ==== Corosync + Pacemaker ==== C’est la solution choisie par RedHat pour sa solution RedHatCluster (que plus personne n’utilise d’ailleurs). Corosync gère l’infrastructure, l’état des noeuds et la gestion des groupes. Pacemaker gère les ressources. Voir les explications de Willy Tarreau sur ce sujet : http://www.formilux.org/archives/haproxy/1003/3259.html