24 septembre 2010
publié par 
HFSQL Cluster permet d'obtenir une synchronisation automatique de différents serveurs HFSQL, afin d'assurer une haute disponibilité, une répartition de charge...

La présentation complète de HFSQL Cluster est disponible en ligne. Elle schématise un Cluster de la façon suivante :


Ce billet revient sur le rôle du serveur DNS, clé de voute du mécanisme de répartition de charge du Cluster

La mise en place d'un Cluster ne nécessite aucunement la maîtrise du serveur DNS (Domain Name system) dans sa globalité. Il faut simplement savoir qu'un serveur DNS :
  • est automatiquement appelé lorsqu'une application fait un accès réseau à partir d'un nom (typiquement, HOuvreConnexion avec un nom de serveur),
  • permet pour un nom de machine donné, de faire correspondre une adresse IP. Mieux, il accepte de faire correspondre à un nom donné, plusieurs adresses IP différentes, correspondant à des machines différentes. C'est cette dernière possibilité qui va être utilisée par HFSQL Cluster.
Une fois assimilé le fait que le DNS est capable de faire correspondre plusieurs machines (via leurs adresses IP) à un nom unique donné, l'installation et la compréhension du mode de fonctionnement du Cluster deviennent évidents : un nom unique identifie le Cluster, il est inséré dans le DNS avec toutes les adresses des serveurs qui hébergent les moteurs HFSQL Client/Serveur qui vont se synchroniser (ils seront les "noeuds" du Cluster).

Lors de l'installation du Cluster, en plus d'une machine désignée pour accueillir le coordinateur, on donne donc un nom pour le Cluster. Ce nom permettra les connexions depuis les applications avec HOuvreConnexion, ou la connexion de l'analyse. C'est le "Nom DNS complet du Cluster" demandé dans l'assistant d'installation :



Ce nom du Cluster ne doit pas correspondre à une machine existante du réseau, il sera "virtuel". L'étape suivante de l'installation consiste simplement à préciser le nom des machines qui vont être les noeuds du Cluster. L'adresse de chaque machine serveur sera ajoutée dans le DSN, en correspondance avec le nom du Cluster. De cette manière, depuis un poste quelconque du réseau, une connexion (HOuvreConnexion) avec comme serveur le nom DNS du Cluster, sera automatiquement connectée à l'un des noeuds du Cluster grâce au DNS.

Un exemple pour être plus concret : lors de l'installation d'un Cluster le nom DNS de Cluster "Cluster_Support" est donné. Puis 3 noeuds sont ajoutés, en donnant le nom réseau de 3 serveurs différents : Srv_Prod1, Srv_Prod2 et Srv_Prod3.

Le serveur DNS sera schématiquement complété, configuré, avec les entrées suivantes (on comprend ici la nécessité d'avoir des adresses IP fixes pour les serveurs qui constituent les noeuds) :
Cluster_Support Adresse IP Srv_Prod1
Cluster_Support Adresse IP Srv_Prod2
Cluster_Support Adresse IP Srv_Prod3

De cette manière une première connexion, HOuvreConnexion avec "Cluster_Support" en serveur, sera dirigée sur le serveur Srv_Prod1. Une seconde connexion toujours avec "Cluster_Support" en serveur, sera dirigée sur le serveur Srv_Prod2. La troisième sera redirigée vers Srv_Prod3, la quatrième sur Srv_Prod1 ...

Il n'est donc pas nécessaire pour la mise en place d'un Cluster de se plonger dans les méandres de la configuration d'un serveur DNS. L'installation et le centre de contrôle se chargent de son paramétrage. Il est cependant important d'avoir compris le mécanisme de répartition des connexions, notamment pour ne pas se tromper lors de la connexion des applications profitant du Cluster. Il faut bien donner le nom DNS du cluster, et non pas directement le nom ou l'adresse d'un des noeuds. Avec le nom ou l'adresse d'un des noeuds, la connexion serait possible, la synchronisation des serveurs se ferait, mais aucune continuité de service ne serait assurée en cas d'arrêt du noeud.

N'hésitez pas à me contacter pour tout renseignements complémentaires sur ce sujet, via le menu "? ... Requête au Support Technique" de WINDEV, WEBDEV ou WINDEV Mobile.

< Retour