Windows : le cluster le plus simple avec équilibrage de charge et haute disponibilité

Windows : le cluster de haute disponibilité le plus simple avec réplication synchrone et tolérance aux pannes

Evidian SafeKit apporte l'équilibrage de charge réseau et la haute disponibilité à Windows. Cet article explique comment mettre en œuvre rapidement un cluster Windows avec équilibrage de charge sans boîtiers réseaux, ni serveurs proxy dédiés au load balancing. SafeKit est installé directement sur les serveurs Windows. Le module de haute disponibilité farm.safe et un essai gratuit sont offerts dans la section instructions d'installation.

Cette solution de clustering est reconnue comme la plus simple à mettre en œuvre par nos clients et partenaires. C'est également une solution complète qui résout les pannes matérielles (20% des problèmes) incluant la panne complète d'une salle informatique, les défaillances logicielles (40% des problèmes) incluant le passage d'update serveur par serveur et les erreurs humaines (40% des problèmes) grâce à sa simplicité.

Comment le logiciel Evidian SafeKit met en œuvre simplement l'équilibrage de charge Windows et la haute disponibilité sans boîtiers réseaux, ni serveurs proxy dédiés

Comment Evidian SafeKit met en œuvre l'équilibrage de charge Windows et la haute disponibilité

Sur la figure précédente, l'application Windows tourne sur les 3 serveurs. Les utilisateurs sont connectés à une adresse IP virtuelle qui 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 Windows qui répond à la requête du client. Les messages de retour de l'application Windows 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 que SafeKit fonctionne dans les environnements VMware sans les problèmes de Microsoft NLB avec ses modes unicast et muticast. Et notez aussi que l'équilibrage de charge réseau de SafeKit fonctionne non seulement avec Windows (en incluant les versions Windows pour PCs) mais aussi avec Linux.

FAQ

Meilleurs cas d'utilisation [+]

Clients [+]

Modules de haute disponibilité appicatifs [+]

Webinaire SafeKit [+]

Prix - Essai gratuit [+]

Comparaison avec d'autres solutions [+]

Démonstration d'un cluster ferme [+]

Quels sont les avantages du cluster ferme [+]

Quel est le temps de reprise (RTO) dans un cluster ferme [+]

Installation de SafeKit pour l'équilibrage de charge de Windows avec haute disponibilité

Installation du package sur Windows

Sur les deux serveurs Windows

Instructions de configuration

La configuration est présentée avec la console web connectée à 2 serveurs Windows.

Important : toute la configuration doit être réalisée à partir d'un seul navigateur.

Lancez la console Web dans un navigateur en vous connectant à http://localhost:9010 (image suivante)

Démarrer la console Web SafeKit pour configurer Windows

Entrez l'adresse IP du premier nœud et cliquez sur Confirm (image suivante)

Console Web SafeKit - premier nœud dans le cluster Windows

Cliquez sur New node et entrez l'adresse IP du deuxième nœud (image suivante)

Console Web SafeKit - second nœud dans le cluster Windows

Cliquez sur la disquette rouge pour sauvegarder la configuration (image précédente)

Dans l'onglet Configuration, cliquez sur farm.safe puis entrez farm comme nom du module et cliquez sur Confirm (images suivantes avec farm au lieu de xxx)

Console Web SafeKit - démarrer la configuration des services Windows  console Web SafeKit - entrez le nom du module Windows

Cliquez sur Validate (image suivante)

Console Web SafeKit - entrez les nœuds du module Windows

Définissez l'adresse IP virtuelle du cluster, le port TCP du service à load balancer et le critère sur adresse IP source ou sur port TCP source (image suivante).

Une adresse IP virtuelle est une nouvelle adresse IP inutilisée dans le même réseau IP que les adresses IP des deux nœuds. L'équilibrage de charge sera fait sur l'adresse IP virtuelle/port TCP suivant le critère. Cet article explique la différence entre le critère adresse IP source et le critère port TCP source.

Console Web SafeKit - entrer les paramètres du module Windows

Pour information:

Cliquez sur Validate (image précédente)

Console Web SafeKit - arrêtez le module Windows avant la configuration

Cliquez sur Configure (image précédente)

Console Web SafeKit - vérifier le message succès vert de la configuration du module Windows

Vérifiez le message succès vert sur les deux serveurs et cliquez sur Next (image précédente)

Console Web SafeKit - sélectionnez le nœud Windows avec les données à jour

Cliquez sur Start pour démarrer le cluster sur les deux nœuds (image précédente). Vérifiez que l'état passe à UP (vert) - UP (vert) (image suivante).

Console Web SafeKit - le premier nœud Windows démarre en tant que primaire et est seul

Le cluster est opérationnel avec les services Windows s'exécutant sur les deux nœuds UP (image précédente).

Attention, les composants qui sont clients des services Windows doivent être configurés avec l'adresse IP virtuelle. La configuration peut être effectuée avec un nom DNS (si un nom DNS a été créé et associé à l'adresse IP virtuelle).

Tests

Vérifiez avec la console Microsoft Management Console (MMC) que les services Windows sont démarrés sur les deux nœuds UP. Mettez les services Windows avec Type de démarrage au boot = Manuel (SafeKit contrôle le démarrage des services Windows).

Arrêtez un nœud UP en faisant défiler le menu du nœud et en cliquant sur Stop. Vérifiez que l'équilibrage de charge est reconfiguré avec uniquement l'autre nœud prenant toutes les connexions TCP. Et vérifiez que les services Windows sont arrêtés sur le nœud STOP avec la console Microsoft Management Console (MMC).

Pour comprendre ce qui se passe dans le cluster, consultez les journaux SafeKit du nœud 1 et du nœud 2.

Pour voir le journal du module sur le nœud 1 (image suivante) :

Console Web SafeKit - Journal du module du serveur Windows PRIM

Pour voir le journal applicatif du nœud 1 (image suivante) :

Console Web SafeKit - Application log du serveur Windows PRIM

Pour voir les journaux du nœud 2 (image précédente), cliquez à gauche sur W12R2server75/UP (il deviendra bleu) et répétez les mêmes opérations.

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 (image suivante sur le côté gauche). Si vous faites des changements dans les fichiers internes ici, vous devez appliquer la nouvelle configuration par un clic droit sur l'icône bleue/xxx sur le côté gauche (image suivante) : l'interface vous permettra de redéployer les fichiers modifiés sur les deux serveurs.

Configure boot start (image suivante sur le côté droit) configure le démarrage automatique du module au boot du serveur. Effectuez cette configuration sur les deux nœuds une fois que la solution Windows d'équilibrage de charge et de haute disponibilité fonctionne correctement.

Console Web SafeKit - Démarrage automatique au boot du module Windows

Support

Pour obtenir de l'aide sur le centre d'appel de https://support.evidian.com, prenez 2 Snaphots (2 fichiers .zip), un pour chaque serveur et téléchargez-les dans l'outil du centre d'appel (image suivante).

Console Web SafeKit - Snaphots du module Windows pour le support

Fichiers internes au module Windows farm.safe

userconfig.xml

<!DOCTYPE safe>
<safe>
<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 -->
  <!-- Replace
     * VIRTUAL_IP_ADDR_TO_BE_DEFINED by the IP address of your virtual server 
  -->
  <vip>
    <interface_list>
      <interface check="on" arpreroute="on">
        <virtual_interface type="vmac_directed">
          <virtual_addr addr="VIRTUAL_IP_ADDR_TO_BE_DEFINED" where="alias"/>
        </virtual_interface>
      </interface>
    </interface_list>
    <loadbalancing_list>
      <group name="Windows_Appli">
        <!-- Set load-balancing rule on the TCP port of the service to load balance -->
        <rule port="TCP_PORT_TO_BE_DEFINED" proto="tcp" filter="on_addr"/>
      </group>
    </loadbalancing_list>
  </vip>
  <!-- TCP Checker Configuration -->
  <!-- Replace
     * VIRTUAL_IP_ADDR_TO_BE_DEFINED by the IP address of your virtual server 
     * TCP_PORT_TO_BE_DEFINED by the TCP port of the service to check
  -->
  <check>
    <tcp ident="Check_Appli" when="both">
      <to
         addr="VIRTUAL_IP_ADDR_TO_BE_DEFINED"
         port="TCP_PORT_TO_BE_DEFINED"
         interval="10"
         timeout="5"
       />
    </tcp>
  </check>
  <!-- User scripts activation -->
  <user nicestoptimeout="300" forcestoptimeout="300" logging="userlog" />
</service>
</safe>

start_both.cmd

@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

rem Fill with your services start call

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

@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

rem Fill with your services stop call

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
contact
CONTACT
Démonstration

Evidian SafeKit Prix





Livres blancs

NEWS

Pour recevoir des informations d'Evidian, veuillez remplir le formulaire suivant.