Pour que deux machines d'un cluster coopèrent et fournissent un service hautement disponible, plusieurs composants et mécanismes clés sont requis :
1. Stockage partagé ou réplication de données :
* Stockage partagé : Les deux machines doivent accéder au même emplacement de stockage (par exemple, SAN, NAS, système de fichiers partagé). Cela permet au service de basculer de manière transparente vers l'autre machine sans perte de données, car les données sont facilement disponibles.
* Réplication des données : Si le stockage partagé n'est pas réalisable ou souhaitable, un mécanisme de réplication des données (par exemple, DRBD, Ceph, bases de données distribuées avec réplication) garantit la cohérence des données entre les deux machines. Une machine fait office de machine principale, tandis que l'autre conserve une copie synchronisée.
2. Logiciel/Framework de clustering :
* Ce logiciel gère le processus de basculement, surveille la santé des deux machines et garantit qu'une seule machine dessert le service à un moment donné. Les exemples incluent :
* Pacemaker/Corosync : Une solution de clustering open source populaire.
* Garder la vie : Souvent utilisé pour la gestion des adresses IP virtuelles (VIP).
* Battement de coeur : Une autre solution open source pour la haute disponibilité.
* Solutions propriétaires : De nombreux fournisseurs proposent leur propre logiciel de clustering adapté à leur matériel et à leurs systèmes d'exploitation.
3. Adresse IP virtuelle (VIP) :
* Une seule adresse IP est attribuée au service, gérée par le logiciel de clustering. Cette adresse IP « flotte » entre les deux machines. Lorsque la machine principale tombe en panne, le logiciel de clustering déplace le VIP vers la machine secondaire, rendant le service à nouveau immédiatement accessible.
4. Surveillance de la santé :
* Le logiciel de clustering surveille en permanence la santé des deux machines (utilisation du processeur, mémoire, connectivité réseau, état du service). Si la machine principale échoue au contrôle de santé, le processus de basculement est lancé.
5. Mécanisme de basculement :
* Le logiciel de clustering définit et exécute le processus de basculement. Cela comprend :
* Détection d'une panne de la machine principale.
* Arrêt progressif du service sur la machine défaillante (si possible).
* Démarrage du service sur la machine secondaire.
* Basculer le VIP vers la machine secondaire.
6. Configuration réseau :
* Les deux machines doivent disposer d'une connectivité réseau fiable. Une configuration réseau redondante (par exemple, plusieurs interfaces réseau, interfaces liées) augmente la robustesse du système.
7. Configuration cohérente :
* Les deux machines doivent avoir une configuration identique pour le service, y compris les versions du logiciel, les fichiers de configuration et toutes les dépendances nécessaires. Les outils de gestion de configuration (par exemple Ansible, Puppet, Chef) peuvent aider à maintenir la cohérence.
8. Connaissance des applications :
* L'application elle-même doit idéalement connaître l'environnement de clustering et être capable de gérer le basculement avec élégance. Cela implique souvent des fonctionnalités telles que la persistance de session ou des mécanismes de verrouillage distribués.
Essentiellement, le clustering hautement disponible repose sur une redondance à plusieurs niveaux (données, réseau et service lui-même) gérée par un logiciel intelligent qui garantit un basculement transparent et un temps d'arrêt minimal.
|