LINUX:Haute disponibilité

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour au menu de Linux


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.






retour au menu de Linux