« LINUX:Haute disponibilité » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 104 : | Ligne 104 : | ||
=[[LINUX:Pacemaker - Serveurs en Failover|Serveurs en Failover]]= | |||
Autre application, nous allons mettre deux serveurs en Failover. Nous utiliserons l'approche utilisée par les routers mis en Failover couplée à l'utilisation de Drbd. | |||
Version du 14 février 2023 à 10:44
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
Configuration de base de Pacemaker
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.
Interface Web
Il existe un interface Web qui est le pendant des commandes de ligne "pcs" utilisées jusqu'ici.
Routers inter LAN en Failover
Ce premier exemple place deux routers en Failover afin de diminuer le risque de coupures entre deux LANs privés.
Routers LAN-Internet en Failover
Ce second exemple place deux routers en Failover afin de diminuer le risque de coupures. Ces routers relieront notre LAN privé à Internet.
Elimination d'une ressource
La commande suivante permet d'éliminer une ressource nom désirée:
pcs resource delete <nom de ressource>
Par exemple:
pcs resource delete ClusterMailTo
à effectuer sur une des machines du cluster.
Je conseille de réfléchir à l'ordre; je le fais en sens inverse de la création. Il faut savoir que toutes ses dépendances sont aussi éliminées tels l'ordre, la localisation,...
Elimination des notifications d'erreur
Il arrive, surtout lors des périodes de conception, que des notifications d'erreurs s'affichent. Elles s'accumulent et peuvent bloquer le système. En premier on règle le problème et ensuite on efface ces notifications et l'historique.
La commande suivante efface les notifications relatives à une ressource:
pcs resource cleanup <nom de ressource>
Par exemple:
pcs resource cleanup ClusterDefaultRoutes
La commande suivante efface l'historique au niveau d'une machine, appelé également noeud:
pcs stonith history cleanup <noeud>
Par exemple:
pcs stonith history cleanup fo1.home.dom
Drbd
Drbd est un équivalent du Raid 1 mais les deux disques sont sur des machines différentes et la synchronisation se fait à travers le réseau.
Serveurs en Failover
Autre application, nous allons mettre deux serveurs en Failover. Nous utiliserons l'approche utilisée par les routers mis en Failover couplée à l'utilisation de Drbd.