eviden-logo

Evidian > Produits > SafeKit : Logiciel de haute disponibilité simple et économique > Comment fonctionne une adresse IP virtuelle (Windows/Linux) ?

Comment fonctionne une adresse IP virtuelle (Windows/Linux) ?

Evidian SafeKit

Comment fonctionne une adresse IP virtuelle primaire/secondaire dans le même sous-réseau ?

Cas du cluster miroir avec 2 serveurs Windows ou Linux

Adresse IP virtuelle primaire/secondaire dans le même sous-réseau

Lorsque les deux serveurs d'un cluster miroir sont dans le même sous-réseau, l'adresse IP virtuelle est définie sur la carte Ethernet du serveur primaire (via l'aliasing IP). L'adresse IP virtuelle est une troisième adresse IP venant s'ajouter aux deux adresses IP physiques du serveur 1 et du serveur 2. Notez qu'avec SafeKit, plusieurs adresses IP virtuelles peuvent être définies dans le cluster sur la même carte Ethernet ou sur différentes cartes Ethernet.

Si le serveur 1 est le serveur primaire, l'adresse IP virtuelle est associée à l'adresse MAC Ethernet du serveur 1 dans les caches ARP des clients : mac1 dans la figure. En cas de panne du serveur 1 et de basculement sur le serveur 2, SafeKit envoie automatiquement un ARP gratuitous pour rediriger les caches ARP des clients avec l'adresse Ethernet mac2 du serveur 2. Ainsi, les clients sont reconnectés au serveur 2 exécutant l'application qui a été redémarrée sur ce serveur par les mécanismes de clustering SafeKit.

Lorsque deux serveurs se trouvent sur des sites distants, les algorithmes d'adresse IP virtuelle précédents fonctionnent s'ils sont connectés dans le même sous-réseau via un LAN/VLAN étendu. C'est le cas d'utilisation le plus simple pour des sites distants.

Comment fonctionne une adresse IP virtuelle primaire/secondaire dans différents sous-réseaux ?

Cas du cluster miroir avec 2 serveurs Windows ou Linux

Adresse IP virtuelle primaire/secondaire dans différents sous-réseaux

Si les serveurs se trouvent dans différents sous-réseaux, l'adresse IP virtuelle peut être définie au niveau d'un équilibreur de charge. L'équilibreur de charge est configuré avec les deux adresses IP physiques des deux serveurs dans leurs sous-réseaux respectifs. Et l'équilibreur de charge achemine le trafic en fonction d'un vérificateur d’état (health check) vers les serveurs.

Le vérificateur d’état est basée sur une URL gérée par les serveurs SafeKit et répondant OK ou NOT FOUND selon l'état d'un serveur. Si le serveur est SECOND, le vérificateur d’état SafeKit renvoie NOT FOUND. Ainsi, aucun trafic n'est envoyé par l'équilibreur de charge au serveur secondaire. Et si le serveur est PRIM, le vérificateur d’état SafeKit renvoie OK. Ainsi, tout le trafic est envoyé par l'équilibreur de charge au serveur primaire. En cas de basculement, SafeKit modifie ses réponses au vérificateur d’état. Ainsi, le trafic de l'équilibreur de charge est redirigé.

Cette technique est celle utilisée dans les solutions SafeKit de type miroir dans le Cloud : Amazon AWS, Microsoft Azure et Google GCP.

Veuillez noter que SafeKit ne fournit pas de load balancer ; il propose uniquement des vérifications d’état. Le load balancer doit être fourni par l’infrastructure réseau entre les deux sous-réseaux.

Si nécessaire, il pourra être discuté avec l’équipe réseau de la possibilité de configurer un LAN étendu entre les deux sous-réseaux plutôt que de mettre en place un load balancer. De plus, lorsqu’un load balancer est utilisé, il est essentiel de s’assurer que l’application prend en charge les connexions des clients via l’adresse IP virtuelle du load balancer et qu’elle gère correctement les connexions arrivant via l’adresse IP physique traduite par le load balancer.

Ce problème ne se pose pas avec un LAN étendu, qui offre également une bande passante suffisante et une latence appropriée pour une réplication synchrone en temps réel sans perte de données.

Comment fonctionne une adresse IP virtuelle en load balancing dans le même sous-réseau ?

Cas du cluster ferme avec 2 serveurs Windows ou Linux

Adresse IP virtuelle avec équilibrage de charge dans le même sous-réseau

Dans un cluster ferme avec équilibrage de charge, une adresse IP virtuelle est requise pour équilibrer la charge des requêtes clientes et pour rediriger les clients en cas de basculement sur panne. Dans cet exemple, nous considérons seulement deux serveurs mais la solution fonctionne avec plus de deux serveurs.

Lorsque les deux serveurs du cluster sont dans le même sous-réseau, l'adresse IP virtuelle est définie sur la carte Ethernet des deux serveurs (alias IP).

Dans le cache ARP des clients, l'adresse IP virtuelle est associée à l'adresse MAC Ethernet d'un serveur: mac1 du serveur 1 sur la figure. Un filtre à l'intérieur du noyau du serveur 1 reçoit le trafic et le répartit selon l'identité des paquets client (adresse IP client, port TCP client).

En cas de panne du serveur 1, SafeKit envoie un ARP gratuitous pour rediriger les caches ARP des clients avec l'adresse Ethernet mac2 du serveur 2. Ainsi, les clients sont reconnectés au serveur 2.

Lorsque deux serveurs se trouvent sur des sites distants, les algorithmes d'adresse IP virtuelle précédents fonctionnent s'ils sont connectés dans le même sous-réseau via un LAN/VLAN étendu. C'est le cas d'utilisation le plus simple pour des sites distants.

Comment fonctionne une adresse IP virtuelle en load balancing dans différents sous-réseaux

Cas du cluster ferme avec 2 serveurs Windows ou Linux

Adresse IP virtuelle avec équilibrage de charge dans différents sous-réseaux

Si les serveurs se trouvent dans différents sous-réseaux, l'adresse IP virtuelle peut être définie au niveau d'un équilibreur de charge. L'équilibreur de charge est configuré avec les deux adresses IP physiques des deux serveurs dans leurs sous-réseaux respectifs. Et l'équilibreur de charge achemine le trafic en fonction des règles d'équilibrage de la charge (adresse IP du client, port TCP du client) et en fonction d'un vérificateur d'état des serveurs.

Le vérificateur d'état est basée sur une URL gérée par les serveurs SafeKit et répondant OK ou NOT FOUND selon l'état d'un serveur. Si le serveur est UP, le vérificateur d'état SafeKit renvoie OK, sinon NOT FOUND. En cas de basculement, SafeKit ne répond plus OK au vérificateur d'état sur le serveur défaillant. Ainsi, le trafic de l'équilibreur de charge est redirigé.

Cette technique est celle utilisée dans les solutions SafeKit de type ferme dans le Cloud : Amazon AWS, Microsoft Azure et Google GCP.

Notez qu'il existe une autre solution en redirigeant au niveau DNS. Mais cette solution ne fonctionne pas dans la plupart des cas. En effet, la condition préalable est que les clients effectuent une résolution DNS après un basculement pour être redirigés vers le nouveau serveur. La plupart du temps, ils ne le font pas et continuent leur exécution avec l'adresse IP résolue à leur démarrage.

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.

Comment fonctionne le cluster en ferme SafeKit?

Adresse IP virtuelle dans un cluster en ferme

Comment le cluster en ferme Evidian SafeKit met en œuvre l'équilibrage de charge réseau et le basculement

Sur la figure précédente, l'application s'exécute sur les 3 serveurs (3 est un exemple, il peut y en avoir 2 ou plus). Les utilisateurs sont connectés à une adresse IP virtuelle.
L'adresse IP virtuelle est configurée localement sur chaque serveur du cluster en ferme.
Le trafic entrant vers l'adresse IP virtuelle est reçu par tous les serveurs et réparti entre eux par un filtre réseau à l'intérieur du noyau de chaque serveur.
SafeKit détecte les pannes matérielles et logicielles, reconfigure les filtres réseau en cas de panne et offre des vérificateurs d'application et des scripts de récupération configurables.

Équilibrage de charge dans un filtre réseau

L'algorithme d'équilibrage de charge réseau à l'intérieur du filtre réseau est basé sur l'identité des paquets clients (adresse IP client, port TCP client). En fonction de l'identité du paquet client entrant, un seul filtre dans un serveur accepte le paquet; les autres filtres dans les autres serveurs le rejettent.
Une fois qu'un paquet est accepté par le filtre sur un serveur, seuls le CPU et la mémoire de ce serveur sont utilisés par l'application qui répond à la requête du client. Les messages de sortie sont envoyés directement du serveur d'application au client.
Si un serveur tombe en panne, le protocole de battement de cœur de la ferme reconfigure les filtres dans le cluster d'équilibrage de charge réseau pour rééquilibrer le trafic sur les serveurs disponibles restants.

Applications avec ou sans état (Stateful ou Stateless)

Avec une application avec état (stateful), il y a une affinité de session. Le même client doit être connecté au même serveur sur plusieurs sessions TCP pour récupérer son contexte sur le serveur. Dans ce cas, la règle d'équilibrage de charge SafeKit est configurée sur l'adresse IP du client. Ainsi, le même client est toujours connecté au même serveur sur plusieurs sessions TCP. Et différents clients sont répartis sur différents serveurs de la ferme.
Avec une application sans état (stateless), il n'y a pas d'affinité de session. Le même client peut être connecté à différents serveurs de la ferme sur plusieurs sessions TCP. Il n'y a aucun contexte stocké localement sur un serveur d'une session à l'autre. Dans ce cas, la règle d'équilibrage de charge SafeKit est configurée sur l'identité de la session client TCP. Cette configuration est celle qui est la meilleure pour répartir les sessions entre les serveurs, mais elle nécessite un service TCP sans affinité de session.

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

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.