dennyv
01-03-2009, 15:16
Ver. 0.1 prima bozza
Questa è un breve guida, ad uso anche come memorandum personale, per quella che è la gestione remota di un server via protocollo IPMI (http://en.wikipedia.org/wiki/IPMI).
Il protocollo IPMI (Intelligent Platform Management Interface) se unito ad una BMC (Baseboard management controller) permette di eseguire comodissime operazioni remote su di una macchina, ad un livello inferiore dell'OS, quindi indipendente dalla tipologia e dallo stato di funzionamento di esso.
La gestione può essere di tipo in-band (usando la stessa scheda Ethernet del sistema, benché con un indirizzo specifico) oppure out-of-band (come ad esempio con la DRAC Dell o LOM HP).
Il primo caso non richiede risorse aggiuntive, ma tutte le operazioni devono essere inoltrate dal client direttamente in protocollo IPMI attraverso i suoi tools. Inoltre la possibilità di intervento dipende dal funzionamento della BMC (integrata nella scheda madre) e della Ethernet (anch'essa integrata).
Il secondo caso necessita di una scheda dedicata di gestione, quale per esempio la DRAC della Dell.
Questa scheda è in realtà un PC embedded a se stante, autonomo e con una sua scheda di rete dedicata esclusivamente alla gestione remota. Questa particolare configurazione ha il vantaggio di un enorme semplificazione dell'uso, poiché è sufficiente, lato client, un browser per accedere alla gui della scheda.
I vantaggi sono l'indipendenza dal server vero e proprio (alimentazione sclusa) sia come componenti, sia come canale di gestione e l'utilizzo di una GUI relativamente semplice.
(Vedasi http://www.hwupgrade.it/articoli/business/1771/il-server-database-dietro-le-quinte-di-hwupgrade_5.html)
Questo How-to vuole, senza pretese, mostrare alcuni comandi basilari per l'amministrazione di un server Dell dotato di BMC, ma senza DRAC.
Sembra banale, ma questi comandi possono far risparmiare (e nel mio caso l'hanno fatto) un enormità di tempo quando il server si trova a svariati kilometri di distanza.
La macchina in esame è un Dell PowerEdge 1950III del 2008 dotato di Xeon Quad Core, ridondanza di RAM, dischi ed alimentazione e una Baseboard Management Controller versione 2.05.
Sulla macchina girano CentOS Linux 5 con XEN sul quale sono virtualizzate delle Debian. Inoltre all'interno del server è presente un SSD con CentOS predisposto per emergenza in caso di recovery del sistema principale.
Il client da cui vengono spediti i comandi è una OpenSUSE 11.0.
Cosa può fare l'IPMI?
Ecco alcune caratteristiche salienti di quello che ci permette di fare questo protocollo con i suoi tools:
Lettura dei sensori (temperature, voltaggi, ecc, dischi, allarmi, intrusioni chassis....)
Accensione, reboot, spegnimento soft/hard
Lettura dei log della BMC
....
Ridirezione della seriale su LAN (SOL, Serial-On-Lan) dal BIOS fino al SO
Nulla di straordinario... se non fosse che tutte queste attività sono completamente indipendenti dal sistema operativo. Ad esempio SOL vi permette di accedere al BIOS, alla configurazione Raid, all'SSD con il SO di ripristino da remoto.
Start How-To
Impostazioni BIOS
Per prima cosa è necessario impostare il BIOS del server nel seguente modo:
Attivare la comunicazione seriale (redirezione) ed impostarla sulla COM2
Impostare il tipo di terminale come VT100/VT220
Impostare la ridirezione dopo il boot come attiva
Impostazione del Remote Access Setup
Dopo aver modificato il BIOS con conseguente riavvio, entrare nella modalità di setup dell'accesso remoto premendo il tasto indicato su monitor (CTRL-E nel mio caso) e impostarlo così:
Impostare l'IPMI over LAN a ON
Entrare nel menu dei parametri LAN
Impostare l'IP a statico (consigliato)
Impostare l'indirizzo IP, la subnet e l'hostname (es. xxxx-ipmi)
Entrare nel menu di gestione degli utenti
Impostare un account utente con la password relativa
Generare una buona chiave casuale ed inserirla nella relativa voce di menu (in alcuni sistemi viene generata automaticamente)
Salvare e riavviare
Redirezione console sistemi Linux per SOL
Impostiamo GRUB in modo che sia con kernel standard che XEN anche il SO effettui la ridirezione della console di sistema sul Serial-On-Lan mantenendo comunque anche l'output a video da VGA.
Senza XEN:
title CentOS (2.6.18-92.1.22.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.1.22.el5 ro root=/dev/VolGroup00/LogVol00 console=tty0 console=ttyS0,57600n8
initrd /initrd-2.6.18-92.1.22.el5.img
Con XEN:
title CentOS (2.6.18-92.1.22.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-92.1.22.el5 console=com2,vga com2=57600,8n1
module /vmlinuz-2.6.18-92.1.22.el5xen ro root=/dev/VolGroup00/LogVol00 console=tty0 console=ttyS0,57600n8
module /initrd-2.6.18-92.1.22.el5xen.img
NON vanno inserite le righe per la ridirezione di GRUB!
#serial --unit=1 --speed=57600 --word=8 --parity=no --stop=1
#terminal --timeout=5 console serial
poiché la ridirezione in questo caso è affidata alla BMC.
Aggiungere la riga di seguito al file /etc/inittab
s0:12345:respawn:/sbin/agetty ttyS0 57600 vt100
Strumenti lato client
In particolare l'ambiente Linux/BSD è ricco di tool per l'IPMI. Uno di questi, che personalmente uso è impitool (http://ipmitool.sourceforge.net/) presente in praticamente tutte le distro Linux e i port BSD (anche per Darwin).
Il nome del pacchetto può variare a seconda della distribuzione/port da ipmitool a OpenIPMI-tools.
Il comando si richiama da terminale con la seguente sintassi
ipmitool [-c|-h|-v|-V] -U <user> -I lanplus -H <hostname> <command>
E' importante (ove supportato) l'uso del protocollo lanplus poiché supporta l'uso di funzioni avanzate con la Serial-On-Lan.
La connessione non avviene in chiaro, ma criptata tramite la chiave che abbiamo inserito in precedenza.
Operazioni più comuni
Ecco alcuni esempi delle operazioni più comuni da eseguire con i tool:
Help generale:
ipmitool -H 192.168.1.254 -U root -I lanplus help
Commands:
raw Send a RAW IPMI request and print response
i2c Send an I2C Master Write-Read command and print response
spd Print SPD info from remote I2C device
lan Configure LAN Channels
chassis Get chassis status and set power state
power Shortcut to chassis power commands
event Send pre-defined events to MC
mc Management Controller status and global enables
sdr Print Sensor Data Repository entries and readings
sensor Print detailed sensor information
fru Print built-in FRU and scan SDR for FRU locators
sel Print System Event Log (SEL)
pef Configure Platform Event Filtering (PEF)
sol Configure and connect IPMIv2.0 Serial-over-LAN
tsol Configure and connect with Tyan IPMIv1.5 Serial-over-LAN
isol Configure IPMIv1.5 Serial-over-LAN
user Configure Management Controller users
channel Configure Management Controller channels
session Print session information
sunoem OEM Commands for Sun servers
kontronoem OEM Commands for Kontron devices
picmg Run a PICMG/ATCA extended cmd
fwum Update IPMC using Kontron OEM Firmware Update Manager
firewall Configure Firmware Firewall
shell Launch interactive IPMI shell
exec Run list of commands from file
set Set runtime variable for shell and exec
hpm Update HPM components using PICMG HPM.1 file
Avvio della macchina:
ipmitool -H 192.168.1.254 -U root -I lanplus power on
Chassis Power Control: Up/On
Stato della macchina:
ipmitool -H 192.168.1.254 -U root -I lanplus power status
Chassis Power is on
Altri comandi di power:
ipmitool -H 192.168.1.254 -U root -I lanplus power help
chassis power Commands: status, on, off, cycle, reset, diag, soft
Lettura dei sensori:
ipmitool -H 192.168.1.254 -U root -I lanplus sensor
Ambient Temp | 31.000 | degrees C | ok | na | 3.000 | 8.000 | 42.000 | 47.000 | na
CMOS Battery | 0x0 | discrete | 0x0080| na | na | na | na | na | na
ROMB Battery | na | discrete | na | na | na | na | na | na | na
VCORE | 0x0 | discrete | 0x0180| na | na | na | na | na | na
VCORE | na | discrete | na | na | na | na | na | na | na
CPU VTT | 0x0 | discrete | 0x0180| na | na | na | na | na | na
1.5V PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
1.8V PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
3.3V PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
5V PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
1.5V PXH PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
5V Riser PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
Backplane PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
Linear PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
0.9V PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
0.9V Over Volt | 0x0 | discrete | 0x0180| na | na | na | na | na | na
CPU Power Fault | 0x0 | discrete | 0x0180| na | na | na | na | na | na
FAN MOD 1A RPM | 9375.000 | RPM | ok | na | 1575.000 | na | na | na | na
FAN MOD 1B RPM | 9150.000 | RPM | ok | na | 1575.000 | na | na | na | na
FAN MOD 1C RPM | 5925.000 | RPM | ok | na | 1575.000 | na | na | na | na
FAN MOD 1D RPM | 6075.000 | RPM | ok | na | 1575.000 | na | na | na | na
FAN MOD 2A RPM | 9825.000 | RPM | ok | na | 1575.000 | na | na | na | na
[CUT]
Ridirezione seriale:
ipmitool -H 192.168.1.254 -U root -I lanplus sol activate
This is console ttyS0 on mexico
CentOS 5.2 (Linux x86_64 2.6.18-92.1.22.el5xen)
mexico login:
Nel caso della SOL alcuni comandi sono così rimappati:
KEY MAPPING FOR CONSOLE REDIRECTION:
Use the <ESC><0> key sequence for <F10>
Use the <ESC><!> key sequence for <F11>
Use the <ESC><@> key sequence for <F12>
Use the <ESC><Ctrl><M> key sequence for <Ctrl><M>
Use the <ESC><Ctrl><H> key sequence for <Ctrl><H>
Use the <ESC><Ctrl><I> key sequence for <Ctrl><I>
Use the <ESC><Ctrl><J> key sequence for <Ctrl><J>
Use the <ESC><X><X> key sequence for <Alt><x>, where x is any letter
key, and X is the upper case of that key
Use the <ESC><R><ESC><r><ESC><R> key sequence for <Ctrl><Alt><Del>
Questi sono solo alcuni degli esempi di utilità di questo protocollo, in particolare della versione 2 con supporto al protocollo di comunicazione lanplus.
IPMI e in particolare la Serial-On-Lan tornano utili soprattutto quando, ahimè, si hanno problemi alla macchina o al sistema operativo tali da richiedere la presenza di un operatore come se fosse di fronte al monitor, con il vantaggio però di poter operare a distanze illimitate, almeno per quanto concerne le prime operazioni di emergenza e/o la diagnosi.
(Continua....)
Questa è un breve guida, ad uso anche come memorandum personale, per quella che è la gestione remota di un server via protocollo IPMI (http://en.wikipedia.org/wiki/IPMI).
Il protocollo IPMI (Intelligent Platform Management Interface) se unito ad una BMC (Baseboard management controller) permette di eseguire comodissime operazioni remote su di una macchina, ad un livello inferiore dell'OS, quindi indipendente dalla tipologia e dallo stato di funzionamento di esso.
La gestione può essere di tipo in-band (usando la stessa scheda Ethernet del sistema, benché con un indirizzo specifico) oppure out-of-band (come ad esempio con la DRAC Dell o LOM HP).
Il primo caso non richiede risorse aggiuntive, ma tutte le operazioni devono essere inoltrate dal client direttamente in protocollo IPMI attraverso i suoi tools. Inoltre la possibilità di intervento dipende dal funzionamento della BMC (integrata nella scheda madre) e della Ethernet (anch'essa integrata).
Il secondo caso necessita di una scheda dedicata di gestione, quale per esempio la DRAC della Dell.
Questa scheda è in realtà un PC embedded a se stante, autonomo e con una sua scheda di rete dedicata esclusivamente alla gestione remota. Questa particolare configurazione ha il vantaggio di un enorme semplificazione dell'uso, poiché è sufficiente, lato client, un browser per accedere alla gui della scheda.
I vantaggi sono l'indipendenza dal server vero e proprio (alimentazione sclusa) sia come componenti, sia come canale di gestione e l'utilizzo di una GUI relativamente semplice.
(Vedasi http://www.hwupgrade.it/articoli/business/1771/il-server-database-dietro-le-quinte-di-hwupgrade_5.html)
Questo How-to vuole, senza pretese, mostrare alcuni comandi basilari per l'amministrazione di un server Dell dotato di BMC, ma senza DRAC.
Sembra banale, ma questi comandi possono far risparmiare (e nel mio caso l'hanno fatto) un enormità di tempo quando il server si trova a svariati kilometri di distanza.
La macchina in esame è un Dell PowerEdge 1950III del 2008 dotato di Xeon Quad Core, ridondanza di RAM, dischi ed alimentazione e una Baseboard Management Controller versione 2.05.
Sulla macchina girano CentOS Linux 5 con XEN sul quale sono virtualizzate delle Debian. Inoltre all'interno del server è presente un SSD con CentOS predisposto per emergenza in caso di recovery del sistema principale.
Il client da cui vengono spediti i comandi è una OpenSUSE 11.0.
Cosa può fare l'IPMI?
Ecco alcune caratteristiche salienti di quello che ci permette di fare questo protocollo con i suoi tools:
Lettura dei sensori (temperature, voltaggi, ecc, dischi, allarmi, intrusioni chassis....)
Accensione, reboot, spegnimento soft/hard
Lettura dei log della BMC
....
Ridirezione della seriale su LAN (SOL, Serial-On-Lan) dal BIOS fino al SO
Nulla di straordinario... se non fosse che tutte queste attività sono completamente indipendenti dal sistema operativo. Ad esempio SOL vi permette di accedere al BIOS, alla configurazione Raid, all'SSD con il SO di ripristino da remoto.
Start How-To
Impostazioni BIOS
Per prima cosa è necessario impostare il BIOS del server nel seguente modo:
Attivare la comunicazione seriale (redirezione) ed impostarla sulla COM2
Impostare il tipo di terminale come VT100/VT220
Impostare la ridirezione dopo il boot come attiva
Impostazione del Remote Access Setup
Dopo aver modificato il BIOS con conseguente riavvio, entrare nella modalità di setup dell'accesso remoto premendo il tasto indicato su monitor (CTRL-E nel mio caso) e impostarlo così:
Impostare l'IPMI over LAN a ON
Entrare nel menu dei parametri LAN
Impostare l'IP a statico (consigliato)
Impostare l'indirizzo IP, la subnet e l'hostname (es. xxxx-ipmi)
Entrare nel menu di gestione degli utenti
Impostare un account utente con la password relativa
Generare una buona chiave casuale ed inserirla nella relativa voce di menu (in alcuni sistemi viene generata automaticamente)
Salvare e riavviare
Redirezione console sistemi Linux per SOL
Impostiamo GRUB in modo che sia con kernel standard che XEN anche il SO effettui la ridirezione della console di sistema sul Serial-On-Lan mantenendo comunque anche l'output a video da VGA.
Senza XEN:
title CentOS (2.6.18-92.1.22.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.1.22.el5 ro root=/dev/VolGroup00/LogVol00 console=tty0 console=ttyS0,57600n8
initrd /initrd-2.6.18-92.1.22.el5.img
Con XEN:
title CentOS (2.6.18-92.1.22.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-92.1.22.el5 console=com2,vga com2=57600,8n1
module /vmlinuz-2.6.18-92.1.22.el5xen ro root=/dev/VolGroup00/LogVol00 console=tty0 console=ttyS0,57600n8
module /initrd-2.6.18-92.1.22.el5xen.img
NON vanno inserite le righe per la ridirezione di GRUB!
#serial --unit=1 --speed=57600 --word=8 --parity=no --stop=1
#terminal --timeout=5 console serial
poiché la ridirezione in questo caso è affidata alla BMC.
Aggiungere la riga di seguito al file /etc/inittab
s0:12345:respawn:/sbin/agetty ttyS0 57600 vt100
Strumenti lato client
In particolare l'ambiente Linux/BSD è ricco di tool per l'IPMI. Uno di questi, che personalmente uso è impitool (http://ipmitool.sourceforge.net/) presente in praticamente tutte le distro Linux e i port BSD (anche per Darwin).
Il nome del pacchetto può variare a seconda della distribuzione/port da ipmitool a OpenIPMI-tools.
Il comando si richiama da terminale con la seguente sintassi
ipmitool [-c|-h|-v|-V] -U <user> -I lanplus -H <hostname> <command>
E' importante (ove supportato) l'uso del protocollo lanplus poiché supporta l'uso di funzioni avanzate con la Serial-On-Lan.
La connessione non avviene in chiaro, ma criptata tramite la chiave che abbiamo inserito in precedenza.
Operazioni più comuni
Ecco alcuni esempi delle operazioni più comuni da eseguire con i tool:
Help generale:
ipmitool -H 192.168.1.254 -U root -I lanplus help
Commands:
raw Send a RAW IPMI request and print response
i2c Send an I2C Master Write-Read command and print response
spd Print SPD info from remote I2C device
lan Configure LAN Channels
chassis Get chassis status and set power state
power Shortcut to chassis power commands
event Send pre-defined events to MC
mc Management Controller status and global enables
sdr Print Sensor Data Repository entries and readings
sensor Print detailed sensor information
fru Print built-in FRU and scan SDR for FRU locators
sel Print System Event Log (SEL)
pef Configure Platform Event Filtering (PEF)
sol Configure and connect IPMIv2.0 Serial-over-LAN
tsol Configure and connect with Tyan IPMIv1.5 Serial-over-LAN
isol Configure IPMIv1.5 Serial-over-LAN
user Configure Management Controller users
channel Configure Management Controller channels
session Print session information
sunoem OEM Commands for Sun servers
kontronoem OEM Commands for Kontron devices
picmg Run a PICMG/ATCA extended cmd
fwum Update IPMC using Kontron OEM Firmware Update Manager
firewall Configure Firmware Firewall
shell Launch interactive IPMI shell
exec Run list of commands from file
set Set runtime variable for shell and exec
hpm Update HPM components using PICMG HPM.1 file
Avvio della macchina:
ipmitool -H 192.168.1.254 -U root -I lanplus power on
Chassis Power Control: Up/On
Stato della macchina:
ipmitool -H 192.168.1.254 -U root -I lanplus power status
Chassis Power is on
Altri comandi di power:
ipmitool -H 192.168.1.254 -U root -I lanplus power help
chassis power Commands: status, on, off, cycle, reset, diag, soft
Lettura dei sensori:
ipmitool -H 192.168.1.254 -U root -I lanplus sensor
Ambient Temp | 31.000 | degrees C | ok | na | 3.000 | 8.000 | 42.000 | 47.000 | na
CMOS Battery | 0x0 | discrete | 0x0080| na | na | na | na | na | na
ROMB Battery | na | discrete | na | na | na | na | na | na | na
VCORE | 0x0 | discrete | 0x0180| na | na | na | na | na | na
VCORE | na | discrete | na | na | na | na | na | na | na
CPU VTT | 0x0 | discrete | 0x0180| na | na | na | na | na | na
1.5V PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
1.8V PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
3.3V PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
5V PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
1.5V PXH PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
5V Riser PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
Backplane PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
Linear PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
0.9V PG | 0x0 | discrete | 0x0180| na | na | na | na | na | na
0.9V Over Volt | 0x0 | discrete | 0x0180| na | na | na | na | na | na
CPU Power Fault | 0x0 | discrete | 0x0180| na | na | na | na | na | na
FAN MOD 1A RPM | 9375.000 | RPM | ok | na | 1575.000 | na | na | na | na
FAN MOD 1B RPM | 9150.000 | RPM | ok | na | 1575.000 | na | na | na | na
FAN MOD 1C RPM | 5925.000 | RPM | ok | na | 1575.000 | na | na | na | na
FAN MOD 1D RPM | 6075.000 | RPM | ok | na | 1575.000 | na | na | na | na
FAN MOD 2A RPM | 9825.000 | RPM | ok | na | 1575.000 | na | na | na | na
[CUT]
Ridirezione seriale:
ipmitool -H 192.168.1.254 -U root -I lanplus sol activate
This is console ttyS0 on mexico
CentOS 5.2 (Linux x86_64 2.6.18-92.1.22.el5xen)
mexico login:
Nel caso della SOL alcuni comandi sono così rimappati:
KEY MAPPING FOR CONSOLE REDIRECTION:
Use the <ESC><0> key sequence for <F10>
Use the <ESC><!> key sequence for <F11>
Use the <ESC><@> key sequence for <F12>
Use the <ESC><Ctrl><M> key sequence for <Ctrl><M>
Use the <ESC><Ctrl><H> key sequence for <Ctrl><H>
Use the <ESC><Ctrl><I> key sequence for <Ctrl><I>
Use the <ESC><Ctrl><J> key sequence for <Ctrl><J>
Use the <ESC><X><X> key sequence for <Alt><x>, where x is any letter
key, and X is the upper case of that key
Use the <ESC><R><ESC><r><ESC><R> key sequence for <Ctrl><Alt><Del>
Questi sono solo alcuni degli esempi di utilità di questo protocollo, in particolare della versione 2 con supporto al protocollo di comunicazione lanplus.
IPMI e in particolare la Serial-On-Lan tornano utili soprattutto quando, ahimè, si hanno problemi alla macchina o al sistema operativo tali da richiedere la presenza di un operatore come se fosse di fronte al monitor, con il vantaggio però di poter operare a distanze illimitate, almeno per quanto concerne le prime operazioni di emergenza e/o la diagnosi.
(Continua....)