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

Dans un cluster miroir, une adresse IP virtuelle primaire/secondaire est requise pour rediriger les clients en cas de basculement sur panne.

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

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 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.

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.

SafeKit : une solution idéale pour une application partenaire

Cette solution indépendante de la plateforme est idéale pour un partenaire ayant une application critique et qui souhaite proposer une option de haute disponibilité simple à déployer auprès de nombreux clients.

Elle est également reconnue comme la plus simple à mettre en œuvre par nos partenaires.

Comment fonctionne le cluster miroir de SafeKit ?

Etape 1. Réplication en temps réel

Le serveur 1 (PRIM) exécute l'application. Les utilisateurs sont connectés à une adresse IP virtuelle. Seules les modifications faites par l'application à l'intérieur des fichiers sont répliquées en continue à travers le réseau.

Réplication de données temps réel reprise sur panne

La réplication est synchrone sans perte de données en cas de panne contrairement à une 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 du disque. Les répertoires peuvent se trouver sur le disque système.

Etape 2. Basculement automatique

Lorsque le serveur 1 est défaillant, SafeKit bascule l'adresse IP virtuelle sur le serveur 2 et redémarre automatiquement l'application. L'application retrouve les fichiers répliqués à jour sur le serveur 2.

L'application poursuit son exécution sur le serveur 2 en modifiant localement ses fichiers qui ne sont plus répliqués vers le serveur 1.

Basculement automatique dans un cluster miroir

Le temps de basculement est égal au temps de détection de la panne (30 secondes par défaut) et au temps de relance de l'application.

Etape 3. Réintégration après panne

A la reprise après panne du serveur 1 (réintégration du serveur 1), SafeKit resynchronise automatiquement les fichiers de ce serveur à partir de l'autre serveur.

Seuls les fichiers modifiés sur le serveur 2 pendant l'inactivité du serveur 1 sont resynchronisés.

Réintégration après panne dans un cluster miroir

La réintégration du serveur 1 se fait sans arrêter l'exécution de l'application sur le serveur 2.

Etape 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 en haute disponibilité avec l'application qui s'exécute sur le serveur 2 et avec réplication temps réel des modifications vers le serveur 1.

Retour à la normale d'un cluster actif-passif

Si l'administrateur souhaite que son application s'exécute en priorité sur le serveur 1, il peut exécuter une commande de basculement, soit manuellement à un moment opportun, soit automatiquement par configuration.

Utilisation typique avec SafeKit

Pourquoi une réplication de quelques Tera-octets ?

Temps de resynchronisation après 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 en fonction des performances d'écriture disque.

Alternative

  • Pour un grand volume de données, utilisez un stockage partagé externe avec une solution de clustering matériel.
  • Plus cher, plus complexe.

Pourquoi une réplication < 1 000 000 fichiers ?

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

Alternative

  • Placez les nombreux fichiers à répliquer sur 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 < 25 VMs répliquées ?

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

Alternative

  • Utilisez un stockage partagé externe et une autre solution de clustering de VMs.
  • Plus cher, plus complexe.

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

Alternative

  • Utilisez un équilibreur de charge pour l'adresse IP virtuelle si les 2 nœuds sont dans 2 sous-réseaux (supporté par SafeKit, notamment dans le cloud).
  • Utilisez des solutions de backup avec réplication asynchrone pour un réseau à latence élevée.

Comment fonctionne le cluster ferme de SafeKit ?

Adresse IP virtuelle dans un cluster feme

Equilibrage de charge et haute disponibilité

Sur la figure précédente, l'application tourne 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 de la ferme.

Le trafic du réseau à destination de l'adresse IP virtuelle est reçu par l'ensemble des serveurs. Puis ce trafic est distribué entre les serveurs grâce à un filtre réseau chargé dans le noyau du système d'exploitation de chaque serveur.

SafeKit détecte les pannes matérielles et logicielles, reconfigure les filtres réseau en cas de panne et offre des checkers et des scripts de reprise applicatifs configurables.

Partage de charge dans un filtre réseau

L'algorithme de load balancing dans le filtre réseau est basé sur l'identité des paquets client (adresse IP client, port TCP client). Suivant l'identité du paquet client en entrée, seul un filtre dans un serveur accepte le paquet ; les autres filtres dans les autres serveurs le rejettent.

Une fois un paquet 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 retour de l'application sont envoyés directement du serveur vers le client.

Lorsqu'un serveur est défaillant, le protocole de gestion du groupe des serveurs en vie reconfigure les filtres pour redistribuer le trafic vers les serveurs disponibles.

Applications à état et sans état

Avec une application à état, il y a affinité de session. Le même client doit être connecté sur le même serveur sur plusieurs sessions TCP pour retrouver son contexte sur le serveur. Dans ce cas, la règle de load balancing SafeKit est configurée sur l'adresse IP des clients. Ainsi, le même client est toujours connecté sur le même serveur sur plusieurs sessions TCP. Et différents clients sont répartis sur les différents serveurs de la ferme.

Avec une application sans état, il n'y a pas d'affinité de session. Le même client peut être connecté sur des serveurs différents dans la ferme lors de sessions TCP successives. Dans ce cas, la règle de load balancing SafeKit est configurée sur l'identité de la session TCP du client. Cette configuration est celle qui répartit le mieux les sessions entre les serveurs mais elle requiert un service TCP sans affinité de session.

Modules SafeKit pour des solutions de haute disponibilité plug&play

SafeKit Modules for Plug&Play High Availability Solutions

Partage de charge réseau et reprise sur panne

Windows farm

Linux farm

Generic farm   > Generic farm   >
Microsoft IIS   > -
NGINX   >
Apache   >
Amazon AWS farm   >
Microsoft Azure farm   >
Google GCP farm   >
Other cloud   >

Architectures de clustering avancée

Plusieurs modules peuvent être déployés dans le même cluster. Ainsi, des architectures de clustering avancées peuvent être mises en œuvre :

Différentiateurs de la solution de haute disponibilité SafeKit par rapport à la concurrence

Démonstrations de solutions de haute disponibilité avec SafeKit

Webinaire SafeKit

Ce webinaire présente en 2 minutes Evidian SafeKit.

Dans ce webinaire, vous comprendrez les clusters ferme et miroir de SafeKit.

Cluster Microsoft SQL Server

Cette vidéo montre la configuration d'un module miroir avec réplication temps réel synchrone et reprise sur panne.

La réplication de fichiers et le basculement sont configurés pour Microsoft SQL Server mais fonctionnent de la même manière pour d'autres bases de données.

Essai gratuit ici

Cluster Apache

Cette vidéo montre une configuration d'un module ferme avec équilibrage de charge et reprise sur panne.

L'équilibrage de charge et le basculement sont configurés pour Apache mais fonctionnent de la même manière pour d'autres services Web.

Essai gratuit ici

Cluster Hyper-V

Cette vidéo montre un cluster Hyper-V avec des réplications complètes de machines virtuelles.

Les machines virtuelles peuvent s'exécuter sur les deux serveurs Hyper-V et elles sont redémarrées en cas de panne.

Essai gratuit ici

Formation à SafeKit

Introduction

  1. Introduction / pptx

    • Fonctionnalités
    • Architectures
    • Avantages distinctifs
  2. Compétition / pptx

    • Cluster matériel vs logiciel
    • Réplication synchrone vs asynchrone
    • Réplications de fichiers vs disques
    • Haute disponibilité vs tolérance aux fautes
    • Load balancing matériel vs logiciel
    • HA de machines virtuelles vs applications

Installation, configuration, CLI

  1. Installation / pptx

    • Installation du package
    • Configuration des nœuds
    • Configuration du cluster
    • Upgrade
  2. Console web / pptx

    • Configuration du cluster
    • Onglet Configuration
    • Onglet Contrôle
    • Onglet Supervision
    • Onglet Configuration avancée
  3. Ligne de commande / pptx

    • Installation silencieuse
    • Administration du cluster
    • Administration du module
    • Command line interface

Configuration avancée

  1. Module miroir / pptx

    • userconfig.xml + restart scripts
    • Heartbeat (<hearbeat>)
    • Virtual IP address (<vip>)
    • Real-time file replication (<rfs>)
  2. Module ferme / pptx

    • userconfig.xml + restart scripts
    • Farm configuration (<farm>)
    • Virtual IP address (<vip>)
  3. Checkers / pptx

    • Failover machine (<failover>)
    • Process monitoring (<errd>)
    • Network and duplicate IP checkers
    • Custom checker (<custom>)
    • Split brain checker (<splitbrain>)
    • TCP, ping, module checkers

Support

  1. Outils pour le support / pptx

    • Analyse des snaphots
  2. Support Evidian / pptx

    • Récupérer les clés permanentes
    • S'enregistrer sur support.evidian.com
    • Call desk

Documentation

  1. Documentation technique

  2. Documentation d'avant vente