Mise en place KeepAlived sur Linux

Nous allons voir la mise en place de KeepAlived sur Linux, pour notre exemple nous utiliserons 3 VM sous Debian 10.

La partie KeepAlived permet le failover IP de nos serveurs, ainsi si l’un vient à rencontrer un problème, alors l’autre peut récupérer la configuration IP du 1er.

Un keepalive (KA) est un message envoyé par un appareil à un autre pour vérifier que le lien entre les deux est actif, ou pour empêcher que le lien soit brisé.
Source : https://fr.wikipedia.org/wiki/Keepalive


Configuration réseau

Il faut commencer par la désactivation du bouclage réseau via la commande ci-dessous :

echo net.ipv4.ip nonlocal_bind=1 | tee -a /etc/sysctl.conf

Ensuite, nous vérifions la modification :

sysctl -p

Le résultat suivant doit en ressortir :

net.ipv4.ip nonlocal_bind = 1

Installation de KeepAlived

Installation des paquets

apt install keepalive gnupg

Après, il faudra créer l’utilisateur « keepalived » :

useradd -g users -M keepalived_script

Configuration de KeepAlived

A présent, on crée le fichier de configuration :

vi /etc/keepalived/keealived.conf

Ensuite, on remplit la configuration du 1er hôte de la façon suivante :

global_defs {
enable_script_security
notification_email {
 votre-adresse@mail.fr
}

vrrp_instance VI_SERVER_1 {
state MASTER
interface ens192
virtual_router_id 1
priority 103

virtual_ipaddress {
192.168.0.4/24
}
}

vrrp_instance VI_SERVER_2 {
state MASTER
interface ens192
virtual_router_id 2
priority 101

virtual_ipaddress {
192.168.0.5/24
}
}

vrrp_instance VI_SERVER_3 {
state MASTER
interface ens192
virtual_router_id 3
priority 102

virtual_ipaddress {
192.168.0.6/24
}
}

Le 2ème sera rempli ainsi :

global_defs {
enable_script_security
notification_email {
 votre-adresse@mail.com
}

vrrp_instance VI_SERVER_1 {
state MASTER
interface ens192
virtual_router_id 1
priority 102

virtual_ipaddress {
192.168.0.4/24
}
}

vrrp_instance VI_SERVER_2 {
state MASTER
interface ens192
virtual_router_id 2
priority 103

virtual_ipaddress {
192.168.0.5/24
}
}

vrrp_instance VI_SERVER_3 {
state MASTER
interface ens192
virtual_router_id 3
priority 101

virtual_ipaddress {
192.168.0.6/24
}
}

Enfin, le 3ème sera ainsi :

global_defs {
enable_script_security
notification_email {
 votre-adresse@mail.com
}

vrrp_instance VI_SERVER_1 {
state MASTER
interface ens192
virtual_router_id 1
priority 101

virtual_ipaddress {
192.168.0.4/24
}
}

vrrp_instance VI_SERVER_2 {
state MASTER
interface ens192
virtual_router_id 2
priority 102

virtual_ipaddress {
192.168.0.5/24
}
}

vrrp_instance VI_SERVER_3 {
state MASTER
interface ens192
virtual_router_id 3
priority 103

virtual_ipaddress {
192.168.0.6/24
}
}

Priorisation

Le système de priorité est simple, l’adresse IP virtuelle est attribuée à l’hôte ayant la plus grande priorité, ainsi l’adresse 192.168.0.6 sera attribuée au serveur n°3 (priority 103).
Si celui-ci venait à tomber en panne, alors l’adresse IP 192.168.0.6 serait récupérée par le serveur n°1, car disposant de la seconde priorité la plus élevée (priority 102).

Exemple d’utilisation

Pour notre exemple on suit le schéma suivant :

Mise en place KeepAlived sur Linux

Une fois le KeepAlived configuré comme précédemment indiqué, on arrive à ce résultat :

On voit que chaque serveur dispose de sa propre VIP, celle avec la priorité la plus élevée.

Panne

En cas de panne, prenons pour exemple la disparition de la VM 2 du LAN (ou sa perte d’adresse IP, ou n’importe quel autre problème réseau).
Nous nous retrouvons alors dans cette situation :

Mise en place KeepAlived sur Linux

A ce moment, KeepAlived ne reçoit plus de message et bascule alors la VIP du serveur qui ne répond plus, il prend la priorité la plus élevé après celle de la VM 2, soit la VM 3 ayant comme priorité « 102 ».

Mise en place KeepAlived sur Linux

Vérification des Services

Souvent, Keepalived est utilisé en lien avec des services, par exemple « HAProxy », dans ce cas vous pouvez indiquer de vérifier que le service est démarré en rajoutant cette option :

global_defs {
enable_script_security
notification_email {
 votre-adresse@mail.com
}

vrrp_script check_haproxy {
   script "/usr/bin/pgrep haproxy" 
   interval 2
   init_fail

vrrp_instance VI_SERVER_1 {
state MASTER
interface ens192
virtual_router_id 1
priority 101

virtual_ipaddress {
192.168.0.4/24
}
track_script {
     check_haproxy
   }
}

vrrp_instance VI_SERVER_2 {
state MASTER
interface ens192
virtual_router_id 1
priority 102

virtual_ipaddress {
192.168.0.5/24
} 
 track_script {
     check_haproxy
   } 
}

Bien entendu vous pouvez adapter en fonction des services qui vous seront utiles.
Il vous suffira de modifier le script du début « check_haproxy », en modifiant à votre guise.

Reprise automatique d’IP ou non

Par défaut, après une panne, le serveur Master récupère son adresse IP.
Si vous souhaitez que votre serveur ne reprenne pas automatiquement son IP après un failover, il suffit d’ajouter l’option « nopreempt ».

vrrp_instance VI_SERVER_2 {
state MASTER
interface ens192
virtual_router_id 1
priority 102
nopreempt
...
}

Ainsi le serveur ayant perdu son adresse IP ne la récupérera pas automatiquement, permettant par exemple une détection plus simple de la panne.

Vous êtes à présent capable d’effectuer une mise en place de KeepAlived sur Linux.

Si vous souhaitez allez plus loin, vous pouvez retrouver toute la documentation de KeepAlived à cette adresse : https://www.keepalived.org/manpage.html

Retrouvez également tous nos articles sur Linux à cette adresse : https://sqx-bki.fr/categorie/linux/

Sauvegarde bases de données MySQL – mysqldump

Nous allons voir comment effectuer une sauvegarde des bases de données MySQL via l’utilitaire mysqldump. Les sauvegardes complètes de VM ne prennent pas forcément en compte vos bases de données, et la restauration de vos machines peut alors être très incertaine, le dump est alors nécessaire. Il peut aussi être utilisé pour la migration de votre base de données, car c’est un export complet des informations de la BDD.

Sauvegarde bases de données MySQL - mysqldump
Continuer la lecture de « Sauvegarde bases de données MySQL – mysqldump »

Mise en place Spanning Tree switch HPE OfficeConnect 1920S

Nous allons voir la mise en place du Spanning Tree sur des switch HPE de la gamme OfficeConnect, et plus particulièrement nos tests se feront sur des 1920S.

https://www.hpe.com/fr/fr/product-catalog/networking/networking-switches/pip.hpe-officeconnect-1920s-switch-series.1009689650.html

Le Spanning Tree est un protocole réseau empêchant l’apparition de boucles lors de création de chemins redondants sur plusieurs switchs.

Mise en place Spanning Tree switch HPE OfficeConnect 1920S
Continuer la lecture de « Mise en place Spanning Tree switch HPE OfficeConnect 1920S »

Installation d’un disque dur sans RAID dans une baie HP MSA 2040

Dans l’article présent, nous allons voir comment procéder à l’installation d’un disque dur sans aucun RAID dans une baie HP MSA 2040.
Ce besoin est particulier à certaines situations et si l’option est impossible par défaut dans l’interface graphique c’est que le choix de ne pas utiliser de RAID est fortement déconseillé la plupart du temps.

Continuer la lecture de « Installation d’un disque dur sans RAID dans une baie HP MSA 2040 »

Installation d’un hyperviseur KVM sur CentOS

Dans le guide d’aujourd’hui, nous allons voir l’Installation d’un hyperviseur KVM sur CentOS ainsi que l’installation d’une machine virtuelle sur celui-ci. KVM (Kernel-based Virtual Machine) est une technologie de virtualisation Open Source qui permet de transformer Linux en un hyperviseur, celui-ci pourra donc exécuter plusieurs environnements virtuels isolés aussi appelés machines virtuelles.

Continuer la lecture de « Installation d’un hyperviseur KVM sur CentOS »