Arrêt gracieux des services

Lors de pannes réseau planifiées, telles que les mises à niveau du système ou la maintenance matérielle, vous devrez peut-être fermer ou désactiver certains services. Vous pouvez ensuite activer le service en utilisant la commande “ enable service <name>.

Pour éviter d’interrompre les sessions établies, vous pouvez placer un service dans l’état Transition Out of Service (TROFS) en procédant de l’une des manières suivantes :

  • Ajout d’un code ou d’une chaîne TROFS au moniteur : configurez le serveur pour qu’il envoie un code ou une chaîne spécifique en réponse à une sonde de moniteur.
  • Désactivez explicitement le service et :
    • Définissez un délai (en secondes).
    • Activez l’arrêt gracieux.

Ajout d’un code ou d’une chaîne TROFS

Si vous ne liez qu’un seul moniteur à un service et que le moniteur est compatible TroFS, il peut placer le service dans l’état TROFS en fonction de la réponse du serveur à une sonde de moniteur. Cette réponse est comparée à la valeur du paramètre trofsCode pour un moniteur HTTP ou le paramètre trofsString pour un moniteur HTTP ECV ou TCP-ECV. Si le code correspond, le service est placé dans l’état TROFS. Dans cet état, il continue d’honorer les connexions persistantes.

Si plusieurs moniteurs sont liés à un service, l’état effectif du service est calculé sur la base de l’état de tous les moniteurs liés au service. Lors de la réception d’une réponse TROFS, l’état du moniteur compatible TROFS est considéré comme UP aux fins de ce calcul. Pour plus d’informations sur la façon dont une appliance Citrix ADC désigne un service comme UP, reportez-vous à la section Définition d’une valeur de seuil pour les moniteurs liés à un service.

Important :

  • Vous pouvez lier plusieurs moniteurs à un service, mais vous ne devez pas activer TroFS plusieurs d’entre eux.
  • Vous pouvez convertir un moniteur compatible TroFS en un moniteur qui n’est pas compatible TroFS, mais pas l’inverse.

Pour configurer un code ou une chaîne TROFS dans un moniteur à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez l’une des commandes suivantes :

add lb monitor <monitor-name> HTTP -trofsCode <respcode>

add lb monitor <monitor-name> HTTP-ECV  -trofsString <resp string>

add lb monitor <monitor-name> TCP-ECV  -trofsString <resp string>

Pour modifier le code ou la chaîne TROFS à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez l’une des commandes suivantes :

set lb monitor <trofs monitorname> HTTP -trofscode <newcode>

set lb monitor <trofs monitorname> HTTP-ECV -trofsstring <new string>

set lb monitor <trofs monitorname> TCP-ECV -trofsstring <new string>

Remarque : Vous pouvez utiliser la commande set uniquement si un moniteur compatible TroFS a été ajouté précédemment. Vous ne pouvez pas utiliser cette commande pour définir le code ou la chaîne TROFS pour un moniteur qui n’est pas activé TroFS.

Pour configurer un code ou une chaîne TROFS dans un moniteur à l’aide de l’utilitaire de configuration

  1. Accédez à Gestion du trafic > Équilibrage de charge > Moniteurs.
  2. Dans le volet Moniteurs, cliquez sur Ajouter, puis effectuez l’une des opérations suivantes :
    • Sélectionnez Type as HTTP, puis spécifiez un code TROFS.
    • Sélectionnez Type en tant que HTTP-ECV ou TCP-ECV, puis spécifiez une chaîne TROFS.

Désactivation d’un service

Souvent, cependant, vous ne pouvez pas estimer le temps nécessaire à toutes les connexions à un service pour effectuer les transactions existantes. Si une transaction n’est pas terminée à l’expiration du temps d’attente, l’arrêt du service peut entraîner une perte de données. Dans ce cas, vous pouvez spécifier un arrêt progressif pour le service, de sorte que le service n’est désactivé que lorsque toutes les connexions clientes actives actuelles sont fermées par le serveur ou le client. Consultez le tableau suivant pour connaître le comportement si vous spécifiez un temps d’attente en plus de l’arrêt progressif.

La persistance est maintenue selon la méthode spécifiée même si vous activez l’arrêt gracieux. Le système continue de servir tous les clients persistants, y compris les nouvelles connexions des clients, sauf si le service est marqué comme DOWN pendant l’état d’arrêt gracieux à la suite des vérifications effectuées par un moniteur.

Le tableau suivant décrit les options d’arrêt gracieuses.

État Résultats
L’arrêt progressif est activé et un temps d’attente est spécifié. Le service est arrêté après que la dernière des connexions client actives en cours est servie, même si le temps d’attente n’a pas expiré. L’appliance vérifie l’état des connexions une fois par seconde. Si le temps d’attente expire, toutes les sessions ouvertes sont fermées.
L’arrêt gracieux est désactivé et un temps d’attente est spécifié. Le service n’est arrêté qu’après l’expiration du temps d’attente, même si toutes les connexions établies sont desservies avant l’expiration.
L’arrêt progressif est activé et aucun temps d’attente n’est spécifié. Le service n’est arrêté qu’une fois que la dernière des connexions précédemment établies est servie, quel que soit le temps nécessaire pour servir la dernière connexion.
L’arrêt gracieux est désactivé et aucun temps d’attente n’est spécifié. Pas d’arrêt gracieux. Le service est arrêté immédiatement après le choix de l’option disable ou l’émission de la commande disable. (Le temps d’attente par défaut est de zéro seconde.)

Pour mettre fin à des connexions existantes lorsqu’un service ou un serveur virtuel est marqué vers le bas, vous pouvez utiliser l’option Down State Flush. Pour de plus amples informations, consultez la section Activation du nettoyage des connexions de serveur virtuel.

Pour configurer l’arrêt progressif d’un service à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez les commandes suivantes pour arrêter correctement un service et vérifier la configuration :

disable service <name> [<delay>] [-graceFul (YES|NO)]

show service <name>

Exemple :

> disable service svc1 6000 -graceFul YES
Done
>show service svc1
svc1 (10.102.80.41:80) - HTTP
State: GOING OUT OF SERVICE (Graceful, Out Of Service in 5998 seconds)
Last state change was at Mon Nov 15 22:44:15 2010
Time since last state change: 0 days, 00:00:01.160
...
Down state flush: ENABLED

1 bound monitor:
1) Monitor Name: tcp-default
State: UP             Weight: 1
Probes: 13898    Failed [Total: 0 Current: 0]
Last response: Probe skipped - live traffic to service.
Response Time: N/A
Done

>show service svc1
svc1 (10.102.80.41:80) - HTTP
State: OUT OF SERVICE
Last state change was at Mon Nov 15 22:44:19 2010
Time since last state change: 0 days, 00:00:03.250
Down state flush: ENABLED

1 bound monitor:
1)  Monitor Name: tcp-default
State: UNKNOWN           Weight: 1
Probes: 13898    Failed [Total: 0 Current: 0]
Last response: Probe skipped - service state OFS.
Response Time: N/A
Done

Pour configurer l’arrêt progressif d’un service à l’aide de l’utilitaire de configuration

  1. Accédez à Gestion du trafic > Équilibrage de charge > Services.
  2. Ouvrez le service, puis dans la liste Action, cliquez sur Désactiver. Entrez un temps d’attente, puis sélectionnez Graceful.