Introduction
Ce document décrit la fonctionnalité « Gestion d'assertion gracieuse », introduite dans la version 21.5.0 de StarOS.
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- StarOs
- SGSN (Serving GPRS Support Node)
Composants utilisés
Les informations contenues dans ce document sont basées sur StarOS R21.5 et versions ultérieures.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Informations générales
La fonction est disponible dans la documentation officielle à l'adresse suivante : Guide d'administration SGSN.
L'infrastructure de traitement d'assertion en douceur permet le traitement en douceur des sessions d'abonné pour lesquelles la condition ASSERT est atteinte au moment de l'exécution de l'appel. Ceci est réalisé sans affecter d'autres sessions d'abonnés sur le même proclet.
Normalement, lorsque la condition ASSERT est remplie, le proclète Session Manager (SessMgr) redémarre et récupère toutes les sessions d'abonnés à partir de AAA Manager (AAAMgr). Les sessions d'abonné restaurées passent à l'état INACTIF.
Lorsque la gestion d'assertions en douceur est activée, le proclète SessMgr n'est pas redémarré. Au lieu de cela, le proclet SessMgr récupère uniquement la session de l'abonné affecté à partir d'AAAMgr et efface la session de l'abonné existant sur le SessMgr. Les sessions d'abonné restaurées passent à l'état INACTIF. Au moment de la procédure de récupération, tous les messages dirigés vers l'abonné sont abandonnés. Après la récupération, l'abonné continue à gérer les messages qui lui sont adressés. Avec cette procédure, les sessions d'abonné qui restent sur le SessMgr ne sont pas affectées.
Problème
Il existe des cas de collision et/ou de collision pour lesquels la cause première est complexe ou la cause première inconnue. Dans ces cas, une approche d'affirmation progressive est adoptée afin d'éviter un redémarrage complet du gestionnaire de session.
Solution
Avec l'assertion gracieuse, vous pouvez nettoyer et restaurer la session 1 qui atteint la condition d'assertion gracieuse.
Aucune autre session n'a d'impact sur le même sessmgr.
Il n'y a pas de déroutement SNMP ni de syslog pour un redémarrage en douceur.
Il n'y a pas de perte de KPI en cas d'assertion gracieuse. La tâche n'est pas redémarrée.
Cependant, les assertions gracieuses sont traitées comme n'importe quel autre crash, ce qui signifie que vous obtenez une entrée dans la liste show crash.
Comment identifier une affirmation gracieuse à partir du SSD :
- Vidage d'état initié par le système avec coeur. - apparaît sous la sortie « show crash » avant la pile
- crashed proclet est initié par l'utilisateur ou non boxer - est vu après la pile sous la sortie « debug console cpu »
- pid 7939 facility sessmgr failover 5132->94 - sous «debug console CPU» n'est pas consigné/vu en cas d'assertion gracieuse
Configurer
La gestion d'assertion en douceur peut être configurée comme suit :
configure
debug controlled-assert s4sgsn
[ disable | enable ] core-generation
limit-per-assert assert_value
[ no ] test file-name file_name line-number line_num [ sequence-number seq_num ]
end A noter :
-
assertion contrôlée : Configure l'infrastructure d'assertions contrôlées.
-
s4sgsn : Configure l'assertion contrôlée S4-SGSN.
-
génération de base : Configure la génération principale pour l'assertion contrôlée. Par défaut : Activée.
-
limit-per-assert : Configure la limite par assertion pour l'assertion contrôlée. Par défaut : 5.
-
test nom_fichier nom_fichier numéro_ligne numéro_ligne [ numéro_séquence numéro_séquence numéro_séquence ] : Configure la gestion des tests d'assertion contrôlée.
-
nom_fichier nom_fichier : Configure le nom du fichier où le contrôle d'assertion est requis. nom_fichier doit être une chaîne alphanumérique de 1 à 254 caractères.
-
numéro_ligne numéro_ligne : Configure le numéro de ligne où le contrôle d'assertion est requis. line_num doit être un entier compris entre 1 et 4294967295.
-
sequence-number numéro_séquence : Configure le numéro d'ordre où le contrôle d'assertion est requis. seq_num doit être un entier compris entre 1 et 100. Valeur par défaut : 1.
-
désactiver : Désactive l'action spécifiée pour une structure d'assertion contrôlée.
-
activer : Active l'action spécifiée pour une structure d'assertion contrôlée.
-
non: Supprime la configuration de test spécifiée liée à l'infrastructure d'assertion contrôlée.
Exemple
********************* CRASH #93 ***********************
SW Version : 21.5.19
Similar Crash Count : 8
Time of First Crash : 2019-May-21+06:57:14
Fatal Signal 6: Aborted
Note: System-initiated state dump w/core. <<< This note indicates a graceful assert.
Process: card=10 cpu=0 arch=X pid=11573 cpu=~16% argv0=sessmgr
Crash time: 2019-May-23+06:00:13 UTC
Recent errno: 11 Resource temporarily unavailable
Build_number: 71813
Vérifier
Référez-vous à cette section pour vous assurer du bon fonctionnement de votre configuration.
Exemple d'obtention des statistiques d'assertion contrôlée pour tous les sessmgrs actifs :
# zcat ssd_s4sgn.log.gz | sed -n -e '/\*\{7\} show session subsystem facility sessmgr all debug-info /,/\*\{7\}/p' | sed -e '/^SessMgr: /,/^Controlled Assert Stats/{/^SessMgr: /!{/^Controlled Assert Stats/!d}}' | grep -E "SessMgr: Instance [0-9]{1,3}$" -A 10Exemple de rapport :
SessMgr: Instance 135
Controlled Assert Stats
Module Name :SGW_DRV
Assert Count:0
Count File:Line Last Assert hit time(in sec)
Module Name :S4_SGSN
Assert Count:1
Count File:Line Last Assert hit time(in sec)
1 sess/sgsn/sgsn-app/s4_sm/s4_smn_egtpc.c:3164 2019/01/30 09:28:11 UTC
Ces informations (nombre et numéro de ligne) sont réinitialisées si le sessmgr redémarre pour toute autre panne. Une fois le nombre maximal de fois atteint (5 par défaut), le coeur n'est pas généré.
Dépannage
Il n'existe actuellement aucune information de dépannage spécifique pour cette configuration.