Gestion IPMI

Fonctionnement

Pour la première fois, Dedibox propose la technologie IPMI.

IPMI (Intelligent Platform Management Interface) est un système d'administration et de surveillance de votre matériel serveur en réseau. Ce système permet :

  • D'éteindre, allumer et rebooter votre serveur à distance
  • Controler l'ensemble des éléments de votre serveur : Température, tensions, état des ventilateurs, temps de fonctionnement …
  • Vous prévenir automatiquement (mail, snmp …) en cas de défaillance du matériel (Disque dur, température, ventilateurs, tensions et défaut d'alimentation …)
  • Consulter et gérer l'ensemble des journaux (logs) du BIOS
  • Accéder au port série et au BIOS en réseau (console série)

Il est géré depuis une carte BMC (Baseboard Management Controller), un ensemble totalement indépendant, composé d'un BUS I2C et d'un processeur dédié, connecté à votre carte réseau, fonctionnant de manière permanante même lorsque votre serveur est totalement planté ou hors service.

Le BMC utilisé est fabriqué par Intel (iBMC) et tourne sous Linux sans modifications de Dedibox. Les sources sont disponibles sur le site Internet d'Intel.

Compatibilité

IPMI est compatible avec tous les serveurs Dedibox PRO et inclus dans le service de base sans supplément de prix.

Des clients IPMI sont disponibles pour Linux (ipmitool) et Windows (IPMIView ou IPMIUtil)

Sous Linux Debian et Ubuntu, faites :

# apt-get install ipmitool

Configuration initiale

Avertissement très important : Le retrais ou l'altération (changement de mot de passe, désactivation etc…) des utisateurs IPMI “dedibox” et “support” ou la modification de la configuration réseau de votre BMC IPMI, indispensables au bon fonctionnement du système d'information Dedibox, provoque l'annulation immédiate de toutes les garanties (SLA réseau et GTI hardware) et support technique Dedibox.

Etape 1 - Configuration de la liste d'accès

Dans votre console de gestion Dedibox, rubrique “matériel” puis “Informations et configuration IPMI”, indiquez dans la rubrique “liste d'accès” une liste d'adresses IP autorisées à se connecter au controleur IPMI de votre serveur.

Notez l'adresse IP dédiée de votre controleur IPMI, indiqué dans cette rubrique. Remarque : Les modifications des listes d'accès ne sont pas instantanées et sont appliquées tous les jours à 22h00 et 11h00.

Etape 2 - Ajout d'un utilisateur

Sur votre serveur sous Linux ou depuis le rescue Dedibox, installez l'utilitaire “ipmitool”

# apt-get install ipmitool

Chargez les drivers kernel ipmi :

# modprobe ipmi_si
# modprobe ipmi_devintf
# echo "ipmi_devintf" >> /etc/modules
# echo "ipmi_si" >> /etc/modules

Les utilisateurs configurables ont un ID compris entre 8 et 15 (Ne touchez pas aux utilisateurs compris entre 1 et 7)

Ajoutez votre utilisateur dans le controleur IPMI de votre serveur. Par exemple, pour rajouter l'utilisateur “dediboxrox” en numéro 8, avec le mot de passe “Whouah” :

# ipmitool -U root user set name 8 dediboxrox
# ipmitool -U root user set password 8 Whouah
# ipmitool -U root user enable 8
Etape 3 - Testez votre configuration
  • Depuis l'ordinateur distant dont l'adresse IP est configurée dans la liste d'accès de l'étape 1, installez le logiciel ipmitool
  • Essayez de vous connecter en IPMI au controleur de votre serveur en exécutant une commande, par exemple “chassis status” (remplacez les XX.XX.XX.XX par l'adresse IP IPMI de votre serveur) :
duracell@betonneuse:~/tmp$ ipmitool -I lanplus -U dediboxrox -P Whouah -H XX.XX.XX.XX chassis status 
System Power         : on
Power Overload       : false
Power Interlock      : inactive
Main Power Fault     : false
Power Control Fault  : false
Power Restore Policy : always-on
Last Power Event     : 
Chassis Intrusion    : inactive
Front-Panel Lockout  : inactive
Drive Fault          : false
Cooling/Fan Fault    : false
Sleep Button Disable : not allowed
Diag Button Disable  : not allowed
Reset Button Disable : allowed
Power Button Disable : allowed
Sleep Button Disabled: false
Diag Button Disabled : false
Reset Button Disabled: true
Power Button Disabled: true
duracell@betonneuse:~/tmp$ 

Cette commande vous donne le status de votre chassis Dedibox.

Utilisation

Voici une liste des principales commandes IPMI. A noter, il existe de très nombreuses autres commandes et fonctionnalités accessibles depuis IPMI et EFI, comme la gestion des alarmes, la possibilité d'effectuer des actions (email, snmptrap etc…) en cas d'alerte, booter sur une image ISO particulière etc…

Commandes chassis

Note : les commandes non documentées ne sont pas implémentées.

  • chassis status : Connaitre l'état de son chassis serveur (alimentation, voyants, boutons, alarmes …)
  • chassis power on : Allumer son serveur
duracell@betonneuse:~/tmp$ ipmitool -I lanplus -U dediboxrox -P Whouah -H XX.XX.XX.XX chassis power on
Chassis Power Control: Up/On
  • chassis power off : Eteindre son serveur
duracell@betonneuse:~/tmp$ ipmitool -I lanplus -U dediboxrox -P Whouah -H XX.XX.XX.XX chassis power off
Chassis Power Control: Down/Off
  • chassis power cyle : Eteind le serveur, attends 10 secondes puis rallume le serveur (reset électrique)
  • chassis power reset : Appuie sur le bouton reset de la carte mère du serveur
duracell@betonneuse:~/tmp$ ipmitool -I lanplus -U dediboxrox -P Whouah -H XX.XX.XX.XX chassis power reset
Chassis Power Control: Reset
  • chassis power diag : Effectue un test de l'alimentation
  • chassis power soft : Appuie sur ctrl + alt + del (reset soft)
  • chassis selftest : Effectue un test bas niveau du serveur
duracell@betonneuse:~/tmp$ ipmitool -I lanplus -U dediboxrox -P Whouah -H XX.XX.XX.XX chassis selftest
Self Test Results    : passed
Commandes mc
  • mc reset warm : Reset du controleur IPMI, en cas de plantage.
Commandes sensor
  • sensor list (ou sdr list full) : Permet de lister l'ensemble des sondes (température, ventilateurs etc…) du serveur.
duracell@betonneuse:~/tmp$ ipmitool -I lanplus -U dediboxrox -P Whouah -H XX.XX.XX.XX sensor list
BB +1.8V SM      | na         | Volts      | na    | na        | 1.597     | 1.646     | 1.960     | 2.019     | na        
BB +3.3V         | na         | Volts      | na    | na        | 2.876     | 2.970     | 3.618     | 3.729     | na        
BB +3.3V STBY    | 3.239      | Volts      | ok    | na        | 2.876     | 2.970     | 3.618     | 3.729     | na        
BB +5.0V         | na         | Volts      | na    | na        | 4.362     | 4.483     | 5.495     | 5.663     | na        
Processor Vcc    | na         | Volts      | na    | na        | 0.774     | 0.804     | 1.460     | 1.509     | na        
BB Ambient Temp  | 29.000     | degrees C  | ok    | na        | 5.000     | 10.000    | 61.000    | 66.000    | na        
System Fan 3     | na         | RPM        | na    | na        | 2160.000  | 2457.000  | na        | na        | na        
System Fan 4     | na         | RPM        | na    | na        | 2160.000  | 2457.000  | na        | na        | na        
P1 Therm Margin  | na         | degrees C  | na    | na        | na        | na        | na        | na        | na        
Power Unit       | 0x0        | discrete   | 0x0100| na        | na        | na        | na        | na        | na        
IPMI Watchdog    | 0x0        | discrete   | 0x0000| na        | na        | na        | na        | na        | na        
Processor Status | 0x0        | discrete   | 0x0000| na        | na        | na        | na        | na        | na        
Commandes sel

* sel info : Permet d'avoir des informations sur le stockage des journaux du BIOS (logs), notament l'espace disponible

duracell@betonneuse:~/tmp$ ipmitool -I lanplus -U dediboxrox -P Whouah -H XX.XX.XX.XX sel info  
SEL Information
Version          : 1.5 (v1.5, v2 compliant)
Entries          : 439
Free Space       : 57600 bytes
Percent Used     : 10%
Last Add Time    : 08/11/2008 23:47:39
Last Del Time    : Not Available
Overflow         : false
Supported Cmds   : 'Partial Add' 'Reserve' 'Get Alloc Info' 
# of Alloc Units : 3639
Alloc Unit Size  : 18
# Free Units     : 3200
Largest Free Blk : 3200
Max Record Size  : 12
  • sel clear : Permet d'effacer tous les journaux (logs) du BIOS
  • sel list YY : Permet d'afficher les logs du BIOS du serveur, remplacez YY par le nombre de ligne que vous souhaitez afficher
duracell@betonneuse:~/tmp$ ipmitool -I lanplus -U dediboxrox -P Wouah -H XX.XX.XX.XX sel list  
   1 | 03/07/2007 | 05:47:06 | Power Unit #0x01 | Power off/down | Asserted
   2 | Pre-Init Time-stamp   | Power Unit #0x01 | Power off/down | Asserted
   3 | Pre-Init Time-stamp   | Power Unit #0x01 | AC lost | Asserted
   4 | Pre-Init Time-stamp   | Power Unit #0x01 | AC lost | Deasserted
   5 | 03/06/2007 | 11:05:00 | Power Unit #0x01 | Power off/down | Deasserted
   6 | 03/06/2007 | 11:05:04 | System Event #0x83 | Timestamp Clock Sync | Asserted
   7 | 07/30/2008 | 03:33:34 | System Event #0x83 | Timestamp Clock Sync | Asserted
   8 | 07/30/2008 | 03:33:47 | System Firmware Error #0x06 | Unknown Error | Asserted
   9 | 07/30/2008 | 04:32:02 | System Event #0x83 | Timestamp Clock Sync | Asserted
   a | 07/30/2008 | 04:32:03 | System Event #0x83 | Timestamp Clock Sync | Asserted
   b | 07/30/2008 | 04:32:16 | System Firmware Error #0x06 | Unknown Error | Asserted
  • sel get YY : permet d'afficher les détails sur une ligne de journal du BIOS. Remplacez YY par l'identifiant de la ligne (en hexadecimal). L'exemple montre un évènement power off d'une des unités d'alimentation du serveur.
duracell@betonneuse:~/tmp$ ipmitool -I lanplus -U dediboxrox -P Wouah -H XX.XX.XX.XX sel get b   
SEL Record ID          : 0001
 Record Type           : 02
 Timestamp             : 03/07/2007 05:47:06
 Generator ID          : 0020
 EvM Revision          : 04
 Sensor Type           : Power Unit
 Sensor Number         : 01
 Event Type            : Sensor-specific Discrete
 Event Direction       : Assertion Event
 Event Data (RAW)      : 00ffff
 Description           : Power off/down

Sensor ID              : Power Unit (0x1)
 Entity ID             : 21.1
 Sensor Type (Discrete): Power Unit
 States Asserted       : Power Unit
                         [Power off/down]
Commandes user
  • user list 1 : permet d'afficher la liste des utilisateurs configurés
duracell@betonneuse:~/tmp$ ipmitool -I lanplus -U dediboxrox -P Wouah -H XX.XX.XX.XX user list 1
ID  Name	     Callin  Link Auth	IPMI Msg   Channel Priv Limit
1                    false   false      true       ADMINISTRATOR
2   root             false   true       true       ADMINISTRATOR
3   test1            false   false      true       ADMINISTRATOR
4   test2            false   false      true       ADMINISTRATOR
5   test3            false   false      true       ADMINISTRATOR
6   dedibox          false   false      true       ADMINISTRATOR
7   support          false   false      true       ADMINISTRATOR
8                    false   false      true       ADMINISTRATOR
9                    false   false      true       ADMINISTRATOR
10                   false   false      true       ADMINISTRATOR
11                   false   false      true       ADMINISTRATOR
12                   false   false      true       ADMINISTRATOR
13                   false   false      true       ADMINISTRATOR
14                   false   false      true       ADMINISTRATOR
15                   false   false      true       ADMINISTRATOR
  • user set name XX YY : permet de configurer un identifiant. Remplacez XX par le numéro de l'utilisateur et YY par l'identifiant
  • user set password XX YY : permet de configurer un mot de passe à un utilisateur. Remplacez XX par le numéro d'utilisateur, YY par l'identifiant
  • user enable XX : permet d'activer un utilisateur, remplacez XX par le numéro d'utilisateur (attention, par défaut les utilisateurs sont désactivés)
  • user disable XX : permet de désactiver un utilisateur, remplacez XX par le numéro d'utilisateur.

Console série (Serial Over Lan)

Votre controleur IPMI dispose également d'une console série au travers du réseau. Concrètement, le port COM1 (ttyS0) est connecté sur le BMC de votre serveur, qui se charge de vous l'exporter en réseau au travers d'IPMI.

Ceci vous permet, même lorsque votre machine est totalement plantée (Carte réseau désactivée, erreur de configuration firewall, problème de démarrage etc…) de dépanner votre serveur comme si vous étiez devant l'écran. Vous pouvez également accéder au BIOS de votre serveur ainsi qu'au firmware EFI.

Par défaut, votre console série est configurée en 9600 bauds, sans parité. (Ce paramètre est personnalisable)

Prérequis
  • BIOS : Il n'ya rien à configurer pour avoir accès au BIOS via la console série car ce dernier écoute par défaut sur le port série. Il est accessible au démarrage de votre serveur en appuyant sur la touche “F2”.
  • Grub et Lilo (Linux) : Par défaut, Grub et Lilo n'écoutent pas sur le port série. Ajoutez ces deux lignes dans le fichier ”/boot/grub/menu.lst” puis relancez l'utilitaire grub-install
serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal --timeout=15 serial console
  • Kernel Linux : Par défaut, le kernel Linux affiche ses messages à l'écran et non sur le port série. Pour mettre les messages du kernel sur votre port série, ajoutez à la fin de la ligne au(x) paramètre(s) “kernel” dans le fichier du bootloader grub ”/boot/grub/menu.lst” ou lilo ”/etc/lilo.conf” :
console=tty0 console=ttyS0,9600n8
  • Kernel Xen : Par défaut le kernel Xen se comporte comme le kernel linux. Pour afficher les messages de Xen dans le port série, il faut ajouter à la fin de la ligne au(x) paramètre(s) “kernel” dans le fichier du bootloader grub ”/boot/grub/menu.lst” :
 com1=9600 sync_console

Si vous voulez de plus ajouter la sortie du kernel linux qui sert de dom0 dans ce même port série, il faut mettre à la fin de la ligne du paramètre “module” suivant le paramètre “kernel” :

 console=tty console=ttyS0,9600n8
  • Console Linux : Par défaut, il n'ya pas de console (getty) sur le port série. La configuration est simple à effectuer. Éditez le fichier /etc/inittab (Attention, pour Ubuntu Hardy, la configuration est différente en raison de l'utilisation de upstart) et ajoutez la ligne suivante puis faites “init q” :
T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100

Pour ubuntu Hardy:

cd /etc/event.d/
cp tty1 ttyS0
editer le ttyS0 et remplacer les tty1 par ttyS0, changer le 38400 en 9600
tapez start ttyS0
  • Windows : Il existe une possibilité d'avoir une console série Windows via SAC (Special Administration Console). Pour plus d'informations, consultez cette page de documentation MSDN
Utilisation

Nous allons par exemple changer le paramètre “Vanderpool” dans le BIOS, afin d'activer les instructions VT du processeur pour optimiser la virtualisation.

  • Reboot du serveur (commande chassis power reset)
duracell@betonneuse:~/tmp$ ipmitool -I lanplus -U dediboxrox -P Whouah -H XX.XX.XX.XX chassis power reset
Chassis Power Control: Reset
  • Activation de la console série (commande sol activate)
duracell@betonneuse:~/tmp$ ipmitool -I lanplus -U dediboxrox -P Whouah -H XX.XX.XX.XX sol activate
[SOL Session operational.  Use ~? for help]

Note : Pour quitter la console série, faites ”~.”, pour avoir la liste des commandes, faites ~?

  • Au moment du boot du serveur, appuyez sur la touche “F2” pour acceder au BIOS du serveur
Press <F2> to enter setup, <F12> Network Boot
Bios Version: S3200X38.86B.00.00.0042.042820081723
Intel(R) Xeon(R) CPU           X3350  @ 2.66GHz
8 GB system memory found
  • Dans le BIOS, rubrique “Advanced” puis “Processor configuration”, passez le paramètre Intel virtualisation à “Enable”

  • Faites “F10” pour quitter et enregistrer les paramètres
Conseils et optimisations
  • La console série SOL via ipmitool est souvent instable. Ceci est lié à une implémentation approximative du SOL par ipmitool et des bugs dans iBMC. Nous travaillons avec Intel pour les identifier et les corriger. Pour les éviter, d'une manière générale, ne faites pas d'action au clavier tant que l'intégralité de l'affichage n'est pas actualisé.
  • En cas de plantage de la console série, pensez à faire un “sol deactivate” avant de réactiver la console série, afin de fermer proprement la connexion précédente. Si après cette manipulation, la console série ne fonctionne toujours pas, redémarrez le controleur IPMI avec la commande “mc reset warm”
  • Le passage en 115200 bauds améliore grandement la stabilité et la fluidité de la console série. Pour passer la console en 115200 bauds, modifez les paramètres du chapitre pré-requis de 9600 vers 115200, puis configurer votre BMC via IPMI avec les commandes suivantes :
sol set non-volatile-bit-rate 115.2
sol set volatile-bit-rate 115.2
sol set enabled true

Si la console série ne s'active pas correctement après ces manipulations, redémarrez votre controleur IPMI avec la commande “mc reset warm”.

 
gestion/ipmi.txt · Last modified: 2009/02/05 09:07 by antoine
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki