Dernière version : 2.0.2-1

|
Aperçu rapide |
|
|
Catalogue |
Système |
|
Catégorie |
Commutateurs |
|
Volumes d'utilisateur |
non |
|
Min. mémoire |
96M |
|
SE |
Linux |
|
Contraintes |
non |
HALB est un commutateur qui permet de répartir la charge de travail entre plusieurs serveurs Web du même type ou de types différents.. HALB est basé sur un package de logiciels d'équilibrage de charge HAProxy TCP/HTTP qui est conçu pour être extrêmement rapide et consommer très peu de ressources.
HALB exécute des fonctions d'équilibrage de charge à l'aide de plusieurs algorithmes. Il effectue un équilibrage de charge simple par tourniquet en répartissant uniformément la charge entre les serveurs principaux. Il prend également en charge les sessions persistantes en reliant le client à un serveur principal particulier à l'aide de l'adresse IP source de la requête en tant que clé. Etant donné qu'il utilise des cookies de session, toute nouvelle session qui n'a pas de cookies de session est distribuée selon l'algorithme du tourniquet. HALB prend en charge les sessions avec plusieurs cookies et modifie et/ou suit uniquement les cookies nécessaires, en laissant les autres intacts. Vous pouvez relier une session ou un client spécifique à un serveur Web principal ou à une application donnée à l'aide de l'association de cookies. Les cookies existants peuvent être modifiés de façon transparente par HALB pour les clients qui ne prennent pas en charge les requêtes avec plusieurs cookies.
HALB surveille en permanence l'état de contrôle de l'intégrité de tous les serveurs Web principaux. Les contrôles de l'état d'intégrité réalisés par HALB peuvent inclure un simple test de connexion TCP ou une requête HTTP plus complexe (spécifiée sur le périmètre d'HALB). En cas de panne serveur détectée par HALB à l'aide de la méthode de contrôle de l'intégrité paramétrée, HALB bascule le trafic vers un serveur alternatif. En cas de reprise éventuelle du serveur ayant échoué, HALB peut faire rebasculer le trafic sur le serveur récupéré.
HALB présente une interface de service Web sur son terminal ctl. Cette interface permet aux utilisateurs d'activer/de désactiver facilement les terminaux de sortie out1 - out8 et de récupérer l'état de tous les terminaux. Ceci s'avère utile en cas d'échec d'un système principal (p.ex. au niveau d'une base de données ou d'une appliance de stockage), lorsque l'application proprement dite peut désactiver automatiquement le trafic vers un ensemble spécifique de serveurs. Dans ce cas, HALB n'est lui-même pas capable de détecter ce type d'échec. Il appartient donc à l'application de détecter l'échec et de désactiver l'ensemble correspondant de serveurs principaux.
HALB conserve des statistiques détaillées y compris l'état du serveur principal, le nombre de requêtes traitées par serveur, le nombre d'erreurs, etc. Le terminal mon fournit des statistiques et le terminal ui (qui se présente comme une interface utilisateur graphique accessible via un navigateur) fournit également des compteurs distincts.
HALB est conçu pour être extrêmement rapide en utilisant très peu de ressources. Dans des conditions normales, HALB consomme environ 25 Ko de mémoire par session ou 1 Go pour 40 000 sessions simultanées et traite jusqu'à 6000 demandes par seconde.
|
Ressource |
Minimum |
Maximum |
Valeur par défaut |
|
UC |
0.1 |
16 |
0.4 |
|
Mémoire |
96 Mo |
32 Go |
96 Mo |
|
Bande passante |
1 Mbit/s |
2 Gbits/s |
250 Mbits/s |
La quantité de mémoire allouée à HALB n'a pas d'influence sur le débit ou le temps de réponse. HALB est une appliance liée à l'UC/à la bande passante.
|
name |
dir |
protocol |
description |
|
in |
in |
HTTP |
Entrée commune. Les requêtes TCP envoyées au terminal in sont dirigées vers l'une des sorties, à l'aide de la sélection par tourniquet ou des informations de session basées sur la source. |
|
ui |
in |
HTTP |
Traite les requêtes HTTP provenant des clients Web. Traite les protocoles HTTP/1.1 et 1.0. |
|
ctl |
in |
HTTP |
Terminal de contrôle utilisé pour l'activation/la désactivation des sorties et pour la récupération de l'état des terminaux de sortie. |
|
out1-out8 |
sortie |
Indifférent |
Sorties équilibrées. Toutes ces sorties peuvent rester non connectées ; le trafic est réparti uniquement entre les sorties connectées et activées. Par défaut, tous les terminaux sont activés. |
|
MON |
sortie |
CCE |
Permet d'envoyer des statistiques de performances et d'utilisation des ressources. |
Propriétés générales
|
name |
type |
description |
|
mode |
Chaîne |
Spécifie le mode de fonctionnement et une façon d'utiliser le cookie de session nommé pour l'identification de session. Les valeurs valides sont les suivantes : |
|
cookie_name |
Chaîne |
Nom du cookie utilisé pour identifier une session. Pour les modes passifs (passive et sync - voir la propriété de mode ci-dessous), il s'agit du nom du cookie utilisé par les serveurs principaux connectés aux sorties out1 - out8 pour identifier des sessions clientes. Pour le mode insert, il s'agit du nom du cookie que HALB doit insérer dans les réponses HTTP afin que chaque client soit "collé" à un seul serveur. Si cette propriété est définie sur la valeur vide, aucun suivi de session n'est effectué et toutes les requêtes sont distribuées simplement à la façon d'un tourniquet. Ignoré pour le mode source. |
|
cookie_check_length |
Entier |
Définit le nombre d'octets de la valeur du cookie utilisés comme clé unique en mode de fonctionnement passif pour correspondre à la session du serveur Web principal. Une valeur par défaut de 10 suffit généralement pour toutes les applications Java et PHP courantes. Cette valeur doit toujours être égale ou inférieure à la longueur de la valeur de cookie. |
|
max_connections |
nombre entier |
Nombre maximum de connexions actives simultanément gérées par l'équilibreur de charge. Lorsque ce nombre est atteint, les nouvelles connexions sont toujours acceptées, mais leur traitement est différé jusqu'à la fermeture d'une autre connexion. Au démarrage, HALB détermine automatiquement le nombre maximum de connexions en fonction de la mémoire disponible, le compare à la valeur de cette propriété et utilise la valeur la plus basse. Si cette propriété est égale à 0, la valeur calculée est utilisée. Veuillez noter que ni la mémoire disponible ni aucun paramètre explicite de cette propriété n'exerce d'effet direct sur le débit de l'équilibreur de charge ou son taux de requêtes maximum. Définir un petit nombre (ou une faible quantité de mémoire) n'affecte la réponse que si les serveurs principaux effectuent de longues opérations pour chaque requête (par exemple, des recherches dans la base de données) faisant en sorte que de nombreuses requêtes restent ouvertes simultanément. |
|
backup_outputs |
Chaîne |
Liste de sorties séparées par des virgules ou des points (out1 - out8) considérée comme sauvegarde. Le trafic est dirigé vers les serveurs de sauvegarde uniquement si tous les serveurs principaux sont indisponibles. Ces serveurs de sauvegarde ont pour objectif d'avertir les clients d'un problème ou de les rediriger au lieu de renvoyer des erreurs à partir d'un serveur principal indisponible ou arrivé à expiration. |
Propriétés de délai d'expiration
|
name |
type |
description |
|
timeout |
nombre entier |
Délai d'expiration des sessions inactives (exprimé en secondes). Si la valeur définie est zéro, les sessions inactives n'expirent pas. Si la valeur est définie sur une valeur non nulle, les sessions inactives sont redémarrées à l'expiration du délai d'inactivité et les requêtes ayant le cookie "forgotten" sont traitées comme si elles n'avaient aucun cookie et dirigées vers un serveur aléatoire, à l'aide de la méthode de tourniquet habituelle. Cette propriété est uniquement valide en mode passif et est ignorée pour tous les autres modes. |
|
client_timeout |
Entier |
Délai d'expiration en secondes pour l'attente d'une requête client après avoir établi la connexion. |
|
server_timeout |
Entier |
Délai d'expiration en secondes pour l'attente d'une réponse d'un serveur Web principal après avoir établi la connexion. |
|
conn_timeout |
Entier |
Délai d'expiration en secondes pour l'établissement d'une connexion TCP. Ce délai inclut les contrôles de l'intégrité. Une attention toute particulière doit être accordée à ce paramètre, car en cas de charge élevée, les contrôles d'intégrité expirent en raison d'une valeur insuffisamment petite, HALB commence à désactiver des sorties. Il est déconseillé de le définir en dessous de 20 secondes. |
Propriétés de contrôle de l'intégrité
|
name |
type |
description |
|
healthcheck_url |
Chaîne |
URL utilisée pour effectuer le contrôle de l'intégrité des serveurs Web principaux dans les méthodes de contrôle de l'intégrité http_get et http_head. Il peut s'agir d'une URL complète (http://host.name/file/to/check/for.php) ou d'un chemin d'accès relatif (/file/to/check/for.php). Si l'adresse spécifiée est une URL, HALB utilise le protocole HTTP/1.1 pendant l'exécution des contrôles d'intégrité à l'aide du nom d'hôte extrait d'UR, dans un en-tête "Host:". Elle permet l'utilisation d'hôtes virtuels. Si l'adresse spécifiée est un chemin d'accès relatif, HALB utilise le protocole HTTP/1.0 et vérifie le document spécifié par cette propriété. Si cette propriété est vide, HALB vérifie la présence de la racine par défaut "/" à l'aide du protocole HTTP/1.0. |
|
healthcheck_agent |
Chaîne |
Chaîne utilisée comme identificateur d'agent pour les méthodes de contrôle de l'intégrité http_get et http_head. Si la chaîne est vide, HALB-health-check est utilisé. |
|
healthcheck_method |
Chaîne |
Méthode utilisée pour le contrôle de l'intégrité des serveurs Web principaux. |
|
healthcheck_regexp |
Chaîne |
Chaîne de test utilisée avec le mode de contrôle de l'intégrité http_get. Des valeurs courtes ou communes (p. ex. OK) généreront probablement des faux positifs. Cette chaîne est une expression régulière Perl. Vous trouverez davantage d'informations sur les expressions régulières Perl ici. |
|
healthcheck_interval |
Entier |
Intervalle (exprimé en secondes) entre les contrôles d'intégrité des serveurs Web principaux. |
Propriétés de l'interface utilisateur/de service Web
|
name |
type |
description |
|
username |
Chaîne |
Nom d'utilisateur pour accéder à l'interface utilisateur graphique d'HALB via le terminal ui. Si aucune valeur n'est spécifiée, aucune authentification n'est effectuée. |
|
password |
Chaîne |
Mot de passe pour accéder à l'interface utilisateur graphique d'HALB via le terminal ui. Le mot de passe est ignoré si le nom d'utilisateur est vide. |
|
ctl_port |
Entier |
Port utilisé pour accéder à l'interface de contrôle de service Web via le terminal ctl. |
|
ui_port |
Entier |
Port utilisé pour accéder à l'interface utilisateur graphique des statistiques d'exécution d'HALB via le terminal ui. |
L'appliance HALB signale les compteurs personnalisés suivants via le terminal mon.
Les compteurs suivants appartiennent au groupe de compteurs HALB. X représente une valeur de 1 à 8.
|
Nom du compteur |
Description |
|
outX_status |
Etat du terminal de sortie outX : 0 - activé et opérationnel, 1 - activé et inactif, 100 - déconnecté. |
|
outX_queue |
Nombre de requêtes mises en file d'attente pour le terminal outX. |
|
outX_queue_max |
Nombre maximum historique de requêtes mises en file d'attente simultanément pour le terminal outX. |
|
outX_sessions_active |
Nombre de sessions actives pour le terminal outX. |
|
outX_sessions_max |
Nombre maximum de sessions actives simultanément pour le terminal outX. |
|
outX_sessions_total |
Nombre de sessions terminées pour le terminal outX. |
|
outX_errors |
Nombre d'échecs de contrôle d'intégrité pour le terminal outX. |
|
file d'attente |
Longueur actuelle de la file d'attente, cumulée pour out1 - out8. |
|
queue_max |
Nombre maximum historique de requêtes mises en file d'attente simultanément, cumulées pour out1 - out8. |
|
sessions_active |
Nombre de sessions actives, cumulées pour out1 - out8. |
|
sessions_max |
Nombre maximum historique de sessions actives, cumulées pour out1 - out8. |
|
sessions_total |
Nombre de sessions terminées, cumulées pour out1 - out8. |
|
erreurs |
Nombre total d'échecs de contrôle d'intégrité, cumulés pour out1 - out8. |
Taux de requêtes
HALB achemine pas moins de 6000 transactions (paires requête/réponse) par seconde, en fonction de la taille de document et de la bande passante réseau disponible.
Débit des données
HALB achemine pas moins de 15 Mo/seconde.
Connexions simultanées
HALB prend en charge pas moins de 2000 requêtes en suspens simultanément, (une requête en suspens étant une connexion TCP ouverte à partir du client, sur laquelle une ou plusieurs requêtes HTTP en cours ne sont pas terminées). Le nombre maximum de connexions simultanées dépend de la quantité de mémoire disponible et peut atteindre 40 000. HALB a été testé pour prendre en charge plus de 15000 transferts actifs simultanés.
En cas d'échec de démarrage de l'appliance, les erreurs suivantes peuvent être consignées dans le journal système :
|
Message d'erreur |
Description |
|
Error: unable to determine appliance memory configuration, please contact CA Technologies support. |
HALB n'est pas parvenu à détecter la quantité de mémoire disponible. Contactez le support technique de CA. |
|
Error: failed to create the HAProxy config file, please contact CA Technologies support. |
HALB n'a pas pu créer le fichier de configuration HAProxy. Contactez le support technique de CA.. |
|
Error: failed to determine number of available CPUs, please contact CA Technologies support. |
HALB n'est pas parvenu à détecter la quantité d'UC disponible. Contactez le support technique de CA. |
|
Error: the healthcheck_url, when specified as an URL, must begin with http:// and contain a full path to the document (ex: http://host.name.domain/file/to/check/for.html). |
La valeur de la propriété healthcheck_url est incorrecte. Elle doit commencer par http:// et contenir un chemin complet, ex. : http://host.name.domain/file/to/check/for.html |
|
Error: unknown health check method healthcheck_method specified. |
La valeur de la propriété healthcheck_method est incorrecte. La valeur doit être l'une des suivanes : tcp_connect, http_head ou http_get |
|
Error: invalid operation mode specified |
Le mode spécifié n'est pas valide. Le mode doit être l'un des suivants : passive, sync, insert or source |
|
Error: ui_port value must be between 1 and 65535. |
La valeur de u_port doit être supérieure à 1 et inférieure à 65535. |
|
Error: ctl_port value must be between 1 and 65535. |
la valeur de ctl_port doit être supérieure à 1 et inférieure à 65535. |
|
Error: failed to start HALB, please see '/var/log/appliance/log' log file for details. |
Une erreur système s'est produite au démarrage de HALB. Contactez le support technique de CA. |
|
Error: failed to initialize the control web service interface, please contact CA Technologies support. |
Une erreur système s'est produite lors de l'initialisation de l'interface de services Web de contrôle fournie sur le terminal ctl. Contactez le support technique de CA. |
|
Error: failed to initialize statistics reporting, please contact CA Technologies support. |
Une erreur système s'est produite lors de l'initialisation de la génération des rapports de statistiques. Contactez le support technique de CA. |
|
Error: failed to initialize the user interface terminal, please contact CA Technologies support. |
Une erreur système s'est produite lors de l'initialisation de l'interface utilisateur graphique fournie sur le terminal ui. Contactez le support technique de CA. |
|
Error: failed to initialize external health checker, please contact CA Technologies support. |
Une erreur s'est produite au démarrage de l'outil de contrôle de l'intégrité prenant en charge les expressions régulières. Contactez le support technique de CA. |
Le terminal ctl fournit une interface de services Web de contrôle (sur le port configuré) permettant d'activer et de désactiver les terminaux de sortie (out1 - out8) et de récupérer l'état actuel des terminaux.
Le protocole utilise uniquement la méthode GET HTTP, puisqu'il offre seulement une fonctionnalité de lecture. Ainsi, tous les types de requêtes de protocole pris en charge peuvent être définis au moyen de leur URI et de la structure de sortie. Les caractères considérés comme spéciaux pour l'URI doivent être échappés à l'aide de la norme de codage standard %.
Tous les URI pris en charge sont décrits ci-dessous :
Désactivation des terminaux de sortie
Il existe deux formes distinctes d'appel de contrôle de désactivation, selon la manière dont le terminal de sortie est identifié :
Requête : /api/disable?channel=out3 (désactive le terminal de sortie out3)
Requête : /api/disable?10.11.12.13 (désactive le terminal de sortie connecté au serveur Web qui a pour adresse IP 10.11.12.13)
Réponse :
HALB renvoie la structure suivante avec un code d'état et éventuellement un message d'état :
{
"status" :
{
"code" : code_value,
"message" : "status_message"
}
}
Les valeurs de code d'état possibles sont répertoriées ci-dessous :
|
Valeur de code |
Description |
|
0 |
L'opération a réussi ; le terminal a été désactivé. |
|
10 |
L'opération a échoué ; la configuration HALB n'a pas été modifiée. Causes les plus probables : le terminal est déjà désactivé ou l'adresse IP spécifiée n'est pas valide. |
|
100 |
Une erreur s'est produite lors du traitement de la requête. Pour plus d'informations, reportez-vous au message d'état. |
Activation des terminaux de sortie
Il existe deux formes distinctes d'appel de contrôle d'activation, selon la manière dont le terminal de sortie est identifié :
Requête : /api/enable?channel=out3 (active le terminal de sortie out3)
Requête : /api/enable?10.11.12.13 (active le terminal de sortie connecté au serveur Web qui a pour adresse IP 10.11.12.13)
Réponse :
HALB renvoie la structure suivante avec un code d'état et éventuellement un message d'état :
{
"status" :
{
"code" : code_value,
"message" : "status_message"
}
}
Les valeurs de code d'état possibles sont répertoriées ci-dessous :
|
Valeur de code |
Description |
|
0 |
L'opération a réussi ; le terminal a été activé. |
|
10 |
L'opération a échoué ; la configuration HALB n'a pas été modifiée. Causes les plus probables : le terminal est déjà activé ou l'adresse IP spécifiée n'est pas valide. |
|
100 |
Une erreur s'est produite lors du traitement de la requête. Pour plus d'informations, reportez-vous au message d'état. |
Récupération de l'état des terminaux de sortie
Requête : /API/statut (renvoie l'état de tous les terminaux de sortie)
Réponse :
HALB renvoie la structure suivante avec un code d'état et éventuellement un message d'état :
{
"status" :
{
"code" : code_value,
"message" : "status_message",
"terminal_id" : "terminal_state",
"terminal_id" : "terminal_state",
...
}
}
L'état est uniquement renvoyé pour tous les terminaux connectés. L'état des terminaux désactivés et déconnectés n'est pas signalé.
Les valeurs de code d'état possibles sont répertoriées ci-dessous :
|
Valeur de code |
Description |
|
0 |
L'opération a réussi. |
|
100 |
Une erreur s'est produite lors du traitement de la requête. Pour plus d'informations, reportez-vous au message d'état. |
Les valeurs de terminal possibles sont out1 - out8.
Les valeurs d'état possibles sont les suivantes :
|
Valeur d'état |
Description |
|
up |
Le terminal est connecté et actif. |
|
down |
Le terminal est inactif. Le serveur Web connecté à ce terminal est arrêté ou n'est pas parvenu à effectuer le contrôle de l'intégrité de HALB. |
Exemple d'état de terminaux de sortie :
{
"status" :
{
"code" : 0,
"message": "",
"out1": "up",
"out2": "up",
"out3": "down",
"out4": "up"
}
}
HALB propose une interface utilisateur graphique de statistiques à l'aide du terminal ui. Diverses informations d'exécution sont disponibles par le biais de cette interface utilisateur graphique :
|
Parameter |
Description |
|
nbcproc |
Nombre d'UC disponibles pour HALB. |
|
uptime |
Durée de disponibilité d'HALB. |
|
system limits |
Limites de ressource imposées sur HALB par le système d'exploitation. |
|
memmax |
Mémoire disponible maximum pour HALB. |
|
ulimit-n |
Quantité maximum de fichiers ouverts simultanément. Les sockets réseau sont considérés comme des fichiers. |
|
maxsock |
Quantité maximum de sockets ouverts simultanément. |
|
maxconn |
Quantité maximum de connexions simultanées. Une fois ce nombre atteint, toutes les nouvelles connexions sont mises en file d'attente. |
|
current conns |
Nombre actuel de connexions actives. |
|
Statut du serveur |
Etat d'un serveur principal. UP - le serveur est fonctionnel, DOWN - le serveur n'est pas fonctionnel. |
|
Queue Curr. |
Longueur actuelle de la file d'attente des requêtes du serveur principal. |
|
Queue Max. |
La longueur maximale de la file d'attente atteinte du serveur principal au démarrage d'HALB. |
|
Sessions Curr. |
Numéro de sessions actives simultanément. |
|
Sessions Max. |
Le nombre maximum atteint de sessions actives simultanément. |
|
Sessions Cumul. |
Nombre total de sessions terminées. |
|
Errors Conn. |
Nombre d'erreurs qui se sont produites lors de la connexion à un serveur principal. |
|
Errors Resp. |
Nombre d'erreurs 5xx signalées par le serveur principal. |
|
Contrôle d'erreurs |
Nombre de contrôles d'intégrité ayant échoué pour un serveur principal. |
|
Errors Down |
Nombre de fois où le serveur d'arrière-plan est passé de l'état UP à DOWN. |
Si votre application doit effectuer de nombreux calculs pour produire chaque page, elle ne peut bien entendu servir simultanément qu'un nombre limité de clients. Toutefois, si la source de données est suffisamment rapide ou peut être répliquée et traitées à partir de plusieurs serveurs, HALB peut être utilisé pour augmenter le nombre de connexions à traiter simultanément. Un exemple typique peut être le traitement des cartes d'une base de données de cartographie. La base de données est lue rapidement, mais chaque chargement de page requiert que la carte se présente comme un fichier image.
Le diagramme suivant indique comment vous pouvez utiliser HALB pour employer plusieurs UC afin de traiter le même contenu, en fournissant une réponse plus rapide en cas de charge importante.

Les exemples de configuration ne reprennent que les propriétés définies sur des valeurs autres que celles par défaut.
|
Propriété |
Value (Valeur) |
Commentaires |
|
cookie_name |
Bugzilla_logincookie |
Il s'agit du nom utilisé par Bugzilla pour son cookie de connexion. |
|
mode |
passive |
Bugzilla publie des cookies uniques pour chaque combinaison nom d'utilisateur/adresse IP. Par conséquent, deux instances de bugzilla connectées à la même base de données ne renvoient jamais le même cookie. Le mode passif le plus simple peut de cette manière être utilisé en toute sécurité. Pour d'autres types de serveur, le paramètre sync peut être plus approprié. |
Pour les serveurs sans session, mais qui gardent des données mises en cache et ne peuvent pas bénéficier d'un client dirigé systématiquement dirigé vers le même serveur, la surveillance de cookie passive ne fonctionne pas étant donné l'absence de cookie à surveiller. Le mode insert est utilisé dans ce cas, comme dans ce tableau :
|
Propriété |
Value (Valeur) |
Commentaires |
|
cookie_name |
session_id |
Nom arbitraire. Veillez toutefois à ce qu'il ne corresponde pas à un nom utilisé par les serveurs à d'autres fins. |
|
mode |
insert |
HALB insère un cookie défini : en-tête |
La réussite d'un contrôle de l'intégrité d'un serveur Web principal ne garantit pas que les données renvoyées sont valides ou que la base de données dont elles dépendent sont toujours fonctionnelles. Une fonctionnalité qui permet à HALB de se distinguer est sa capacité de contrôler l'intégrité non seulement de façon conventionnelle (par une simple connexion au port 80 d'un serveur Web), mais également par le biais de méthodes plus avancées telles que http_head et http_get. Utilisée à bon escient, cette capacité aide à assurer la disponibilité non seulement des serveurs Web principaux, mais également leurs dépendances ainsi que leurs serveurs de base de données, d'application et de stockage. Dans cet exemple, deux fonctionnalités de contrôle de l'intégrité d'HALB sont utilisées. D'abord, un fichier spécial health_check.php est créé et son URL complète est spécifiée dans la propriété healthcheck_url. Lorsqu'il accède à ce fichier, il évalue la disponibilité de la base de données, de l'application ou des serveurs NAS et renvoie un document d'état contenant le texte ALL_SERVICES_ARE_OK. Cette valeur est spécifiée dans la propriété healthcheck_regexp.
HALB vérifie toutes les sorties (out1 - out8) avec les requêtes HTTP/1.1 GET en utilisant le site dans l'en-tête Host: HTTP et le fichier /health_check.php en tant qu'URL de document. Ces valeurs sont extraites de la propriété de healthcheck_url (http://site/health_check.php). Dans le document contenant des extraits de chaque serveur principal, HALB recherche la valeur de la propriété healthcheck_regexp (ALL_SERVICES_ARE_OK). Si cette ligne est trouvée, le serveur est considéré comme étant fonctionnel/opérationnel. Dans le cas contraire, le terminal de sortie est désactivé. Si la sortie est désactivée et que le contrôle de l'intégrité d'HALB réussit par la suite, la sortie est réactivée.
Lorsqu'aucun hôte virtuel n'est utilisé ou que le serveur principal ne prend pas en charge le protocole HTTP/1.1, la propriété healthcheck_url peut être spécifiée dans un format simple (/health_check.php). Dans ce cas, HALB utilise le protocole HTTP/1.0 et ne spécifie pas l'en-tête Host: HTTP.
|
Propriété |
Value (Valeur) |
Commentaires |
|
healthcheck_mode |
http_get |
HALB utilise le mode de contrôle de l'intégrité http_get. |
|
healthcheck_url |
http://site/health_check.php |
URL vérifiée par HALB. |
|
healthcheck_regexp |
ALL_SERVICES_ARE_OK |
|
Les serveurs de sauvegarde sont utilisés lorsque tous les serveurs principaux sont indisponibles. Un message pertinent ou une page de redirection doivent être fournis au client, au lieu d'erreurs ou de délais d'expiration. Dans l'exemple suivant, la sauvegarde de serveur est configurée en dernier recours, en fournissant uniquement une page statique indiquant aux clients qu'une maintenance technique est en cours. Lorsque les quatre serveurs srv1 - srv4 sont hors service, le contenu de la sauvegarde du serveur est traité.

|
Propriété |
Value (Valeur) |
Commentaires |
|
backup_outputs |
out8 |
|
L'interface de service Web de contrôle permet d'activer/de désactiver les terminaux de sortie d'HALB soit de façon dynamique, soit de façon programmée. Vous pouvez également l'utiliser pour récupérer l'état actuel de tous les terminaux de sortie. Cette interface est fournie via le terminal ctl d'HALB.
Le diagramme suivant affiche un environnement en cluster avec plusieurs serveurs Web et de base de données. Chaque serveur Web et de base de données a une connexion réactive au terminal ctl d'HALB. Si un serveur Web détecte un problème avec une base de données, la connectivité ou les performances, il peut désactiver le terminal de sortie correspondant, en ordonnant à HALB d'arrêter de diriger le trafic vers le serveur Web. De même, un serveur de base de données peut désactiver les terminaux de sortie d'HALB, en désactivant ainsi tout le trafic entrant. Une fois le problème résolu, les terminaux de sortie peuvent être réactivés.

Logiciels Open Source et tiers utilisés au sein de l'appliance
HALB utilise les packages Open Source tiers suivants en plus des packages Open Source tiers utilisés par sa classe de base LUX5.
|
Logiciel |
Version |
Modifié |
Licence |
Commentaires |
|
haproxy |
1.4.9 |
Non |
GPLv2 |
page d'accueil |
|
php-thttpd |
2.25b |
Non |
BSD |
N/D |
| Copyright © 2012 CA. Tous droits réservés. |
|