Portail:Le système de répartition de la charge

Un article de Mille-Xterm.

Jump to: navigation, search
Le système de répartition de la charge (load balancer) permet de répartir la charge occasionnée par les utilisateurs sur les différents serveurs d'applications. Ce système fait partie intégrante des serveurs d'applications et des serveurs de démarrage.

Sur chaque serveur d'applications, un service est chargé de récolter l'information sur sa charge actuelle ainsi que ses caractéristiques physiques et les envoie au répartiteur de charge. Le répartiteur de charge analyse ces entrées et trie les serveurs d'applications en fonction de leurs disponibilités à accepter de nouveaux clients.

Ainsi, chaque fois qu'un terminal démarre une session graphique, au moment où l'utilisateur se connecte, une demande est envoyée au serveur de démarrage utilisé par le terminal afin de connaître l'adresse du serveur d'applications qui permettra d'offrir les meilleures performances à l'utilisateur.


Sommaire

Composants

Le système de répartition de la charge est composé de deux services :

lbserver 
Le service lbserver possède un fichier appellé « lbsconfig.xml » qui contient une liste qui définit les serveurs d'applications qui peuvent être utilisés. Le service interroge périodiquement ces serveurs d'applications afin de connaître leur état et rafraîchir le classement. Ce service doit être installé sur tous les serveurs de démarrage. Les terminaux communiquent avec ce service fonctionnant sur le serveur de démarrage qu'il utilise afin d'obtenir l'adresse du serveur d'applications qui est classé comme étant plus avantageux à ce moment. Ainsi, le terminal pourra utiliser ce serveur d'applications pour offrir une interface graphique à l'utilisateur.
lbagent 
Le service lbagent est installé sur les serveurs d'applications. Il démarre un serveur xmlrpc qui est utilisé pour la communication avec le service lbserver qui se trouve sur les serveurs de démarrage. En plus, lbagent est chargé de récolter des informations sur les caractéristiques physiques du serveur et des informations sur l'utilisation des ressources du systèmes. Il permet, par exemple, de recueillir des informations sur le nombre d'utilisateurs connectés, le pourcentage d'utilisation du processeur, la quantité de mémoire vive disponible, etc.

En utilisant xmlrpc, le lbserver maître peut accèder aux informations recceuillies et les utiliser pour déterminer quel est le serveur d'applications qui offrira les meilleures performances à l'utilisateur.

Il y a donc au total trois ports qui sont utilisés par le système de répartition de la charge :

  • Un port utilisé pour accéder aux informations sur un lbagent via xml-rpc
  • Un port utilisé pour accéder à la configuration du lbserver via xml-rpc
  • Un port utilisé par les terminaux pour demander au service lbserver, quelle est l'adresse du serveur d'applications qui est classé comme étant plus avantageux. Le port utilisé par défaut est 8008 via le protocole http.

Installation du système de la répartition de la charge

  • Le service lbserver provient du paquetage mille-xterm-loadbalancer-lbserver qui est une dépendance des serveurs de démarrage. Il n'est donc pas nécessaires de l'installer manuellement.
  • Le service lbagent provient du paquetage mille-xterm-loadbalancer-lbagent qui est une dépendance des serveur de d'applications. Il n'est donc pas nécessaires de l'installer manuellement.

Gestion des services du répartiteur de charge

Configuration des services du répartiteur de charge

  • Configuration du service lbserver
Le fonctionnement de la configuration du service lbserver est décrit à la page suivante :
Configuration du service lbserver

Utilisation du système de répartitions

Il est possible de tester le fonctionnement du répartiteur de charge et de consulter l'historique des serveurs d'applications utilisés par un terminal.

Vérification des serveurs d'application renvoyés par le répartiteur de charge

À l'aide d'un navigateur, vous pouvez vérifier quel serveur d'application est renvoyé par le répartiteur de charge.

Vérification pour le groupe de serveurs d'application défini dans le groupe par défaut
Vous pouvez vérifier l'adresse du serveur d'application retournée par le répartiteur de charge à l'adresse suivante:
Vérification pour un groupe de serveurs d'application spécifique
Vous pouvez vérifier l'adresse du serveur d'application retournée par le répartiteur de charge à l'adresse suivante:

Tests répétitifs des serveurs d'applications renvoyés

Vous pouvez tester et compiler les nombres de fois que les serveurs d'applications sont envoyés à l'aide de la commande suivante :

for i in $(seq 1 200); do wget -q  -O - http://ADRESSE_CONFIGURATEUR:8008; done|sort|uniq -c


Note : Le port utilisé par défaut est 8008 mais il peut être modifié dans le fichier de configuration du service lbserver (lbsconfig.xml) en modifiant l'option «listen» Voir : Configuration du comportement du service.

Consultation de l'historique des serveurs d'applications utilisés par un terminal

L'historique des adresses des serveurs d'applications utilisés par les terminaux, est enregistré localement sur ces derniers dans le fichier /tmp/xdm.history. Vous pouvez y accéder à partir d'un terminal de la manière suivante :

  • Démarrer le terminal et une fois le mode graphique chargé, enter la combinaisons suivante <ctrl> + <alt> + <#TTY> (#TTY = TTY exécutant le script-écran shell)
  • Afficher le contenu du fichier xdm.history avec la commande suivante :
    cat /tmp/xdm.history

Note : Le fichier xdm.history est chargé dans la mémoire vive du terminal. Ce qui veut dire que les informations emmagasinées seront détruites à l'extinction de ce dernier.