Montée en charge et haute disponibilité d'une application critique

Le logiciel SafeKit permet de réaliser une architecture en load balancing dans un cluster actif-actif de type ferme. Le load balancing SafeKit fournit une solution simple à la montée en charge et à la haute disponibilité d'applications critiques.

Dans un cluster actif-actif avec load balancing, la même application s'exécute sur chacun des serveurs et la charge est distribuée par répartition de l'activité réseau sur les différents serveurs de la ferme. Le load balancing est adaptée aux applications frontales comme des services web.

Le logiciel SafeKit ne nécessite pas de serveurs dédiés au load balancing et il économise les coûts liés aux load balancers réseau.

Load balancing dans un cluster actif-actif

Le load balancing réseau est très efficacement mis en œuvre par un driver réseau qui filtre les paquets en entrée. Ce driver fonctionne sur Windows et Linux (même sur les versions Windows pour PCs).

SafeKit fournit un module générique ferme pour Windows et Linux afin construire un cluster avec load balancing. Vous pouvez écrire votre propre module applicatif en partant du module générique ferme de SafeKit. Apache, Microsoft IIS sont des exemples de modules applicatifs de type ferme.

Combiné avec le cluster ferme, vous pouvez aussi mettre en œuvre un cluster miroir avec réplication temps réel et reprise sur panne.

Comment fonctionne un cluster ferme avec le logiciel SafeKit ?

Principe d'une adresse IP virtuelle avec load balancing réseau

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 chargé dans le noyau du système d'exploitation de chaque serveur.

L'algorithme de load balancing dans le filtre 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.

Notez qu'une comparaison entre Microsoft NLB et le load balancing réseau de SafeKit est disponible ici. Et notez que le load balancing réseau de Safekit fonctionne non seulement avec Windows (en incluant les versions Windows pour PCs) mais aussi avec Linux.

Critères de load balancing pour les services web à état et sans état

Avec un service à état, il y a affinité de session. Le même client doit être connecté sur le même serveur sur plusieurs sessions HTTP/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. Cette configuration est à choisir pour les services web à état lorsqu'il y a affinité de sessions.

Avec un service web 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 HTTP/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.

Si vous êtes également intéressé par la réplication de données temps réel et continue dans un cluster actif-passif de type miroir, lisez cet article.

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

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 pannes de serveurs, surveillance des pannes réseaux, surveillance des pannes 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 d'un module de haute disponibilité applicatif. 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 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

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  La solution inclut toutes les fonctionnalités de clustering: surveillance de la défaillance des serveurs, surveillance de la défaillance réseau, surveillance de la défaillance logicielle, redémarrage automatique de l'application avec un temps de reprise rapide, une adresse IP virtuelle basculée en cas de panne pour rerouter automatiquement 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

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 inconnu

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

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

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

Comparaison d'architectures de haute disponibilité

(cliquez sur la fonctionnalité pour plus d'information)

FonctionnalitéCluster SafeKitAutres clusters
Cluster logiciel vs cluster matériel Un cluster simple avec SafeKit installé sur deux serveurs
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

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
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
Un cluster à disque partagé est complexe à déployer
Haute disponibilité applicative vs Haute disponibilité de machines virtuelles complètes
La haute disponibilité applicative de SafeKit supporte les pannes matérielles, logicielles et les erreurs humaines avec un temps de reprise rapide
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
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 indéfini si le reboot OS dysfonctionne
Réplication synchrone vs réplication asynchrone
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
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
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
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
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
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
Load balancing réseau Aucune configuration réseau particulière n'est requise dans un cluster SafeKit pour l'équilibrage de la charge réseau
Aucun serveur dédié et aucune configuration réseau particulière ne sont requis dans un cluster SafeKit pour l'équilibrage de la charge réseau
Une configuration réseau spéciale est requise dans d'autres clusters pour l'équilibrage de la charge réseau
Une configuration réseau spéciale est requise dans d'autres clusters pour l'équilibrage de la charge réseau

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

Modules de haute disponibilité miroir et ferme de SafeKit

Les architectures HA cluster de SafeKit

Modules de haute disponibilité gratuits de type ferme

Déployez un module ferme sur N serveurs.
Et mettez en œuvre un load balancing réseau dans un cluster actif-actif avec reprise applicative automatique sur panne.
La cible est une application avec des services Web dont la charge est à équilibrer entre plusieurs serveurs et avec un redémarrage automatique en cas de défaillance.

Cliquez sur les boutons bleus pour une description complète de la solution et une procédure d'installation étape par étape

Modules fermes (partage de charge et reprise sur panne)

Windows

Linux

Module IIS-
Module Apache
Module ferme générique pour n'importe quelle application
Amazon AWS ferme
Microsoft Azure ferme
Google GCP ferme
Cloud ferme générique

Modules de haute disponibilité gratuits de type miroir

Déployez un module miroir sur 2 serveurs.
Et mettez en œuvre une réplication temps réel et continue avec reprise applicative automatique sur panne dans un cluster actif-passif.
La cible est une application avec une base de données ou des fichiers plats à répliquer et avec un redémarrage automatique en cas de panne.

Cliquez sur les boutons bleus pour une description complète de la solution et une procédure d'installation étape par étape

Modules miroirs (réplication et reprise sur panne)

Windows

Linux

Microsoft SQL Server-
Oracle
MySQL
PostgreSQL
Firebird
Hyper-V-
Milestone XProtect (basé sur Microsoft SQL Server)-
Hanwha Wisenet SSM (basé sur PostgreSQL Server)-
Module miroir générique pour n'importe quelle application
Amazon AWS miroir
Microsoft Azure miroir
Google GCP miroir
Cloud miroir générique

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