Heartbeat, failover et quorum dans un cluster Windows ou Linux

Comment fonctionne les heartbeats et le failover dans les clusters SafeKit sur Windows ou Linux
Le mécanisme basique pour synchroniser deux serveurs et détecter les défaillances d'un serveur est le heartbeat (battement de cœur), qui consiste en un échange de petits paquets UDP entre les serveurs. Avec SafeKit, on peut mettre autant de heartbeats qu'il y a de réseaux connectant les deux serveurs.
Le mécanisme de heartbeat de SafeKit permet de mettre en œuvre des clusters Windows et Linux. Il est intégré aux autres fonctionnalités d'un module miroir et notamment à la réplication temps réel et continue dans un cluster actif-passif.
Dans une situation normale, les deux serveurs échangent leurs états (PRIM, SECOND, les états des ressources) à travers les heartbeats et synchronisent ainsi les procédures de démarrage et arrêt applicatif. Notamment en situation de basculement sur panne logicielle ou sur opération manuelle, le script d'arrêt de l'application est exécuté sur le serveur primaire, avant d'exécuter le script de démarrage sur le serveur secondaire. Ainsi on récupère des données répliquées sur le secondaire dans un état sain correspondant à un arrêt applicatif propre.
Si tous les heartbeats sont perdus, cela signifie que l'autre serveur est en panne. Le serveur local décide de devenir ALONE. S'il s'agit du serveur SECOND qui passe ALONE, il y a alors un failover applicatif avec relance de l'applicatif sur le serveur secondaire. Bien que non obligatoire, il est préférable d'avoir deux voies de heartbeats sur deux réseaux différents afin de distinguer une panne réseau d'une panne serveur.
Problème du quorum avec un cluster écarté entre deux salles machines
La plupart du temps, un cluster de haute disponibilité sécurisant une application critique dans un data center est mis en œuvre dans deux salles géographiquement distantes pour supporter le sinistre d'une salle complète.
Dans la situation d'une isolation réseau transitoire entre les 2 salles machines, le problème dit de split brain se pose. Les 2 serveurs peuvent exécuter l'application.
Avec un cluster de failover matériel, cette situation ne doit pas se produire car une double exécution signifie un accès concurrent au stockage partagé et une corruption potentielle des données de l'application critique. C'est pourquoi dans un cluster matériel, le mécanisme de quorum est mis en œuvre avec un troisième serveur de quorum ou un disque spécial de quorum ou même un reset hardware de la machine distante lorsque c'est possible.
Malheureusement, ce nouveau dispositif augmente le coût et la complexité de l'architecture de clustering global. Et le système n'est pas à l'abri d'un OS qui gèle: lorsque l'OS sort du gel, on se retrouve dans la situation de double exécution de l'application, même avec les mécanismes précédemment cités et avec un risque de corruption des données sur le stockage partagé entre les deux machines.
Simplicité du quorum dans un cluster SafeKit

Avec le logiciel de haute disponibilité SafeKit, la gestion du quorum dans un cluster Windows ou Linux ne nécessite pas de troisième serveur de quorum, ni de disque de quorum spécial, ni de reset hardware à distance. Un simple split brain checker est suffisant pour le quorum SafeKit et pour éviter la double exécution d'une application.
Le split brain checker, sur détection d’isolation réseau entre les serveurs, sélectionne un unique serveur pour devenir primaire. L’autre serveur devient non à jour et se bloque dans l’état WAIT, jusqu’à ce qu’il reçoive à nouveau les heartbeats de l’autre serveur, auquel cas il resynchronise automatiquement les données répliquées à partir de l'autre serveur.
L’élection du serveur primaire via le split brain checker de SafeKit repose sur le ping d’un composant externe, appelé witness (témoin). Le witness est typiquement un routeur qui ne tombe pas en panne. En cas d'isolation réseau, seul le serveur ayant accès au witness sera primaire ALONE, l'autre partira en WAIT. Le witness n'est pas testé en permanence mais uniquement lorsque le système bascule. Si au moment du basculement, le witness est down, le cluster part dans l'état WAIT-WAIT et un administrateur peut choisir de redémarrer l'un des nœuds en tant que primaire via l'interface web de SafeKit.
Envisageons le cas critique d'un gel OS ou d'une isolation réseau sans split brain checker configuré. Un cluster de haute disponibilité SafeKit supporte une double exécution d'une application critique sans corruption de données. Dans ce cas, le serveur primaire continue d'exécuter l'application dans l'état ALONE. Et le serveur secondaire redémarre l'application et passe aussi dans l'état ALONE. Les répertoires répliqués sont isolés et chaque application en cours d'exécution travaille sur ses propres données dans son propre répertoire.
Lorsque le réseau est reconnecté, un sacrifice est réalisé en arrêtant l'application sur un des deux serveurs. Ce sacrifice arrête donc l'application sur un serveur et provoque la réintégration des données à partir de l'autre serveur primaire. Après cette réintégration, les données sont à nouveau en mode mirroir entre un serveur primaire et un serveur secondaire.
Notez que lorsque le cluster de haute disponibilité est basé surun disque partagé, il faut s'assurer qu'après un gel OS, le serveur qui sort du gel ne peut plus accéder au disque sinon c'est la corruption des données.
Toutes ces opérations sont automatiques. La complexité de gestion des heartbeats, du failover et du quorum dans le cluster est intégrée au produit SafeKit et transparent pour les utilisateurs de SafeKit. Ainsi, les personnes déployant SafeKit sans compétence particulière peuvent le faire sur deux serveurs standards locaux ou distants. De plus, la configuration est la même que ce soit un cluster Windows ou Linux.
Important: si vous choisissez une autre solution basée sur un disque partagé ou répliqué, il faut s'assurer qu'après un gel OS, le serveur qui sort du gel ne peut plus accéder au disque partagé ou répliqué sinon deux serveurs accédant au même disque via son système de fichiers amène à une corruption des données.
FAQ sur Evidian SafeKit
3 démonstrations [+]
Modules de haute disponibilité appicatifs [+]
Solutions Cloud [+]
Clients [+]

Transport métropolitain [+]
La RATP choisit la solution de haute disponibilité et de load balancing SafeKit pour son poste de commande centralisé de la ligne 1 du métro parisien.
20 clusters SafeKit sont déployés sur Windows et Linux.
Stéphane Guilmin, Responsable de projets témoigne :
« Projet majeur au sein de la RATP, l’automatisation de la ligne 1 du métro 1 parisien impose que le poste commande centralisé (PCC) soit conçu pour résister aux pannes informatiques. Avec le produit SafeKit, nous avons trouvé trois avantages distinctifs répondant à ce besoin. Il s’agit d’abord d’une solution purement logicielle qui ne nous contraint pas à utiliser des disques partagés sur un SAN et des boitiers réseau de partage de charge. Nous pouvons très simplement séparer nos serveurs dans des salles machines distinctes. Ensuite, cette solution de clustering est homogène pour nos plateformes Windows et Linux. Et SafeKit nous apporte les trois fonctions dont nous avons besoin : le partage de charge entre serveurs, la reprise automatique sur panne et la réplication en temps réel des données. »
Et également, Philippe Marsol, responsable d’intégration, Atos BU Transport, témoigne :
“SafeKit est un produit simple et puissant pour la haute disponibilité des applications. Nous avons intégré SafeKit dans nos projets critiques comme la supervision de la ligne 4 du métro Parisien (dans le PCC / Poste de Commande et de Contrôle) ou la ligne 1 et 2 à Marseille (dans le CSR / Centre de Supervision du Réseau). Grâce à la simplicité du produit, nous avons gagné du temps dans l’intégration et la validation de la solution et nous avons eu également des réponses rapides à nos questions avec une équipe Evidian réactive. »
Meilleurs cas d'utilisation [+]
Avantages distinctifs [+]
Plus d'information sur le cluster miroir [+]
Démonstration de la réplication temps réel et de la reprise sur panne [+]
Quels sont les avantages [+]
- Faible complexité
- Déploiement Plug & Play sans compétences spécifiques
- Convient aux déploiements sur de nombreux sites (très simple à déployer)
- 2 nœuds (possibilité de réplication à 3 nœuds)
- Aucune exigence de stockage partagé
- Aucune exigence de contrôleur de domaine
- Même solution sous Windows et Linux
- Supporte les éditions OS Windows Server et Client
- API et support bien documentés
- Réplication synchrone des données (aucune perte de données en cas de panne)
- Les répertoires répliqués peuvent être dans le disque système
- Multiples heartbeats et adresses IP virtuelles supportés
- Offre des checkers logiciels, matériels et réseaux configurables
- Pour le quorum, ne nécessite pas de disque spécial ou de troisème machine ou de lien spécifique entre les 2 serveurs
- Basculement automatique des services avec un temps de reprise de l'ordre d'une minute
- Réintégration automatique d'un serveur après panne (aucune opération manuelle)
- Une console très simple pour déployer la solution et la maintenir ensuite pour le client final
- Supporte les erreurs humaines (40% des causes d'indisponibilité) grâce à sa simplicité
- Supporte les défaillances logicielles (40% des causes d'indisponibilité) : régression sur les mises à jour logicielles (les versions N et N + 1 peuvent coexister), système d'exploitation gelé, bug logiciel
- Supporte les défaillances du matériel et de son environnement (20% des causes d'indisponibilité), y compris la panne complète d'une salle informatique avec 2 nœuds dans deux sites distants
Quel est le temps de reprise (RTO) [+]
Le RTO (Recovery Time Objective) est le temps pendant lequel l'application est indisponible en cas de panne. Le RTO de la solution miroir de SafeKit est de l'ordre de 1 mn.
Pour une panne matérielle dans un cluster miroir, RTO = timeout des heartbeats (par défaut 30 s, peut être modifié dans userconfig.xml) + délai pour redémarrer les services .
Pour une défaillance logicielle ou un basculement administrateur, RTO = le temps d'arrêter (proprement) les services + le temps de les redémarrer.
Soyez prudent, avec des solutions qui redémarrent une machine virtuelle complète en cas de panne, le RTO est imprévisible car des opérations manuelles peuvent être nécessaires après un crash matériel pour redémarrer la machine virtuelle.
Quelle est la perte de données (RPO) [+]
Le RPO (Recovery Point Objective) reflète la perte de données en cas de panne. Le RPO de la solution miroir de SafeKit est 0 car la réplication est synchrone et temps réel.
Attention, avec la réplication asynchrone, le RPO n'est pas 0 et il y a perte de données en cas de panne lorsque l'application redémarre sur le serveur secondaire.
Plus d'information sur l'architecture [+]
Plus d'information sur le cluster ferme [+]
Démonstration du partage charge et de la reprise sur panne [+]
Quels sont les avantages [+]
- Faible complexité
- Déploiement Plug & Play sans compétences spécifiques
- Convient aux déploiements sur de nombreux sites (très simple à déployer)
- 2 nœuds ou plus
- Aucune exigence sur des load balancers réseaux
- Aucune exigence sur des serveurs proxy (au dessus du cluster ferme)
- Aucune exigence de contrôleur de domaine
- Aucune restriction dans VMware dûe à une adresse multicast ou unicast
- Même solution sur Windows et Linux
- Supporte les éditions OS Windows Server et Client
- API et support bien documentés
- Supporte de multiples voies de surveillance sur de multiples réseaux pour détecter la panne d'un serveur
- Supporte de multiples adresse IP virtuelles
- Offre des checkers logiciel, matériel et réseau configurables
- Offre le cluster miroir avec réplication temps réel synchrone et reprise sur panne
- Basculement automatique avec un temps de reprise de l'ordre de quelques secondes
- Réintégration automatique d'un serveur après panne (aucune opération manuelle)
- Une console très simple pour déployer la solution et la maintenir ensuite pour le client final
- Supporte les erreurs humaines (40% des causes d'indisponibilité) grâce à sa simplicité
- Supporte les défaillances logicielles (40% des causes d'indisponibilité) : régression sur les mises à jour logicielles (les versions N et N+1 peuvent coexister), système d'exploitation gelé, bug logiciel
- Supporte les défaillances du matériel et de son environnement (20% des causes d'indisponibilité), y compris la panne complète d'une salle informatique avec 2 nœuds dans deux sites distants
Quel est le temps de reprise (RTO) [+]
Le RTO (Recovery Time Objective) est le temps pendant lequel l'application est indisponible en cas de panne. Le RTO de la solution ferme de SafeKit est de l'ordre de quelques secondes sur panne matérielle.
Pour une panne matérielle, RTO = timeout sur la détection de panne via les voies de surveillance (par défaut quelques secondes) : après le timeout, les filtres de load balancing sont reconfigurés.
Pour une défaillance logicielle ou un basculement administrateur, RTO = le temps d'arrêter (proprement) les services + le temps de les redémarrer.
Plus d'information sur l'architecture [+]
Webinaire SafeKit [+]
Prix - Essai gratuit [+]