LINUX:Haute disponibilité
But
L'informatique devient de plus en plus cruciale et le temps d'indisponibilité doit être déduite au minimum. Ces temps d'indisponibilité font suite à des erreurs humaines mais surtout à des problèmes matériels.
Chaque type de problème a sa parade plus ou moins efficace selon les moyens mis en oeuvre.
Dans cet article, nous aborderons certaines approches: la duplication de matériel par l'utilisation de grappe de machines ou Cluster.
La pièce centrale utilisée est Pacemaker associées à Corosync, Pcs et, par après, Drbd.
- Corosync est là pour récupérer les informations de présence des machines dans la grappe.
- Pacemaker permet de gérer les ressources sur ces machines.
- Pcs sert à configurer cette grappe et de leur donner des ordres.
- Drbd est un équivalent au RAID1 mais les disques sont sur deux machines différentes et la duplication des données de fait à travers le réseau.
Nous aborderons leur utilisation au travers de divers exemples. En premier, nous utiliserons la notion de Failover ou Basculement et ensuite celle de Loadbalancing ou Répartition de charge en y ajoutant le logiciel Ldirectord.
Installation de Pacemaker, Corosync et Pcs
Ces trois composantes sont liées. Pour les installer, exécutez les commandes suivantes:
dnf install pcs dnf install pacemaker dnf install corosync
Normalement en installant le premier, les deux autres s'installent en tant que dépendances.
et éventuellement:
dnf install fence-agents-all dnf install sbd
Pacemaker - Configuration de base
Avant d'aborder des cas spécifiques de clusters, on passe d'office par une étape de configuration de base commune à tous les cas. Par la suite, quand on abordera notre cas spécifique de Loadbalancing, deux paramètres seront changés.
Configurer le mur de feu ou FireWall
Si vous activez le Firewall, ce qui est recommandé, il faut y ajouter les règles suivantes.
Le logiciel Corosync échange des informations avec ses partenaires via le protocole UDP et sur le port 5420, dans notre exemple, au travers des interfaces réseaux "eth1".
- sur la machine "fo1.home.dom", on ajoute:
-A INPUT -p udp -m udp -i eth1 -s 192.168.1.72 --dport 5420 -j ACCEPT -A OUTPUT -p udp -m udp -o eth1 -d 192.168.1.72 --dport 5420 -j ACCEPT
- sur la machine "fo2.home.dom", on ajoute:
-A INPUT -p udp -m udp -i eth1 -s 192.168.1.71 --dport 5420 -j ACCEPT -A OUTPUT -p udp -m udp -o eth1 -d 192.168.1.71 --dport 5420 -j ACCEPT
De même, le logiciel Pcs écoute sur le port TCP 2224. Ces échanges se font entre les machines du cluster lors de leur configuration et leur gestion. Ces accès peuvent également être effectués à partir d'une machine distante via un interface Web; nous avons choisi l'accès au réseau "192.168.1.0/24".
- sur les machines du cluster, on ajoute:
-A INPUT -p tcp -m tcp --sport 2224 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 2224 -d 192.168.1.0/24 -j ACCEPT
Activation et lancement
Dès que la phase de configuration de base est effectuée et non avant, on active ces trois produits:
systemctl enable pcsd systemctl enable corosync systemctl enable pacemaker
et on les lancent:
systemctl start pcsd systemctl start corosync systemctl start pacemaker
Ces étapes sont à effectuer sur les différentes machines du cluster.