Vendredi 16 novembre 2012 5 16 /11 /Nov /2012 20:50

 

Petit article sur la configuration du déport Console Série et des interruptions NMI sur les serveurs Dell (gamme PowerEdge Rxx0).

 

 

Configuration d'un déport Console Série

 

La redirection série s’effectue par défaut sur le COM2 pour les serveurs Dell. Il est donc nécessaire d’effectuer quelques modifications dans Solaris si vous souhaitez l’utiliser correctement.

 

Il y a deux paramètres importants lors de la configuration : le numéro du port COM et sa vitesse. Ces valeurs doivent correspondre impérativement à la configuration présente dans le BIOS du serveur. Dans mon cas, la redirection série s’effectue sur le COM2 avec une vitesse de 115200 bauds.

 

Mise à jour de grub

 

# cat /rpool/boot/grub/menu.lst
#pragma ident   "@(#)menu.lst   1.1     05/09/01 SMI"
#
# default menu entry to boot
default 0
[…]

#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title Solaris 10 9/10 s10x_u9wos_14a X86
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS,console=ttyb,ttyb-mode="115200,8,n,1,-"
module /platform/i86pc/boot_archive
#---------------------END BOOTADM--------------------
#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title Solaris failsafe
findroot (pool_rpool,0,a)
kernel /boot/multiboot -s -B console=ttyb,ttyb-mode="115200,8,n,1,-"
module /boot/amd64/x86.miniroot-safe
#---------------------END BOOTADM--------------------

 

 

Mise à jour des « boot environment variables »

 

# cat /boot/solaris/bootenv.rc                             
#
# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
 
#ident  "@(#)bootenv.rc 1.33    07/03/03 SMI"
#
#       bootenv.rc -- boot "environment variables"
#
setprop ata-dma-enabled '1'
setprop atapi-cd-dma-enabled '0'
setprop ttyb-rts-dtr-off 'false'
setprop ttyb-ignore-cd 'true'
setprop ttya-rts-dtr-off 'false'
setprop ttya-ignore-cd 'true'
setprop ttyb-mode '115200,8,n,1,-'
setprop ttya-mode '9600,8,n,1,-'
setprop lba-access-ok '1'
setprop prealloc-chunk-size '0x2000'
setprop console 'ttyb'

 

 

Modification du manifest console-login.xml

 

L'entrée suivante

 

<propval name='label' type='astring' value='console' />

 

devient

 

<propval name='label' type='astring' value='115200' />

 

 

Modification du module asy

 

# cat /kernel/drv/asy.conf
#
# Copyright (c) 1999 by Sun Microsystems, Inc.
# All rights reserved.
#

#pragma ident   "@(#)asy.conf   1.12    99/03/18 SMI"

interrupt-priorities=12;
name="asy" parent="isa" reg=1,0x2f8,8 interrupts=3;

 

 

Un arrêt + relance du serveur est nécessaire pour valider les modifications. Il vous suffit ensuite de vous connecter au déport console (iDrac) pour valider le bon fonctionnement de la redirection.

 

 

Configuration NMI sur serveurs Dell

 

Sur l’ancienne gamme Dell (tous sauf la gamme gen12), il suffisait d’ajouter le setting ci-dessous dans le fichiers system pour pouvoir interpréter l’interruption NMI envoyée.

 

# grep nmi /etc/system
set pcplusmp:apic_kmdb_on_nmi=1
set pcplusmp:apic_panic_on_nmi=1

 

Pour votre culture, le setting « pcplusmp:apic_kmdb_on_nmi » fonctionne uniquement si le kernel est activé en mode debug (instruction kdb à ajouter dans grub).

 

Etrangement ce setting ne fonctionne plus avec la gamme gen12. Je sais résoudre ce problème sans trop comprendre les raisons subtils du changemennt. En fait le module « pcplusmp » ne semble plus fonctionner (même si vous le charger correctement) pour interpréter les instructions NMI. En recherchant un peu, j’ai decouvert un autre module assez intéressant.

 

# cd /kernel/mach
# ls -l
total 757
drwxr-xr-x   2 root     sys            4 Sep 20 15:04 amd64
-rwxr-xr-x   1 root     sys       137528 May 29 10:30 apix
-rwxr-xr-x   1 root     sys       120824 May 29 10:30 pcplusmp

 

Les deux modules « apix » et « pcplusmp » comportent les mêmes variables nmi.

 

# /usr/ccs/bin/nm ./apix | grep -i nmi
[204]   |       432|         4|OBJT |LOCL |0    |4      |acpi_nmi_ccnt
[205]   |       436|         4|OBJT |LOCL |0    |4      |acpi_nmi_cp
[207]   |       440|         4|OBJT |LOCL |0    |4      |acpi_nmi_scnt
[206]   |       444|         4|OBJT |LOCL |0    |4      |acpi_nmi_sp
[590]   |       476|         4|OBJT |GLOB |0    |4      |apic_kmdb_on_nmi
[549]   |     42121|       176|FUNC |GLOB |0    |1      |apic_nmi_intr
[550]   |         1|         1|OBJT |GLOB |0    |COMMON |apic_nmi_lock
[350]   |       532|         4|OBJT |GLOB |0    |4      |apic_num_nmis
[349]   |       652|         4|OBJT |GLOB |0    |4      |apic_panic_on_nmi
[263]   |         0|         0|FUNC |GLOB |0    |UNDEF  |psm_add_nmintr
[655]   |         0|         0|FUNC |GLOB |0    |UNDEF  |tenmicrosec

 

# /usr/ccs/bin/nm ./pcplusmp | grep -i nmi
[171]   |       376|         4|OBJT |LOCL |0    |4      |acpi_nmi_ccnt
[172]   |       380|         4|OBJT |LOCL |0    |4      |acpi_nmi_cp
[174]   |       384|         4|OBJT |LOCL |0    |4      |acpi_nmi_scnt
[173]   |       388|         4|OBJT |LOCL |0    |4      |acpi_nmi_sp
[491]   |       420|         4|OBJT |GLOB |0    |4      |apic_kmdb_on_nmi
[453]   |     33189|       176|FUNC |GLOB |0    |1      |apic_nmi_intr
[454]   |         1|         1|OBJT |GLOB |0    |COMMON |apic_nmi_lock
[300]   |       476|         4|OBJT |GLOB |0    |4      |apic_num_nmis
[299]   |       596|         4|OBJT |GLOB |0    |4      |apic_panic_on_nmi
[224]   |         0|         0|FUNC |GLOB |0    |UNDEF  |psm_add_nmintr
[549]   |         0|         0|FUNC |GLOB |0    |UNDEF  |tenmicrosec

 

J’ai forcé le chargement du module « apix » (dans le fichier system) pour tester l’interruption NMI.

 

# grep apix /etc/system
forceload: mach/apix
set apix:apic_panic_on_nmi=1

 

Soit on modifie la valeur dynamiquement (après avoir loader le module apix) soit on effectue un petit arrêt + relance pour valider la configuration. J'utilise l'outil ipmitool pour générer l'instruction NMI (via le déport console) depuis un autre serveur (natuellement).

 

# ipmitool -I lanplus -U <user> -H <serveur-sp> power diag

 

 

Il ne s'agit pas de grand chose mais la configuration correct d'un déport console (accessible facilement via ssh et non via une interface graphique !!) et la configuration correct du serveur pour pouvoir, en cas de hang (ou pas), prendre facilement un core sont deux éléments obligatoires pour toute production. Je suis encore surpris de rencontrer certaines productions où ces configurations de bases ne sont pas présentes.

 

 

Pour aller plus loin :

 

Par gloumps - Publié dans : administration
Ecrire un commentaire - Voir les 0 commentaires
Retour à l'accueil

Présentation

Informations personnelles

  • Passionné d'informatique, je travaille actuellement comme expert système Solaris. Vous trouverez plus de renseignements à mon sujet sur mon profil Linkedin.

Flux RSS

  • Flux RSS des articles

Recherche

Calendrier

Juillet 2014
L M M J V S D
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
<< < > >>
Créer un blog gratuit sur over-blog.com - Contact - C.G.U. - Signaler un abus - Articles les plus commentés