Le but de cette prestation était de migrer l’application intranet du client d’une plate-forme "Répartition de Charge / Haute Disponibilité" sous système d’exploitation Debian vers une plate-forme "Haute-Disponibilité" d’après un cahier des charges fourni par le client et non-modifiable, sous système d’exploitation RedHat 4 Enterprise Linux.
L’ensemble est configuré en haute-disponibilité avec l’outil ServiceGuard, système de clustering offrant des outils d’administration en ligne de commande ou par le biais d’un client web Java fourni par HP.
Les serveurs SQL
Sur chaque serveur, un serveur Mysql en multi-instances fournissant deux instances dont une seule est active. Ce système de multi-instance permet d’installer un seul paquet Mysql mais de disposer de deux serveurs distincts l’un de l’autre utilisant chacun un port et un socket spécifiques
Les serveurs Web
Afin de pouvoir faire fonctionner deux serveur Apache et deux serveurs Samba sur le même serveur il a été nécessaire d’installer deux fois les paquets sur chaque machines et de les faire écouter chacuns sur une adresse ip dédiée ainsi Php4 écoute sur IP_PHP4 et PHP5 écoute sur IP_PHP5.
Espace de stockage
L’espace de stockage de toutes les données communes aux services est situé sur le SAN.
Les différents services (Mysql1, Mysql2, Php4, Php5 et Java) ont chacun un volume spécifique.
Ces volumes sont basculés automatiquement d’un serveur à l’autre lorsque le service de monitoring du cluster détecte une défaillance de service.
L’outil déployé est ServiceGuard de HP. Il a l’avantage :
Il a tout de même été nécessaire de modifier ces scripts fonctionnant dans un système de package, chaque package étant prévu pour monitorer un seul et unique service comprenant le service, l’espace disque qui lui est associé et une adresse IP virtuelle attribuée.
Dans le cas de Php4 par exemple, le volume disque de Samba-Php4 étant le même que celui de Apache-Php4 il n’était pas possible de monitorer les services séparément. En effet, si le service Samba-Php4 est défaillant le gestionnaire du cluster va démonter le volume locale correspondant au service, remonter ce volume et redémarrer le service sur le deuxième serveur du cluster. Cela implique que le service Apache-Php4 local n’a plus de données.
Nous avons donc modifié les scripts afin qu’un seul package puisse monitorer plusieurs services et faire basculer simultanément l’ensemble des services monitorés d’un serveur à l’autre.
Il également fallu modifier le système de monitoring en lui même afin qu’il ne se base pas uniquement sur l’absence d’un processus pour décider la migration d’un service depuis un serveur vers l’autre.
Nous avons pris en compte la notion de processus père et fils qui n’étaient pas gérés correctement.