Configuration d'un système Oracle® Solaris 11.2 en tant que routeur ou équilibreur de charge

Quitter la vue de l'impression

Mis à jour : Septembre 2014
 
 

Surveillance de l'état de fonctionnement dans ILB

    ILB fournit les types de contrôle de l'intégrité du serveur facultatifs suivants :

  • Tests ping intégrés

  • Tests TCP intégrés

  • Tests UDP intégrés

  • Tests personnalisés fournis par l'utilisateur pouvant être exécutés comme des vérifications de l'état

Par défaut, ILB n'effectue aucune vérification de l'état. Vous pouvez spécifier des vérifications de l'état de chaque groupe de serveurs lors de la création d'une règle d'équilibrage de la charge. Vous pouvez configurer une seule vérification de l'état par règle d'équilibrage de la charge. Tant qu'un service virtuel est activé, les contrôles de l'intégrité définis sur le groupe de serveurs associé à ce service virtuel démarrent automatiquement et se répètent de manière périodique. Les vérifications de l'état cessent dès que le service virtuel est désactivé. Notez que les statuts de vérification de l'état ne sont pas conservés à la réactivation du service virtuel.

Lorsque vous spécifiez un test TCP, UDP ou personnalisé pour vérifier l'état d'un serveur, l'équilibreur de charge intégré envoie une commande ping par défaut pour déterminer s'il est accessible avant d'envoyer le test proprement dit. En cas d'échec du test ping, le serveur est désactivé, et son état passe à unreachable. Si la commande ping aboutit, mais que le test TCP, UDP ou personnalisé échoue, le serveur est désactivé et son état passe à dead.

Vous pouvez désactiver le test ping par défaut UDP à l'exception des du test UDP. Le test ping est toujours le test par défaut pour les vérifications d'état UDP.

Création d'une vérification de l'état

Vous pouvez créer une vérification de l'état et affecter la vérification de l'état à un groupe de serveurs lors de la création d'une règle d'équilibrage de charge. L'exemple de commande ci-dessous montre comment sont crées les objets de vérification de l'état hc1 et hc-myscript. La première vérification de l'état met en oeuvre le test TCP intégré, Le second contrôle de l'intégrité utilise un test personnalisé : /var/tmp/my-script.

# ilbadm create-healthcheck -h hc-timeout=3,\
hc-count=2,hc-interval=8,hc-test=tcp hc1
# ilbadm create-healthcheck -h hc-timeout=3,\
hc-count=2,hc-interval=8,hc-test=/var/tmp/my-script hc-myscript

Les arguments sont les suivants :

hc-timeout

Spécifie le délai d'expiration au terme duquel le système considère que la vérification de l'état a échoué si elle n'est pas terminée.

hc-count

Spécifie le nombre de tentatives d'exécution de la vérification de l'état hc-test.

hc-interval

Spécifie l'intervalle de temps à respecter entre deux vérifications consécutives. Pour éviter l'envoi de sondes à tous les serveurs en même temps, l'intervalle est défini de manière aléatoire entre 0.5 * hc-interval et 1.5 * hc-interval.

hc-test

Indique le type de vérification de l'état. Vous pouvez spécifier les vérifications d'état intégrées, telles que tcp, udp et ping ou une vérification d'état externe qui doit être indiquée avec son chemin d'accès complet.


Remarque -  Le port réservé au test hc-test est spécifié avec le mot clé hc-port dans la sous-commande create-rule. Pour plus d'informations, reportez-vous à la page de manuel ilbadm(1M).

Un test personnalisé fourni par l'utilisateur peut être un fichier binaire ou un script.

  • Le test peut résider n'importe où sur le système. Vous devez indiquer le chemin d'accès absolu par le biais de la sous-commande create-healthcheck.

    Lorsque vous définissez ce test (par exemple /var/tmp/my-script) pour le contrôle de l'intégrité dans la sous-commande create-rule, le démon ilbd clone un processus et exécute le test comme suit :

    /var/tmp/my-script $1 $2 $3 $4 $5

    Les arguments sont les suivants :

    $1

    VIP (adresse IPv4 ou IPv6 littérale)

    $2

    IP du serveur (adresse IPv4 ou IPv6 littérale)

    $3

    Protocole (UDP, TCP sous forme de chaîne)

    $4

    Plage de ports numérique (valeur spécifiée par l'utilisateur pour hc-port )

    $5

    Durée maximale (en secondes) à respecter avant de considérer que le test a échoué. Si le test n'est pas terminé au terme de ce délai, il peut être interrompu et associé à un statut d'échec. Cette valeur définie par l'utilisateur est indiquée dans hc-timeout.

    • Le test fourni par l'utilisateur peut comprendre la totalité ou une partie des arguments, mais il doit impérativement renvoyer une des informations suivantes :

    • Temps d'aller-retour réseau (en microsecondes)

    • 0 si le test ne calcule pas le temps d'aller-retour réseau

    • -1 en cas d'échec

Par défaut, le test de vérification de l'état s'exécute avec les privilèges: PRIV_PROC_FORK, RIV_PROC_EXEC et RIV_NET_ICMPACCESS.

Si un ensemble de privilèges plus large est requis, il faut implémenter setuid dans le test. Pour plus d'informations sur les privilèges, reportez-vous à la page de manuel privileges(5).

Liste des contrôles de l'intégrité

Pour obtenir des informations détaillées sur les vérifications configurées, exécutez la commande suivante :

# ilbadm show-healthcheck
HCNAME      TIMEOUT COUNT   INTERVAL DEF_PING TEST
hc1         3       2       8        Y        tcp
hc2         3       2       8        N        /var/usr-script

Affichage des résultats des vérifications de l'état

Utilisez la commande ilbadm list-hc-result pour obtenir les résultats des contrôles de l'intégrité. Si vous ne spécifiez pas de règle ou de vérification de l'état, la sous-commande répertorie toutes les vérifications configurées.

L'exemple de commande ci-dessous affiche les résultats des vérifications de l'état associées à une règle nommée rule1.

# ilbadm show-hc-result rule1
RULENAME   HCNAME     SERVERID   STATUS   FAIL LAST      NEXT      RTT
rule1      hc1        _sg1:0     dead     10   11:01:19  11:01:27  941
rule1      hc1        _sg1:1     alive    0    11:01:20  11:01:34  1111 

Remarque -  La sous-commande show-hc-result affiche la vérification de l'état uniquement quand les règles sont associées à des vérifications de l'état.

La colonne LAST du tableau indique l'heure de la dernière vérification de l'état du serveur. La colonne NEXT affiche l'heure à laquelle la prochaine vérification de l'état sera effectuée.

Suppression d'une vérification de l'état

Vous pouvez supprimer une vérification de l'état à l'aide de la commande ilbadm delete-healthcheck. L'exemple de commande ci-dessous supprime une vérification de l'état nommée hc1 :

# ilbadm delete-healthcheck hc1