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.

Comment fonctionne une adresse IP virtuelle dans un cluster miroir primaire/secondaire avec 2 serveurs dans le même sous-réseau (Windows/Linux) ?

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

Comment fonctionne une adresse IP virtuelle dans un cluster miroir primaire/secondaire avec 2 serveurs dans différents sous-réseaux (Windows/Linux) ?

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.

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 primaire. 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 une adresse IP virtuelle en load balancing dans le même sous-réseau ?

Cas du cluster ferme avec 2 serveurs Windows ou Linux

Comment fonctionne une adresse IP virtuelle dans un cluster de serveurs de type ferme avec équilibrage de charge entre 2 serveurs dans le même sous-réseau (Windows/Linux) ?

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

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

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 de l'application au 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.

Notez que SafeKit ne requiert pas une adresse Ethernet multicast spéciale pour l'équilibrage de charge comme avec NLB sur Windows et fonctionne sur Windows et Linux.

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

Comment fonctionne une adresse IP virtuelle dans un cluster de serveurs de type ferme avec équilibrage de charge entre 2 serveurs dans différents sous-réseaux (Windows/Linux) ?

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 équilibrant la charge au niveau DNS. Mais cette solution ne fonctionne pas dans la plupart des cas. En effet, la condition préalable est que les clients réalisent à chaque fois une résolution DNS pour l'équilibrage de charge et le basculement. La plupart du temps, ils ne le font pas et continuent leur exécution avec l'adresse IP résolue à leur démarrage.

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

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

Partage de charge réseau et reprise sur panne : cliquez sur les boutons bleus

Modules fermes

Windows

Linux

Nouvelle application
IIS-
Apache
Amazon AWS ferme
Microsoft Azure ferme
Google GCP ferme
Cloud ferme générique

Réplication de fichiers temps réel et reprise sur panne : cliquez sur les boutons bleus

Modules miroirs

Windows

Linux

Nouvelle application
Microsoft SQL Server-
Oracle
MySQL
PostgreSQL
Firebird
Hyper-V-
KVM-
Docker-
Elasticsearch-
Milestone XProtect-
Hanwha Wisenet SSM-
Nedap AEOS-
Amazon AWS miroir
Microsoft Azure miroir
Google GCP miroir
Cloud miroir générique

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

Différenciateurs clés d'un cluster miroir avec réplication et reprise sur panne

Cluster miroir d'Evidian SafeKit avec réplication de fichiers temps réel et reprise sur panne

Toutes les fonctionnalités de clustering  All clustering features

Like  Un cluster SafeKit fonctionne sur Windows et Linux sans nécessiter de baies de disques partagées ou répliquées coûteuses

Like  SafeKit offre toutes les fonctionnalités de clustering : réplication de fichiers temps réel synchrone, surveillance des défaillances serveur/réseau/logiciel, redémarrage automatique de l'application, adresse IP virtuelle basculée en cas de panne pour rerouter les clients

Dislike  Ce n'est pas le cas avec les solutions de réplication pure comme la réplication au niveau base de données qui n'implémente que la réplication

Like   La configuration du cluster est très simple et réalisée au moyen de modules applicatifs. Il n'y a pas de contrôleur de domaine ou d'Active Directory à configurer comme avec Microsoft cluster

Like    SafeKit met en œuvre un redémarrage rapide de l'application en cas de panne : autour d'1 mn ou moins (voir RTO/RPO ici)

Dislike  Un redémarrage rapide de l'application n'est pas assuré avec une réplication complète de machines virtuelles. En cas de panne d'un hyperviseur, une machine virtuelle doit être rebootée sur un nouvel hyperviseur avec un temps de redémarrage lié au reboot de l'OS comme avec VMware HA ou Hyper-V cluster

Réplication synchrone  Synchronous replication

Like  La réplication en temps réel est synchrone sans perte de données en cas de panne

Dislike  Ce n'est pas le cas avec une réplication asynchrone

Retour d'un serveur tombé en panne totalement automatisé (failback)  Automatic failback

Like  Suite à une panne lorsqu'un serveur reboot, le retour du serveur tombé en panne se fait de manière totalement automatique dans le cluster avec une resynchronisation de ses données et sans arrêter l'application sur le seul serveur restant

Dislike  Ce n'est pas le cas avec la plupart des solutions de réplication particulièrement celles avec une réplication au niveau base de données. Des opérations manuelles sont requises pour resynchroniser le serveur défaillant. Il peut être même nécessaire d'arrêter l'application sur le seul serveur restant

Réplication de n'importe quel type de données 

Like  La réplication fonctionne pour les bases de données mais aussi pour n'importe quel fichier qui doit-être répliqué

Dislike  Ce n'est pas le cas pour la réplication au niveau base de données

Réplication de fichiers vs réplication de disque  File replication vs disk replication

Like  La réplication est basée sur des répertoires de fichiers qui peuvent être localisés n'importe où (même dans le disque système)

Disike  Ce n'est pas le cas avec la réplication de disque où une configuration spéciale de l'application est nécessaire pour placer les données applicatives dans un disque spécial

Réplication de fichiers vs disque partagé  File replication vs shared disk

Like  Les serveurs peuvent être placés dans deux sites distants

Dislike  Ce n'est pas le cas avec les solutions à disque partagé

Sites distants et adresse IP virtuelle  Remote sites

Like  Toutes les fonctionnalités de clustering SafeKit fonctionnent pour 2 serveurs sur des sites distants. Les performances de la réplication dépendent de la latence d'interconnexion pour la réplication synchrone en temps réel et de la bande passante pour la resynchronisation des données sur un serveur défaillant.

Like   Si les deux serveurs sont connectés au même réseau IP via un réseau local étendu entre deux sites distants, l'adresse IP virtuelle de SafeKit fonctionne avec une redirection au niveau 2

Like   Si les deux serveurs sont connectés à deux réseaux IP différents entre deux sites distants, l'adresse IP virtuelle peut être configurée au niveau d'un load balancer. SafeKit propose un "health check": le load balancer est configuré avec une URL gérée par SafeKit qui renvoie OK sur le serveur primaire et NOT FOUND sinon. Cette solution est implémentée pour SafeKit dans le Cloud, mais elle peut être également mise en œuvre avec un load balancer sur site

Quorum  Quorum

Like   Avec des sites distants, la solution fonctionne avec seulement 2 serveurs et pour le quorum (isolation réseau), un simple split brain checker vers un routeur est offert pour supporter une seule exécution

Dislike  Ce n'est pas le cas pour la plupart des solutions de clustering où un 3ième serveur est nécessaire pour le quorum

Cluster actif/actif  Active active mirror cluster

Like  Le serveur secondaire n'est pas dédié au redémarrage du serveur primaire. Le cluster peut être actif-actif en exécutant deux modules miroirs différents

Dislike  Ce n'est pas le cas avec un système fault-tolerant dans lequel le secondaire est dédié à l'exécution de la même application synchronisée au niveau instruction

Solution de haute disponibilité uniforme  Uniform high availability solution

Like  SafeKit implémente un cluster miroir avec une réplication et une reprise sur panne. Mais il implémente aussi un cluster ferme avec load balancing et reprise sur panne. Ainsi une architecture N-tiers peut-être rendue hautement disponible et load balancée avec la même solution sur Windows et Linux (même installation, configuration, administration avec la console SafeKit ou les commandes en ligne). Ceci est unique sur le marché

Dislike  Ce n'est pas le cas avec une architecture mixant des technologies différentes pour le load balancing, la réplication et la reprise sur panne

Cluster ferme d'Evidian SafeKit avec load balancing et reprise sur panne

Pas de load balancer, ni de serveur proxy dédié, ni d'adresse Ethernet multicast spéciale  No load balancer or dedicated proxy servers

Like   La solution ne nécessite pas de load balancer, ni de serveur proxy en amont de la ferme pour implémenter le load balancing. SafeKit est installé directement sur les serveurs applicatifs à load balancer. Le load balancing est basé sur une adresse IP virtuelle/adresse MAC Ethernet standard et fonctionne avec des serveurs physiques et des machines virtuelles sur Windows et Linux sans configuration réseau spéciale

Dislike  Ce n'est pas le cas avec les load balancers réseau

Dislike  Ce n'est pas le cas avec les proxys dédiés sur Linux

Dislike  Ce n'est pas le cas avec une adresse Ethernet multicast spéciale sur Windows

Toutes les fonctionnalités de clustering  All clustering features

Like   La solution inclut toutes les fonctionnalités de clustering : adresse IP virtuelle, load balancing sur adresse IP client ou sur sessions, surveillance des défaillance serveurs/réseaux/logicielles, redémarrage automatique de l'application avec un temps de reprise rapide, une option de réplication avec un module miroir

Dislike  Ce n'est pas le cas avec les autres solutions de load balancing. Elles sont capables de réaliser le load balancing mais elle n'inclut pas une solution de clustering complète avec des scripts de redémarrage et un redémarrage automatique de l'application en cas de défaillance. Elles n'offrent pas l'option de réplication

Like   La configuration du cluster est très simple et réalisée au moyen de modules applicatifs. Il n'y a pas de contrôleur de domaine et d'Active Directory à configurer sur Windows. La solution fonctionne sur Windows et Linux

Sites distants et adresse IP virtuelle  Remote sites

Like   Si les serveurs sont connectés au même réseau IP via un réseau local étendu entre des sites distants, l’adresse IP virtuelle de SafeKit fonctionne avec un équilibrage de charge au niveau 2

Like   Si les serveurs sont connectés à des réseaux IP différents entre des sites distants, l'adresse IP virtuelle peut être configurée au niveau d'un load balancer. SafeKit propose un "health check": le load balancer est configuré avec une URL gérée par SafeKit qui renvoie OK sur les serveurs UP et NOT FOUND sinon. Cette solution est implémentée pour SafeKit dans le Cloud mais elle peut être également mise en œuvre avec un load balancer sur site. Ainsi, vous pouvez profiter de toutes les fonctionnalités de clustering de SafeKit, y compris une administration facile du cluster via la console Web de SafeKit

Solution de haute disponibilité uniforme  Uniform high availability solution

Like  SafeKit implémente un cluster ferme avec load balancing et reprise sur panne. Mais il implémente aussi un cluster miroir avec réplication et reprise sur panne. Ainsi une architecture N-tiers peut-être rendue hautement disponible et load balancée avec la même solution sur Windows et Linux (même installation, configuration, administration avec la console SafeKit ou avec les commandes en ligne). Ceci est unique sur le marché

Dislike  Ce n'est pas le cas avec une architecture mixant des technologies différentes pour le load balancing, la réplication et la reprise sur panne

Comparaison d'architectures de haute disponibilité

Fonctionnalité

Cluster SafeKit

Autres clusters

Cluster logiciel vs cluster matériel  Un cluster simple avec SafeKit installé sur deux serveurs
Like  Un cluster logiciel simple avec le package SafeKit installé sur deux serveurs
Cluster matériel avec stockage externe Boîtiers de load balancing ou serveurs proxy dédiés

Dislike  Un cluster matériel complexe avec du stockage externe ou des boîtiers de load balancing
Cluster de type "shared nothing"" vs cluster à disque partagé  SafeKit est un cluster de type shared-nothing: simple à déployer même dans des sites distants
Like  SafeKit est un cluster sans partage de type "shared-nothing": simple à déployer même sur des sites distants
Un cluster à disque partagé est complexe à déployer
Dislike  Un cluster à disque partagé est complexe à déployer
Haute disponibilité applicative vs Haute disponibilité de machines virtuelles complètes 
Like  La haute disponibilité applicative supporte les pannes matérielles et logicielles avec un temps de reprise rapide (RTO autour d'1 mn ou moins)
Upgrade en douceur de l'application et de l'OS possible serveur par serveur (les versions N et N+1 peuvent coexister)
La haute disponibilité de machines virtuelles (VM) complètes supporte seulement les pannes matérielles avec un reboot de la VM et un temps de reprise indéfini
Dislike  La haute disponibilité de machines virtuelles complètes (VM) supporte seulement les pannes matérielles avec un reboot de la VM et un temps de reprise dépendant du reboot de l'OS.
Upgrade en douceur impossible
Haute disponibilité vs tolérance aux fautes  SafeKit high availability vs fault-tolerance

Like  Aucun serveur dédié avec SafeKit. Chaque serveur peut être le serveur de reprise de l'autre serveur.
Exception logicielle avec redémarrage dans un autre environnement OS.
Upgrade en douceur de l'application et de l'OS possible serveur par serveur (les versions N et N+1 peuvent coexister)
Fault tolerance system

Dislike  Serveur secondaire dédié à l'exécution de la même application synchronisée au niveau instruction.
Exception logicielle sur les 2 serveurs en même temps.
Upgrade en douceur impossible
Réplication synchrone vs réplication asynchrone 
Like  SafeKit met en œuvre une réplication temps réel synchrone sans perte de données en cas de panne
Avec une réplication asynchrone, il y a une perte de données en cas de panne
Dislike  Avec une réplication asynchrone, il y a une perte de données en cas de panne
Réplication de fichiers au niveau octet vs réplication de disque au niveau du bloc  SafeKit met en œuvre la réplication de fichiers au niveau octet et se configure simplement avec des répertoires à répliquer même sur le disque système
Like  SafeKit met en œuvre la réplication de fichiers temps réel au niveau octet et se configure simplement avec les répertoires applicatifs à répliquer même dans le disque système
La réplication de disque au niveau du bloc est complexe et nécessite de mettre les données de l'application dans un disque spécial
Dislike  La réplication de disque au niveau bloc est complexe à configurer et nécessite de mettre les données de l'application dans un disque spécial
Heartbeat, reprise sur panne et quorum pour éviter 2 serveurs maîtres  Pour éviter 2 serveur maîtres, SafeKit propose un simple split brain checker configuré sur un routeur
Like  Pour éviter 2 serveur maîtres, SafeKit propose un simple "split brain checker" configuré sur un routeur
Pour éviter 2 serveur maîtres, les autres clusters demande une configuration complexe avec une 3ième machine, un disque de quorum spécial, un reset hardware distant
Dislike  Pour éviter 2 serveur maîtres, les autres clusters demandent une configuration complexe avec une 3ième machine, un disque de quorum spécial, une interconnexion spéciale
Adresse IP virtuelle
primaire/secondaire, load balancing réseau, basculement sur panne 
Aucune configuration réseau particulière n'est requise dans un cluster SafeKit pour l'équilibrage de la charge réseau
Like  Aucun serveur proxy dédié et aucune configuration réseau particulière ne sont requis dans un cluster SafeKit pour mettre en œuvre des adresses IP virtuelles
Une configuration réseau spéciale est requise dans d'autres clusters pour l'équilibrage de la charge réseau
Dislike  Une configuration réseau spéciale est requise dans d'autres clusters pour mettre en œuvre des adresses IP virtuelles. A noter que SafeKit propose un vérificateur d'état adapté aux équilibreurs de charge

Démonstrations de solutions de haute disponibilité avec SafeKit

Webinaire SafeKit

Ce webinaire présente en 10 minutes Evidian SafeKit.

Dans ce webinaire, vous comprendrez :

  • les clusters ferme et miroir
  • les économies par rapport aux solutions de clustering matériel
  • les meilleurs cas d'utilisation
  • le processus d'intégration d'une nouvelle application

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