Apache : le cluster le plus simple avec équilibrage de charge et haute disponibilité
Evidian SafeKit
La solution apportée à Apache
Evidian SafeKit apporte l'équilibrage de charge et la reprise sur panne à Apache.
Cet article explique comment implémenter rapidement un cluster Apache sans répartiteurs de charge réseau, sans serveurs proxy dédiés et sans adresses MAC spéciales. SafeKit s'installe directement sur les serveurs Apache.
Un produit générique
Notez que SafeKit est un produit générique sous Windows et Linux.
Vous pouvez implémenter avec SafeKit la réplication en temps réel et le basculement de n'importe quel répertoire de fichiers et service, base de données, machines virtuelles Hyper-V ou KVM complètes, applications Docker, Podman, K3S, Cloud (voir la liste des modules).
Une solution complète
SafeKit résout :
- les pannes matérielles (20 % des problèmes), y compris la panne complète d'une salle informatique,
- les pannes logicielles (40 % des problèmes), y compris le redémarrage de processus critiques,
- et les erreurs humaines (40 % des problèmes) grâce à sa facilité d'utilisation et sa console web.
Partenaires, le succès avec SafeKit
Cette solution indépendante de la plateforme est idéale pour un partenaire revendant une application critique et qui souhaite proposer une option de redondance et de haute disponibilité simple à déployer auprès de nombreux clients.
Avec de nombreuses références dans de nombreux pays gagnées par des partenaires, SafeKit s'est avéré être la solution la plus simple à mettre en œuvre pour la redondance et la haute disponibilité des logiciels de gestion des bâtiments, vidéosurveillance, contrôle d'accès, systèmes SCADA...
Logiciel de gestion des bâtiments (BMS)
Logiciel de gestion vidéo (VMS)
Contrôle d'accès électroniques (EACS)
Logiciels SCADA (Industrie)
Adresse IP virtuelle dans un cluster feme
Sur la figure précédente, l'application Apache 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 Apache 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 Apache à é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 Apache 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.
Prérequis
- Apache doit être installé sur 2 nœuds ou plus (machines virtuelles ou serveurs physiques).
Installation du package sous Windows
-
Téléchargez la version gratuite de SafeKit sur 2 nœuds Windows (ou plus).
Remarque : la version gratuite inclut toutes les fonctionnalités de SafeKit. À la fin de l'essai, vous pouvez activer des clés de licence permanentes sans désinstaller le package.
-
Pour ouvrir le pare-feu Windows, sur les deux nœuds démarrez un powershell en tant qu'administrateur et tapez
c:/safekit/private/bin/firewallcfg add
-
Pour initialiser le mot de passe de l'utilisateur admin par défaut de la console, sur les deux nœuds démarrez un powershell en tant qu'administrateur et tapez
c:/safekit/private/bin/webservercfg.ps1 -passwd mdp
- Utilisez des caractères alphanumériques pour le mot de passe (pas de caractères spéciaux).
- mdp doit être le même sur les deux nœuds.
-
Pour synchroniser SafeKit au démarrage et à l'arrêt, sur les deux nœuds démarrez un powershell en tant qu'administrateur et tapez une seule fois
c:/safekit/private/bin/addStartupShutdown
Installation du module sous Windows
-
Téléchargez le module apache_farm.safe.
Le module est gratuit. Il contient les fichiers userconfig.xml et les scripts de redémarrage.
- Mettez apache_farm.safe sous C:\safekit\Application_Modules\demo (créez le répertoire de démonstration s'il n'existe pas).
Installation du package sous Linux
-
Installez la version gratuite de SafeKit sur 2 nœuds Linux (ou plus).
Remarque : l'essai gratuit inclut toutes les fonctionnalités de SafeKit. À la fin de l'essai, vous pouvez activer des clés de licence permanentes sans désinstaller le package.
-
Après le téléchargement du package safekit_xx.bin, exécutez-le pour extraire le rpm et le script safekitinstall, puis exécutez le script safekitinstall
-
Répondez oui à la configuration automatique du pare-feu
-
Définissez le mot de passe pour la console Web et l'utilisateur par défaut admin.
- Utilisez des caractères alphanumériques pour le mot de passe (pas de caractères spéciaux).
- Le mot de passe doit être le même sur les deux nœuds.
Installation du module sous Linux
-
Téléchargez le module apache_farm.safe.
Le module est gratuit. Il contient les fichiers userconfig.xml et les scripts de redémarrage.
- Mettre apache_farm.safe sous /opt/safekit/Application_Modules/demo/ (créer le répertoire demo s'il n'existe pas).
1. Lancez la console SafeKit
- Lancez la console Web dans un navigateur sur un nœud du cluster en vous connectant à
http://localhost:9010
. - Entrez
admin
comme nom d'utilisateur et le mot de passe défini durant l'installation.
Vous pouvez également exécuter la console dans un navigateur sur un poste de travail externe au cluster.
La configuration de SafeKit se fait sur les deux nœuds depuis un seul navigateur.
Pour sécuriser la console Web, consultez 11. Sécurisation de la console Web SafeKit dans le Guide de l'utilisateur.
2. Configurez les adresses des nœuds
- Saisissez les adresses IP des nœuds.
- Ensuite, cliquez sur
Apply
pour enregistrer la configuration.
Si la couleur d'arrière-plan du nœud 1 ou du nœud 2 est rouge, vérifiez la connectivité du navigateur aux deux nœuds et vérifiez le pare-feu sur les deux nœuds pour résoudre le problème.
Cette opération placera les adresses IP dans le fichier cluster.xml
sur les deux nœuds (plus d'information dans la formation avec la ligne de commande).
4. Configurez le module
- Choisissez un démarrage automatique du module au boot sans délai.
- Entrez une adresse IP virtuelle. Une adresse IP virtuelle est une adresse IP standard dans le même réseau IP (même sous-réseau) que les adresses IP des deux nœuds.
Les clients de l'application Apache doivent être configurés avec l'adresse IP virtuelle (ou le nom DNS associé à l'adresse IP virtuelle). - Définissez le port du service sur lequel réaliser le load balancing (ex. : TCP 80 pour HTTP, TCP 443 pour HTTPS...).
- Définissez la règle d'équilibrage de charge (adresse source ou port source dans le paquet IP client) :
- avec l'adresse IP source du client, le même client sera connecté au même nœud de la ferme sur plusieurs sessions TCP et récupérera son contexte sur le nœud.
- avec le port TCP source du client, le même client sera connecté à différents nœuds de la ferme sur plusieurs sessions TCP (sans retrouver un contexte).
start_both
etstop_both
contiennent le démarrage et l'arrêt des services Apache. Vérifiez que les noms des services dans ces scripts sont ceux installés sur les deux nœuds sinon modifiez-les dans les scripts.
Notez que si un nom de processus est affiché dans Process Checker, il sera surveillé avec une action de redémarrage en cas de panne. La configuration d'un nom de processus erroné entraînera l'arrêt du module juste après son démarrage.
Cette opération reportera la configuration dans les fichiers userconfig.xml
, start_both
, stop_both
sur les deux nœuds (plus d'informations dans le training avec la ligne de commande).
7. Attendez la transition vers UP (vert) / UP (vert)
- Le nœud 1 et le nœud 2 doivent atteindre l'état UP (vert), ce qui signifie que le script
start_both
a été exécuté sur le nœud 1 et le nœud 2.
Si le statut est UP (vert) et l'application Apache n'est pas démarrée sur le nœud 1 ou le nœud 2, vérifiez les messages de sortie du script start_both
dans l'Application Log sur le nœud 1 ou le nœud 2.
Si le nœud 1 ou le nœud 2 n'atteint pas UP (vert), analysez pourquoi avec le Module Log du nœud 1 ou du nœud 2.
8. Test
SafeKit apporte un test intégré dans le produit :
- Configurez une règle pour le port TCP 9010 avec un équilibrage de charge sur le port TCP source.
- Connectez un poste de travail externe en dehors des nœuds de la ferme.
- Démarrez un navigateur sur http://virtual-ip:9010/safekit/mosaic.html.
Vous devriez voir une mosaïque de couleurs en fonction des nœuds répondant aux requêtes HTTP.
- Arrêtez un nœud UP (vert) en faisant défiler son menu contextuel et en cliquant sur Stop.
- Vérifiez qu'il n'y a plus de connexions TCP sur le nœud arrêté et sur l'adresse IP virtuelle.
Journal du module
- Lisez le journal du module pour comprendre les raisons d'un basculement, d'un état d'attente etc...
Pour voir le journal du module du nœud 1 (image) :
- cliquez sur l'onglet Control
- cliquez sur node 1/PRIM sur le côté gauche pour sélectionner le serveur (il devient bleu)
- cliquez sur Module log
- cliquez sur l'icône Actualiser (flèches vertes) pour mettre à jour la console
- cliquez sur la disquette pour enregistrer le journal du module dans un fichier .txt et l'analyser dans un éditeur de texte
Cliquez sur node2 pour voir le journal du module du serveur secondaire.
Journal applicatif
- Lisez le journal applicatif pour voir les messages de sortie des scripts de redémarrage start_both et stop_both.
Pour voir le journal applicatif du nœud 1 (image) :
- cliquez sur l'onglet Control
- cliquez sur node 1/PRIM sur le côté gauche pour sélectionner le serveur (il devient bleu)
- cliquez sur Application Log pour voir les messages lors du démarrage et de l'arrêt des services Apache
- cliquez sur l'icône Actualiser (flèches vertes) pour mettre à jour la console
- cliquez sur la disquette pour enregistrer le journal applicatif dans un fichier .txt et l'analyser dans un éditeur de texte
Cliquez sur le nœud 2 pour voir le journal applicatif du serveur secondaire.
Configuration avancée
- Dans l'onglet Advanced Configuration, vous pouvez modifier les fichiers internes du module : bin/start_both et bin/stop_both et conf/userconfig.xml.
Si vous apportez des modifications dans les fichiers internes, vous devez appliquer la nouvelle configuration par un clic droit sur l'icône/xxx sur le côté gauche (voir image) : l'interface vous permettra de redéployer les fichiers sur les deux serveurs.
Support
- Pour obtenir de l'aide, prenez 2 Snaphots SafeKit (2 fichiers .zip), un pour chaque serveur.
Si vous avez un compte sur https://support.evidian.com, téléchargez-les dans l'outil call desk.
Fichiers internes de SafeKit pour l'équilibrage de charge de Apache avec haute disponibilité
Allez dans le tab Advanced Configuration dans la console pour modifier les fichiers ci-dessous.Fichiers internes au module Windows apache_farm.safe
userconfig.xml sur Windows (description dans le guide de l'utilisateur)
<!DOCTYPE safe>
<safe>
<macro name="VIRTUAL_IP" value="VIRTUAL_IP_TO_BE_DEFINED" />
<macro name="APACHE_PORT" value="TCP_PORT_TO_BE_DEFINED" />
<service mode="farm" maxloop="3" loop_interval="24">
<!-- Farm topology configuration for the membership protocol -->
<!-- Names or IP addresses on the default network are set during initialization in the console -->
<farm>
<lan name="default" />
</farm>
<!-- Virtual IP Configuration -->
<!-- Use VIRTUAL_IP defined in macro above -->
<vip>
<interface_list>
<interface check="on" arpreroute="on">
<virtual_interface type="vmac_directed">
<virtual_addr addr="%VIRTUAL_IP%" where="alias"/>
</virtual_interface>
</interface>
</interface_list>
<loadbalancing_list>
<group name="APACHE">
<!-- Set load-balancing rule on APACHE_PORT defined in macro above -->
<rule port="%APACHE_PORT%" proto="tcp" filter="on_addr"/>
</group>
</loadbalancing_list>
</vip>
<!-- TCP Checker Configuration -->
<!-- Use VIRTUAL_IP and APACHE_PORT defined in macros above -->
<check>
<tcp ident="HTTP_APACHE" when="both">
<to
addr="%VIRTUAL_IP%"
port="%APACHE_PORT%"
interval="10"
timeout="5"
/>
</tcp>
</check>
<!-- User scripts activation -->
<user nicestoptimeout="300" forcestoptimeout="300" logging="userlog" />
</service>
</safe>
start_both.cmd sur Windows
@echo off
rem Script called on all servers for starting applications
rem For logging into SafeKit log use:
rem "%SAFE%\safekit" printi | printe "message"
rem stdout goes into Application log
echo "Running start_both %*"
set res=0
net start Apache2
if not %errorlevel% == 0 (
%SAFE%\safekit printi "Apache start failed"
) else (
%SAFE%\safekit printi "Apache started"
)
set res=%errorlevel%
if %res% == 0 goto end
:stop
set res=%errorlevel%
"%SAFE%\safekit" printe "start_both failed"
rem uncomment to stop SafeKit when critical
rem "%SAFE%\safekit" stop -i "start_both"
:end
stop_both.cmd sur Windows
@echo off
rem Script called on all servers for stopping application
rem For logging into SafeKit log use:
rem "%SAFE%\safekit" printi | printe "message"
rem ----------------------------------------------------------
rem
rem 2 stop modes:
rem
rem - graceful stop
rem call standard application stop with net stop
rem
rem - force stop (%1=force)
rem kill application's processes
rem
rem ----------------------------------------------------------
rem stdout goes into Application log
echo "Running stop_both %*"
set res=0
rem default: no action on forcestop
if "%1" == "force" goto end
%SAFE%\safekit printi "Stopping Apache..."
net stop Apache2
rem If necessary, uncomment to wait for the real stop of services
rem "%SAFEBIN%\sleep" 10
if %res% == 0 goto end
"%SAFE%\safekit" printe "stop_both failed"
:end
Fichiers internes au module Linux apache_farm.safe
userconfig.xml sur Linux (description dans le guide de l'utilisateur)
<!DOCTYPE safe>
<safe>
<macro name="VIRTUAL_IP" value="VIRTUAL_IP_TO_BE_DEFINED" />
<macro name="APACHE_PORT" value="TCP_PORT_TO_BE_DEFINED" />
<service mode="farm" maxloop="3" loop_interval="24">
<!-- Farm topology configuration for the membership protocol -->
<!-- Names or IP addresses on the default network are set during initialization in the console -->
<farm>
<lan name="default" />
</farm>
<!-- Virtual IP Configuration -->
<!-- Use VIRTUAL_IP defined in macro above -->
<vip>
<interface_list>
<interface check="on" arpreroute="on">
<virtual_interface type="vmac_directed">
<virtual_addr addr="%VIRTUAL_IP%" where="alias"/>
</virtual_interface>
</interface>
</interface_list>
<loadbalancing_list>
<group name="APACHE">
<!-- Set load-balancing rule on APACHE_PORT defined in macro above -->
<rule port="%APACHE_PORT%" proto="tcp" filter="on_addr"/>
</group>
</loadbalancing_list>
</vip>
<!-- TCP Checker Configuration -->
<!-- Use VIRTUAL_IP and APACHE_PORT defined in macros above -->
<check>
<tcp ident="HTTP_APACHE" when="both">
<to
addr="%VIRTUAL_IP%"
port="%APACHE_PORT%"
interval="10"
timeout="5"
/>
</tcp>
</check>
<!-- User scripts activation -->
<user nicestoptimeout="300" forcestoptimeout="300" logging="userlog" />
</service>
</safe>
start_both sur Linux
#!/bin/sh
# Script called on the primary server for starting applications
# For logging into SafeKit log use:
# $SAFE/safekit printi | printe "message"
#---------- Clean Apache residual processes
# Call this function before starting Apache
# to clean eventual resual Apache processes
clean_Apache()
{
retval=0
$SAFE/safekit printw "Cleaning Apache processes"
# kill started Apache processes
ps -e -o pid,comm | grep httpd | $AWK '{print "kill " $1}'| sh >/dev/null 2>&1
return $retval
}
#---------- Apache
# Call this function for starting Apache Server
start_Apache()
{
retval=0
$SAFE/safekit printw "Starting Apache Server"
# Apache - Starting
service httpd start
if [ $? -ne 0 ] ; then
$SAFE/safekit printw "Apache server start failed"
else
$SAFE/safekit printw "Apache server started"
fi
return $retval
}
# stdout goes into Application log
echo "Running start_both $*"
res=0
[ -z "$OSNAME" ] && OSNAME=`uname -s`
OSNAME=`uname -s`
case "$OSNAME" in
Linux)
AWK=/bin/awk
;;
*)
AWK=/usr/bin/awk
;;
esac
# TODO
# remove Apache boot start
# Clean Apache residual processes
clean_Apache || res=$?
# Start Apache
start_Apache || res=$?
if [ $res -ne 0 ] ; then
$SAFE/safekit printi "start_both failed"
# uncomment to stop SafeKit when critical
# $SAFE/safekit stop -i "start_both"
fi
exit 0
stop_both sur Linux
#!/bin/sh
# Script called on the primary server for stopping application services
# For logging into SafeKit log use:
# $SAFE/safekit printi | printe "message"
#----------------------------------------------------------
#
# 2 stop modes:
#
# - graceful stop
# call standard application stop
#
# - force stop ($1=force)
# kill application's processes
#
#----------------------------------------------------------
#---------- Clean Apache residual processes
# Call this function on force stop
# to clean eventual resual Apache processes
clean_Apache()
{
retval=0
$SAFE/safekit printw "Cleaning Apache processes "
# kill started Apache
ps -e -o pid,comm | grep httpd | $AWK '{print "kill -9 " $1}'| sh >/dev/null 2>&1
return $retval
}
#---------- Apache
# Call this function for stopping Apache
stop_Apache()
{
retval=0
if [ "$1" = "force" ] ; then
# Apache force stop
clean_Apache
return $retval
fi
# Apache graceful stop
$SAFE/safekit printw "Stopping Apache server"
service httpd stop
if [ $? -ne 0 ] ; then
$SAFE/safekit printw "Apache server stop failed"
else
$SAFE/safekit printw "Apache server stopped"
fi
return $retval
}
# stdout goes into Application log
echo "Running stop_both $*"
res=0
[ -z "$OSNAME" ] && OSNAME=`uname -s`
case "$OSNAME" in
Linux)
AWK=/bin/awk
;;
*)
AWK=/usr/bin/awk
;;
esac
mode=
if [ "$1" = "force" ] ; then
mode=force
shift
fi
# Stop Apache server
stop_Apache $mode || res=$?
[ $res -ne 0 ] && $SAFE/safekit printi "stop_both failed"
exit 0
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.
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.
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.
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.
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.
Plus d'information sur une coupure de courant et un isolement du réseau dans un cluster.
Redondance au niveau de l'application
Dans ce type de solution, seules les données applicatives sont répliquées. Et seule l'application est redémarrée en cas de panne.
Avec cette solution, des scripts de redémarrage doivent être écrits pour redémarrer l'application.
Nous livrons des modules applicatifs pour mettre en œuvre la redondance au niveau applicatif. Ils sont préconfigurés pour des applications et des bases de données bien connues. Vous pouvez les personnaliser avec vos propres services, données à répliquer, checkers d'application. Et vous pouvez combiner les modules applicatifs pour construire des architectures avancées à plusieurs niveaux.
Cette solution est indépendante de la plate-forme et fonctionne avec des applications à l'intérieur de machines physiques, de machines virtuelles, dans le Cloud. Tout hyperviseur est supporté (VMware, Hyper-V...).
Redondance au niveau de machine virtuelle
Dans ce type de solution, la machine virtuelle (VM) complète est répliquée (Application + OS). Et la machine virtuelle complète est redémarrée en cas de panne.
L'avantage est qu'il n'y a pas de scripts de redémarrage à écrire par application et pas d'adresse IP virtuelle à définir. Si vous ne savez pas comment fonctionne l'application, c'est la meilleure solution.
Cette solution fonctionne avec Windows/Hyper-V et Linux/KVM mais pas avec VMware. Il s'agit d'une solution active/active avec plusieurs machines virtuelles répliquées et redémarrées entre deux nœuds.
- Solution pour une nouvelle application (pas de script de redémarrage à écrire) : Windows/Hyper-V, Linux/KVM
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.
- 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 ?
- 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 (quelques ms).
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.
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 :
- un cluster qui mixte ferme et miroir avec le déploiement d’un module ferme et d’un module miroir dans le même cluster,
- un cluster actif/actif avec réplication en déployant plusieurs modules miroirs sur 2 serveurs,
- un cluster Hyper-V ou un cluster KVM avec réplication temps réel et reprise de machines virtuelles complètes entre 2 hyperviseurs actifs,
- un cluster N-1 avec le déploiement de N modules miroirs sur N+1 serveurs.
Réplication de fichiers temps réel et reprise sur panne |
|||||||||||||||||||||||||||||||
Windows mirror |
Linux mirror |
||||||||||||||||||||||||||||||
Generic mirror > | Generic mirror > | ||||||||||||||||||||||||||||||
Microsoft SQL Server > | - | ||||||||||||||||||||||||||||||
Oracle > | |||||||||||||||||||||||||||||||
MariaDB > | |||||||||||||||||||||||||||||||
MySQL > | |||||||||||||||||||||||||||||||
PostgreSQL > | |||||||||||||||||||||||||||||||
Firebird > | |||||||||||||||||||||||||||||||
Windows Hyper-V > | Linux KVM > | ||||||||||||||||||||||||||||||
- | Docker > Podman > Kubernetes K3S > |
||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||
- | Elasticsearch > | ||||||||||||||||||||||||||||||
Milestone XProtect > | - | ||||||||||||||||||||||||||||||
Genetec SQL Server > | - | ||||||||||||||||||||||||||||||
Hanwha Wisenet Wave > Hanwha Wisenet SSM > |
- | ||||||||||||||||||||||||||||||
Nedap AEOS > | - | ||||||||||||||||||||||||||||||
Siemens SIMATIC WinCC > Siemens SIMATIC PCS 7 > Siemens Desigo CC > Siemens Siveillance suite > Siemens Siveillance VMS > Siemens SiPass > Siemens SIPORT > |
- | ||||||||||||||||||||||||||||||
Bosch AMS > Bosch BIS > Bosch BVMS > |
- | ||||||||||||||||||||||||||||||
Amazon AWS mirror > | |||||||||||||||||||||||||||||||
Microsoft Azure mirror > | |||||||||||||||||||||||||||||||
Google GCP mirror > | |||||||||||||||||||||||||||||||
Other cloud > |
Cluster miroir d'Evidian SafeKit avec réplication de fichiers temps réel et reprise sur panne |
|
Économisez avec 3 produits en 1 |
|
Configuration très simple |
|
Réplication synchrone |
|
Retour d'un serveur tombé en panne totalement automatisé (failback) |
|
Réplication de n'importe quel type de données |
|
Réplication de fichiers vs réplication de disque |
|
Réplication de fichiers vs disque partagé |
|
Sites distants et adresse IP virtuelle |
|
Split brain et quorum En savoir plus > |
|
Cluster actif/actif |
|
Solution de haute disponibilité uniforme |
|
|
|
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 En savoir plus > |
|
Toutes les fonctionnalités de clustering En savoir plus > |
|
Sites distants et adresse IP virtuelle En savoir plus > |
|
Solution de haute disponibilité uniforme En savoir plus > |
|
|
|
Cluster de type "shared nothing"" vs cluster à disque partagé |
|
|
|
|
|
Haute disponibilité vs tolérance aux fautes |
|
|
|
Réplication synchrone vs réplication asynchrone |
|
|
|
Réplication de fichiers au niveau octet vs réplication de disque au niveau du bloc |
|
|
|
Heartbeat, reprise sur panne et quorum pour éviter 2 serveurs maîtres |
|
|
|
|
|
Guide de l'utilisateur
Modules applicatifs
Release Notes
Documentation d'avant vente
Introduction
- Fonctionnalités
- Architectures
- Avantages distinctifs
-
- 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
-
- Installation du package
- Configuration des nœuds
- Configuration du cluster
- Upgrade
-
- Configuration du cluster
- Onglet Configuration
- Onglet Contrôle
- Onglet Supervision
- Onglet Configuration avancée
-
- Installation silencieuse
- Administration du cluster
- Administration du module
- Command line interface
Configuration avancée
-
- userconfig.xml + restart scripts
- Heartbeat (<hearbeat>)
- Virtual IP address (<vip>)
- Real-time file replication (<rfs>)
-
- userconfig.xml + restart scripts
- Farm configuration (<farm>)
- Virtual IP address (<vip>)
-
- Failover machine (<failover>)
- Process monitoring (<errd>)
- Network and duplicate IP checkers
- Custom checker (<custom>)
- Split brain checker (<splitbrain>)
- TCP, ping, module checkers
Support
-
- Analyse des snapshots
-
- Récupérer les clés permanentes
- S'enregistrer sur support.evidian.com
- Call desk