eviden-logo

Evidian > Produits > SafeKit : Logiciel de haute disponibilité simple et économique > Heartbeat, failover et quorum dans un cluster Windows ou Linux

Heartbeat, failover et quorum dans un cluster Windows ou Linux

Evidian SafeKit

Quels sont les différents scénarios en cas d'isolement réseau dans un cluster ?

Un seul réseau

Lorsqu'il y a un isolement réseau, le comportement par défaut est :

  • comme les heartbeats sont perdus pour chaque nœud, chaque nœud passe en ALONE et exécute l'application avec son adresse IP virtuelle (double exécution de l'application modifiant ses données locales),
  • lorsque l'isolement est réparé, un nœud ALONE est obligé de s'arrêter et de resynchroniser ses données depuis l'autre nœud,
  • à la fin, le cluster est PRIM-SECOND (ou SECOND-PRIM selon la détection d'adresse IP virtuelle en double faite par Windows).

Deux réseaux avec un réseau de réplication dédié

Lorsqu'il y a un isolement réseau, le comportement avec un réseau de réplication dédié est :

  • un réseau de réplication dédié est implémenté sur un réseau privé,
  • les heartbeats sur le réseau de production sont perdus (réseau isolé),
  • les heartbeats sur le réseau de réplication fonctionnent (réseau non isolé),
  • le cluster reste à l'état PRIM/SECOND.

Un seul réseau et un checker split-brain

Lorsqu'il y a un isolement du réseau, le comportement avec un split-brain checker est :

  • un split-brain checker a été configuré avec l'adresse IP d'un témoin (typiquement un routeur),
  • le split-brain agit lorsqu'un serveur passe de PRIM à ALONE ou de SECOND à ALONE,
  • en cas d'isolement du réseau, avant de passer en ALONE, les deux nœuds testent l'adresse IP,
  • le nœud qui peut accéder à l'adresse IP passe à ALONE, l'autre passe à WAIT,
  • lorsque l'isolement est réparé, le nœud WAIT resynchronise ses données et devient SECOND.

Remarque : Si le témoin est en panne ou déconnecté, les deux nœuds passent à WAIT et l'application n'est plus en cours d'exécution. C'est pourquoi vous devez choisir un témoin robuste comme un routeur.

Comment fonctionnent les heartbeats et le basculement dans un cluster Windows ou Linux ?

Qu'est-ce qu'un heartbeat ?

Le mécanisme de base pour synchroniser deux serveurs et détecter les pannes de serveur est le heartbeat, qui est un flux de données de surveillance sur un réseau partagé par une paire de serveurs.

Le logiciel SafeKit supporte autant de heartbeats qu'il y a de réseaux partagés par les deux serveurs.

Le mécanisme de heartbeat est utilisé pour implémenter des clusters Windows et Linux. Il est intégré au cluster miroir de SafeKit avec réplication de fichiers en temps réel et basculement.

Heartbeats de SafeKit

En fonctionnement normal, les deux serveurs échangent leurs états (PRIM, SECOND, les états des ressources) via les canaux de heartbeat et synchronisent leurs procédures de démarrage et d'arrêt des applications.

En particulier, en cas de basculement programmé, le script d'arrêt qui stoppe l'application est d'abord exécuté sur le serveur primaire, avant d'exécuter le script de démarrage sur le serveur secondaire. Ainsi, les données répliquées sur le serveur secondaire sont dans un état sûr correspondant à un arrêt propre de l'application.

Perte de tous les heartbeats

Lorsque tous les heartbeats sont perdus sur un serveur, ce serveur considère que l'autre serveur est en panne et passe à l'état ALONE.

Si c'est le serveur SECOND qui passe à l'état ALONE, alors il y a basculement de l'application avec redémarrage de l'application sur le serveur secondaire.

Bien que non obligatoire, il est préférable d'avoir deux canaux de heartbeat sur deux réseaux différents pour synchroniser les deux serveurs afin de séparer le cas de la panne réseau de celui de la panne serveur.

Problème de split brain et quorum lorsque les serveurs sont dans deux salles informatiques distantes

Heartbeat, failover et quorum dans un cluster Windows ou Linux

Salles informatiques distantes

Un cluster de haute disponibilité sécurisant une application critique peut être mis en place avec deux serveurs dans deux salles informatiques géographiquement distantes.

Ainsi, la solution prend en charge le sinistre d'une salle complète.

Split brain

En cas d'isolation réseau entre les deux salles informatiques, tous les heartbeats sont perdus et le problème du split brain se pose.

Les deux serveurs démarrent l'application critique.

Complexité des solutions

Le plus souvent, pour résoudre le split brain, le quorum est implémenté avec un troisième serveur de quorum ou un disque de quorum spécial pour éviter les doubles maîtres.

Malheureusement, ces nouveaux dispositifs de quorum ajoutent des coûts et de la complexité à l'architecture de clustering globale.

Quorum simple avec le split brain checker de SafeKit

Split brain checker de SafeKit

Avec le logiciel de haute disponibilité SafeKit, le quorum au sein d'un cluster Windows ou Linux ne nécessite pas de troisième serveur de quorum ni de disque quorum. Un split brain checker simple est suffisant pour éviter la double exécution d'une application.

En cas de perte de tous les heartbeats entre les serveurs, le split brain checker sélectionne un seul serveur pour devenir le serveur primaire. L'autre serveur passe à l'état WAIT jusqu'à ce qu'il reçoive à nouveau les heartbeats. Il repasse alors en secondaire après avoir resynchronisé les données répliquées du serveur primaire.

Comment fonctionne le split brain checker ?

L'élection du serveur primaire est basée sur le ping d'une adresse IP, appelée témoin. Le témoin est généralement un routeur toujours disponible. En cas d'isolation réseau, seul le serveur ayant accès au témoin sera primaire et passera ALONE, l'autre ira en WAIT.

Le témoin n'est pas testé en permanence mais seulement lorsque tous les heartbeats sont perdus. Si à ce moment-là, le témoin est en panne, le cluster passe à l'état WAIT-WAIT et un administrateur peut choisir de redémarrer l'un des serveurs en tant que serveur primaire via la console Web de SafeKit.

Que se passe-t-il sans split brain checker ?

En cas d'isolation réseau, les deux serveurs passeront à l'état ALONE exécutant l'application critique. Les répertoires répliqués sont isolés et chaque application travaille sur ses propres données dans son propre répertoire.

A la reconnexion du réseau, SafeKit choisit par défaut le serveur qui était PRIM avant l'isolation comme nouveau primaire et force l'autre serveur en SECOND avec une resynchronisation de toutes ses données depuis le serveur PRIM.

Remarque : Windows peut détecter une adresse IP en double sur un serveur et supprimer l'adresse IP virtuelle sur ce serveur. SafeKit dispose d'un checker pour forcer un redémarrage dans ce cas.

Comment fonctionne le cluster miroir SafeKit?

Étape 1. Réplication en temps réel

Le Serveur 1 (PRIM) exécute l'application. Les clients sont connectés à une adresse IP virtuelle. SafeKit réplique en temps réel les modifications apportées à l'intérieur des fichiers à travers le réseau.

Réplication de fichiers au niveau octet dans un cluster miroir

La réplication est synchrone sans perte de données en cas de défaillance, contrairement à la réplication asynchrone.
Il vous suffit de configurer les noms des répertoires à répliquer dans SafeKit. Il n'y a pas de prérequis sur l'organisation des disques. Les répertoires peuvent être situés dans le disque système.

Étape 2. Bascule automatique (failover)

Lorsque le Serveur 1 tombe en panne, le Serveur 2 prend le relais. SafeKit bascule l'adresse IP virtuelle et redémarre l'application automatiquement sur le Serveur 2.
L'application retrouve les fichiers répliqués par SafeKit à jour sur le Serveur 2. L'application continue de fonctionner sur le Serveur 2 en modifiant localement ses fichiers qui ne sont plus répliqués vers le Serveur 1.

Bascule (failover) dans un cluster miroir

Le temps de bascule est égal au temps de détection de panne (30 secondes par défaut) plus le temps de démarrage de l'application.

Étape 3. Reprise automatique (failback)

La reprise (failback) consiste à redémarrer le Serveur 1 après avoir résolu le problème qui a causé sa défaillance.
SafeKit resynchronise automatiquement les fichiers, mettant à jour uniquement les fichiers modifiés sur le Serveur 2 pendant que le Serveur 1 était arrêté.

Reprise (failback) dans un cluster miroir

La reprise a lieu sans perturber l'application, qui peut continuer à s'exécuter sur le Serveur 2.

Étape 4. Retour à la normale

Après la réintégration, les fichiers sont à nouveau en mode miroir, comme à l'étape 1. Le système est de retour en mode haute disponibilité, avec l'application fonctionnant sur le Serveur 2 et SafeKit répliquant les mises à jour de fichiers vers le Serveur 1.

Retour au fonctionnement normal dans un cluster miroir

Si l'administrateur souhaite que l'application s'exécute sur le Serveur 1, il/elle peut exécuter une commande "swap" soit manuellement à un moment opportun, soit automatiquement via la configuration.

Utilisation typique avec SafeKit

Pourquoi une réplication de quelques téraoctets ?

Temps de resynchronisation après une panne (étape 3)

  • Réseau 1 Gb/s ≈ 3 heures pour 1 téraoctet.
  • Réseau 10 Gb/s ≈ 1 heure pour 1 téraoctet ou moins selon les performances d’écriture disque.

Alternative

Pourquoi une réplication < 1 000 000 fichiers ?

  • Performance du temps de resynchronisation après une panne (étape 3).
  • Temps nécessaire pour vérifier chaque fichier entre les deux nœuds.

Alternative

  • Regrouper les nombreux fichiers à répliquer dans un disque dur virtuel / une machine virtuelle.
  • Seuls les fichiers représentant le disque dur virtuel / la machine virtuelle seront répliqués et resynchronisés dans ce cas.

Pourquoi un basculement ≤ 32 VM répliquées ?

  • Chaque VM fonctionne dans un module miroir indépendant.
  • Maximum de 32 modules miroir exécutés sur le même cluster.

Alternative

  • Utiliser un stockage partagé externe et une autre solution de clustering de VM.
  • Plus coûteux, plus complexe.

Pourquoi un réseau LAN/VLAN entre sites distants ?

  • Basculement automatique de l’adresse IP virtuelle avec 2 nœuds dans le même sous-réseau.
  • Bonne bande passante pour la resynchronisation (étape 3) et bonne latence pour la réplication synchrone (typiquement un aller-retour inférieur à 2 ms).

Alternative

  • Utiliser un load balancer pour l’adresse IP virtuelle si les 2 nœuds sont dans 2 sous-réseaux (pris en charge par SafeKit, notamment dans le cloud).
  • Utiliser des solutions de sauvegarde avec réplication asynchrone pour un réseau à forte latence.

Comparaison de SafeKit avec les clusters de Haute Disponibilité (HA) traditionnels

Comment SafeKit se compare-t-il aux solutions de cluster de Haute Disponibilité (HA) traditionnelles ?

Cette comparaison met en évidence les différences fondamentales entre SafeKit et les solutions de cluster de Haute Disponibilité (HA) traditionnelles comme les clusters de basculement, la HA de virtualisation et SQL Always-On. SafeKit est conçu comme une solution logicielle à faible complexité pour la redondance d'applications génériques, contrastant avec la complexité élevée et les exigences de stockage spécifiques (stockage partagé, SAN) typiques des mécanismes HA traditionnels.
Comparaison de SafeKit avec les clusters de Haute Disponibilité (HA) traditionnels
Solutions Complexité Commentaires
Cluster de Basculement (Microsoft) Élevée Stockage Spécifique (stockage partagé, SAN)
Virtualisation (VMware HA) Élevée Stockage Spécifique (stockage partagé, SAN, vSAN)
SQL Always-On (Microsoft) Élevée Seul SQL est redondant, nécessite SQL Enterprise Edition
Evidian SafeKit Faible Le plus simple, générique et uniquement logiciel. Ne convient pas à la réplication de grandes quantités de données.

L'avantage de SafeKit en matière de redondance d'application

SafeKit atteint sa Haute Disponibilité à faible complexité grâce à un simple mécanisme de miroir basé sur logiciel qui élimine le besoin de matériel coûteux et dédié comme un SAN (Storage Area Network). Cela en fait une solution très accessible pour la mise en œuvre rapide de la redondance d'application sans modifications d'infrastructure complexes.

Solutions de Haute Disponibilité (HA) SafeKit : Guides d'Installation Rapide pour Clusters Windows et Linux

Ce tableau présente les solutions de Haute Disponibilité (HA) SafeKit, classées par catégorie d'application et environnement d'exploitation (Bases de données, Serveurs Web, VM, Cloud). Identifiez le module .safe pré-configuré spécifique (par exemple, mirror.safe, farm.safe, et autres) nécessaire pour la réplication en temps réel, l'équilibrage de charge et le basculement automatique des applications critiques sur Windows ou Linux. Simplifiez la configuration de votre cluster HA grâce à des liens directs vers les guides d'installation rapide, chacun incluant un lien de téléchargement pour le module .safe correspondant.

Un module .safe SafeKit est essentiellement un modèle de Haute Disponibilité (HA) pré-configuré qui définit la manière dont une application spécifique sera mise en cluster et protégée par le logiciel SafeKit. En pratique, il contient un fichier de configuration (userconfig.xml) et des scripts de redémarrage.

Solutions de Haute Disponibilité (HA) SafeKit : Guides d'Installation Rapide (avec modules .safe téléchargeables)
Catégorie d'Application Scénario HA (Haute Disponibilité) Technologie / Produit Module .safe Guide d'Installation
Nouvelles Applications Réplication et Basculement en Temps Réel Windows mirror.safe Voir Guide : Réplication Windows
Nouvelles Applications Réplication et Basculement en Temps Réel Linux mirror.safe Voir Guide : Réplication Linux
Nouvelles Applications Équilibrage de Charge Réseau et Basculement Windows farm.safe Voir Guide : Équilibrage de Charge Windows
Nouvelles Applications Équilibrage de Charge Réseau et Basculement Linux farm.safe Voir Guide : Équilibrage de Charge Linux
Bases de données Réplication et Basculement Microsoft SQL Server sqlserver.safe Voir Guide : Cluster SQL Server
Bases de données Réplication et Basculement PostgreSQL postgresql.safe Voir Guide : Réplication PostgreSQL
Bases de données Réplication et Basculement MySQL mysql.safe Voir Guide : Cluster MySQL
Bases de données Réplication et Basculement Oracle oracle.safe Voir Guide : Cluster Basculement Oracle
Bases de données Réplication et Basculement Firebird firebird.safe Voir Guide : Firebird HA
Serveurs Web Équilibrage de Charge et Basculement Apache apache_farm.safe Voir Guide : Équilibrage de Charge Apache
Serveurs Web Équilibrage de Charge et Basculement IIS iis_farm.safe Voir Guide : Équilibrage de Charge IIS
Serveurs Web Équilibrage de Charge et Basculement NGINX farm.safe Voir Guide : Équilibrage de Charge NGINX
VMs et Conteneurs Réplication et Basculement Hyper-V hyperv.safe Voir Guide : Réplication VM Hyper-V
VMs et Conteneurs Réplication et Basculement KVM kvm.safe Voir Guide : Réplication VM KVM
VMs et Conteneurs Réplication et Basculement Docker mirror.safe Voir Guide : Basculement Conteneur Docker
VMs et Conteneurs Réplication et Basculement Podman mirror.safe Voir Guide : Basculement Conteneur Podman
VMs et Conteneurs Réplication et Basculement Kubernetes K3S k3s.safe Voir Guide : Réplication Kubernetes K3S
Cloud AWS Réplication et Basculement en Temps Réel AWS mirror.safe Voir Guide : Cluster Réplication AWS
Cloud AWS Équilibrage de Charge Réseau et Basculement AWS farm.safe Voir Guide : Cluster Équilibrage de Charge AWS
Cloud GCP Réplication et Basculement en Temps Réel GCP mirror.safe Voir Guide : Cluster Réplication GCP
Cloud GCP Équilibrage de Charge Réseau et Basculement GCP farm.safe Voir Guide : Cluster Équilibrage de Charge GCP
Cloud Azure Réplication et Basculement en Temps Réel Azure mirror.safe Voir Guide : Cluster Réplication Azure
Cloud Azure Équilibrage de Charge Réseau et Basculement Azure farm.safe Voir Guide : Cluster Équilibrage de Charge Azure
Sécurité Physique / VMS Réplication et Basculement en Temps Réel Milestone XProtect milestone.safe Voir Guide : Basculement Milestone XProtect
Sécurité Physique / VMS Réplication et Basculement en Temps Réel Nedap AEOS nedap.safe Voir Guide : Basculement Nedap AEOS
Sécurité Physique / VMS Réplication et Basculement en Temps Réel Genetec (SQL Server) sqlserver.safe Voir Guide : Basculement SQL Genetec
Sécurité Physique / VMS Réplication et Basculement en Temps Réel Bosch AMS (Hyper-V) hyperv.safe Voir Guide : Basculement Bosch AMS Hyper-V
Sécurité Physique / VMS Réplication et Basculement en Temps Réel Bosch BIS (Hyper-V) hyperv.safe Voir Guide : Basculement Bosch BIS Hyper-V
Sécurité Physique / VMS Réplication et Basculement en Temps Réel Bosch BVMS (Hyper-V) hyperv.safe Voir Guide : Basculement Bosch BVMS Hyper-V
Sécurité Physique / VMS Réplication et Basculement en Temps Réel Hanwha Vision (Hyper-V) hyperv.safe Voir Guide : Basculement Hanwha Vision Hyper-V
Sécurité Physique / VMS Réplication et Basculement en Temps Réel Hanwha Wisenet (Hyper-V) hyperv.safe Voir Guide : Basculement Hanwha Wisenet Hyper-V
Produits Siemens Réplication et Basculement en Temps Réel Siemens Siveillance suite (Hyper-V) hyperv.safe Voir Guide : HA Siemens Siveillance
Produits Siemens Réplication et Basculement en Temps Réel Siemens Desigo CC (Hyper-V) hyperv.safe Voir Guide : HA Siemens Desigo CC
Produits Siemens Réplication et Basculement en Temps Réel Siemens Siveillance VMS SiveillanceVMS.safe Voir Guide : HA Siemens Siveillance VMS
Produits Siemens Réplication et Basculement en Temps Réel Siemens SiPass (Hyper-V) hyperv.safe Voir Guide : HA Siemens SiPass
Produits Siemens Réplication et Basculement en Temps Réel Siemens SIPORT (Hyper-V) hyperv.safe Voir Guide : HA Siemens SIPORT
Produits Siemens Réplication et Basculement en Temps Réel Siemens SIMATIC PCS 7 (Hyper-V) hyperv.safe Voir Guide : HA SIMATIC PCS 7
Produits Siemens Réplication et Basculement en Temps Réel Siemens SIMATIC WinCC (Hyper-V) hyperv.safe Voir Guide : HA SIMATIC WinCC