Диагностика систем с x86 архитектурой в некоторых случаях затруднена по причине практически полного отсутствия или неразвитости встроенных средств диагностики в операционных системах, которые на них могут быть установлены. Кроме того, даже для ОС имеющих такие средства, диагностика может принести необъективные результаты в итоге, либо может потребоваться обращение к разработчикам этой ОС (к примеру для декодирования ошибок). Более того, в случае "стандартных" симптомов для этой платформы, таких как "не включается, черный экран, нет никакого вывода на консоль" и т.д., диагностика при помощи ОС оказывается невозможной. Хорошим подспорьем для работы с данным оборудованием оказалось использование "автономных" микроконтроллеров - так называемых сервисных процессоров, позволяющих управлять системой удаленно. К сожалению, эти устройства нашли применение только в серверах - на рабочие станции их не устанавливают.
Как правило, сервисные процессоры позволяют хранить журналы событий хоста (в дополнение к журналированию собственной ОС) и эти данные можно получить при помощи имеющихся стандартных интерфейсов контроллеров - CLI (Command Line Interface), Web-интерфейса, IPMI (Intelligent Platform Management Interface). При помощи этих данных можно провести оценку состояния системы, а в случае обнаружения сбоев провести диагностику независимо от "взгляда на проблему" операционной системы, а также в случае, когда ОС не запускается или сервер выключен. В данной статье хотелось бы рассмотреть некоторые аспекты диагностики при помощи интерфейса IPMI посредством утилиты управления IPMItool. Заметим, что данная утилита доступна в дистрибутивах Linux и Solaris, для Windows ее можно загрузить отдельно, кроме того утилита может быть запущена в интерпретаторе ILOM (управляющее ПО - микрокод для сервисных процессоров).
Рассмотрим основные команды утилиты IPMItool, которые могут быть актуальны при проведении диагностики при помощи IPMI, а также приведем пример вывода, получаемой каждой из них (данные в примерах получены с Sun Fire X4200 M2):
1) # ipmitool -I lan -H <ILOM IP address> -U <ILOM Username> sel info
(Вывод информации о содержимом SEL (System Event Log). Стоит обратить внимание на то, чтобы буфер SEL не был "переполненым" (см. параметр Percent Used))
SEL Information
Version : 2.0 (v1.5, v2 compliant)
Entries : 553
Free Space : 6480 bytes
Percent Used : 57%
Last Add Time : 04/10/2010 07:22:42
Last Del Time : Not Available
Overflow : false
Supported Cmds : 'Reserve' 'Get Alloc Info'
# of Alloc Units : 913
Alloc Unit Size : 18
# Free Units : 360
Largest Free Blk : 360
Max Record Size : 1
2) # ipmitool -I lan -H <ILOM IP address> -U <ILOM Username> sel elist
(Вывод содержимого SEL. Включает в себя идентификатор события, дата и время регистрации и его описание.)
2102 | 11/06/2009 | 16:28:28 | Power Supply ps0.pwrok | State Asserted
2202 | 11/06/2009 | 16:28:30 | Power Supply ps1.pwrok | State Asserted
2302 | 11/07/2009 | 14:49:06 | System Firmware Progress | Motherboard initialization | Asserted
2402 | 11/07/2009 | 14:49:06 | System Firmware Progress | Video initialization | Asserted
2502 | 11/07/2009 | 14:49:13 | System Firmware Progress | USB resource configuration | Asserted
2602 | 11/07/2009 | 14:49:33 | System Firmware Progress | Option ROM initialization | Asserted
2702 | 11/07/2009 | 14:50:39 | System Firmware Progress | System boot initiated | Asserted
3) # ipmitool -I lan -H <ILOM IP address> -U <ILOM Username> chassis status
(Состояние шасси и показания его основных датчиков системы питания. Стоит обратить внимание на состояние "Chassis Intrusion" - датчик сигнализирующий о том, что какая-либо часть корпуса находится в открытом состоянии (для некоторых систем запуск в "открытом виде" запрещен))
System Power : on
Power Overload : false
Power Interlock : inactive
Main Power Fault : false
Power Control Fault : false
Power Restore Policy : always-off
Last Power Event :
Chassis Intrusion : inactive
Front-Panel Lockout : inactive
Drive Fault : false
Cooling/Fan Fault : false
4) # ipmitool -I lan -H <ILOM IP address> -U <ILOM Username> fru
(Информация о компонентах с точки зрения данных производителя. Здесь можно уточнить конфигурацию системы, а также версию BIOS (см. "mb.bios.fru" ))
FRU Device Description : Builtin FRU Device (ID 0)
Board Product : ASSY,SP BOARD,M2,G1/2
Board Serial : 1005LCB-0805GW233X
Board Part Number : 501-7499-02
Board Extra : 51
Board Extra : G1/2F_GRASP
Product Manufacturer : SUN MICROSYSTEMS
Product Name : ILOM
FRU Device Description : sp.net0.fru (ID 2)
Product Manufacturer : MOTOROLA
Product Name : FAST ETHERNET CONTROLLER
Product Part Number : MPC8248 FCC
Product Serial : 00:14:4F:CD:8B:8D
Product Extra : 01
Product Extra : 00:14:4F:CD:8B:8D
FRU Device Description : mb.fru (ID 4)
Chassis Type : Rack Mount Chassis
Chassis Part Number : 541-0251-05
Chassis Serial : 1005LCB-0810GN0PJW
Board Product : ASSY,MOTHERBOARD,X4200 M2
Board Serial : 1005LCB-0725GB0E0N
Board Part Number : 501-7590-02
Board Extra : 51
Board Extra : G2F_MB
Product Manufacturer : SUN MICROSYSTEMS
Product Name : SUN FIRE X4200 M2
Product Part Number : 602-3893-01
Product Serial : 0814BD2208
Product Extra : 080020FFFFFFFFFFFFFF00144F8E1ACE
FRU Device Description : mb.bios.fru (ID 5)
Product Manufacturer : AMERICAN MEGATRENDS
Product Name : SYSTEM BIOS
Product Part Number : AMIBIOS8
Product Version : 0ABJX044
FRU Device Description : mb.net0.fru (ID 16)
Product Manufacturer : NVIDIA
Product Name : DUAL GIGABIT ETHERNET CONTROLLERS
Product Part Number : CK804/IO4
Product Serial : 00:14:4F:8E:1A:CE
Product Extra : 02
Product Extra : 00:14:4F:8E:1A:CE
Product Extra : 00:14:4F:8E:1A:CF
FRU Device Description : mb.net1.fru (ID 17)
Product Manufacturer : INTEL
Product Name : DUAL PORT GIGABIT ETHERNET CONTROLLER (COPPER)
Product Part Number : 82546EB
Product Serial : 00:14:4F:8E:1A:D0
Product Extra : 02
Product Extra : 00:14:4F:8E:1A:D0
Product Extra : 00:14:4F:8E:1A:D1
FRU Device Description : fp.fru (ID 19)
Board Product : ASSY,FRONT I/O,PCI EXPRESS,G2
Board Serial : 1005LCB-0809GD0TK8
Board Part Number : 501-7256-01
Board Extra : 50
Board Extra : G2E_FIOBD
FRU Device Description : p0.fru (ID 6)
Product Manufacturer : ADVANCED MICRO DEVICES
Product Name : DUAL-CORE AMD OPTERON(TM) PROCESSOR 2220
Product Part Number : 0F41
Product Version : 03
FRU Device Description : p0.d0.fru (ID 8)
Device not present (Requested sensor, data, or record not found)
FRU Device Description : p0.d1.fru (ID 9)
Device not present (Requested sensor, data, or record not found)
FRU Device Description : p0.d2.fru (ID 10)
Product Manufacturer : HYUNDAI ELECTRONICS
Product Name : 2048MB DDR-II 666 (PC2 5300) ADDRESS/COMMAND PARITY/ECC
Product Part Number : HYMP525P72CP4-Y5
Product Version : 4141
Product Serial : 00002057
FRU Device Description : p0.d3.fru (ID 11)
Product Manufacturer : HYUNDAI ELECTRONICS
Product Name : 2048MB DDR-II 666 (PC2 5300) ADDRESS/COMMAND PARITY/ECC
Product Part Number : HYMP525P72CP4-Y5
Product Version : 4141
Product Serial : 04004074
FRU Device Description : p1.fru (ID 7)
Product Manufacturer : ADVANCED MICRO DEVICES
Product Name : DUAL-CORE AMD OPTERON(TM) PROCESSOR 2220
Product Part Number : 0F41
Product Version : 03
FRU Device Description : p1.d0.fru (ID 12)
Device not present (Requested sensor, data, or record not found)
FRU Device Description : p1.d1.fru (ID 13)
Device not present (Requested sensor, data, or record not found)
FRU Device Description : p1.d2.fru (ID 14)
Product Manufacturer : HYUNDAI ELECTRONICS
Product Name : 2048MB DDR-II 666 (PC2 5300) ADDRESS/COMMAND PARITY/ECC
Product Part Number : HYMP525P72CP4-Y5
Product Version : 4141
Product Serial : 00003073
FRU Device Description : p1.d3.fru (ID 15)
Product Manufacturer : HYUNDAI ELECTRONICS
Product Name : 2048MB DDR-II 666 (PC2 5300) ADDRESS/COMMAND PARITY/ECC
Product Part Number : HYMP525P72CP4-Y5
Product Version : 4141
Product Serial : 00002076
FRU Device Description : pdb.fru (ID 18)
Board Product : ASSY,POWER BOARD,G1/2
Board Serial : 1005LCB-0809GV26EH
Board Part Number : 501-6920-03
Board Extra : 52
Board Extra : G1/2_PDB
FRU Device Description : /SYS (ID 20)
Product Manufacturer : SUN MICROSYSTEMS
Product Name : SUN FIRE X4200 M2
Product Part Number : 602-3893-01
Product Serial : 0814BD2208
Product Extra : 080020FFFFFFFFFFFFFF00144F8E1ACE
FRU Device Description : /UUID (ID 100)
Product Extra : 080020FFFFFFFFFFFFFF00144F8E1ACE
5) # ipmitool -I lan -H <ILOM IP address> -U <ILOM Username> sensor
(Вывод показаний системных датчиков с указанием их состояния, а также "нижних" и "верхних" порогов возможных значений.)
sys.id | 0x1 | discrete | 0x0100| na | na | na | na | na | na
sys.intsw | 0x0 | discrete | 0x0000| na | na | na | na | na | na
sys.psfail | 0x1 | discrete | 0x0100| na | na | na | na | na | na
sys.tempfail | 0x1 | discrete | 0x0100| na | na | na | na | na | na
sys.fanfail | 0x1 | discrete | 0x0100| na | na | na | na | na | na
bp.power | 0x1 | discrete | 0x0100| na | na | na | na | na | na
bp.locate | 0x1 | discrete | 0x0100| na | na | na | na | na | na
bp.locate.btn | 0x1 | discrete | 0x0100| na | na | na | na | na | na
bp.alert | 0x1 | discrete | 0x0100| na | na | na | na | na | na
fp.prsnt | 0x2 | discrete | 0x0200| na | na | na | na | na | na
fp.usbfail | 0x1 | discrete | 0x0100| na | na | na | na | na | na
fp.power | 0x2 | discrete | 0x0200| na | na | na | na | na | na
fp.locate | 0x1 | discrete | 0x0100| na | na | na | na | na | na
fp.locate.btn | 0x1 | discrete | 0x0100| na | na | na | na | na | na
fp.alert | 0x1 | discrete | 0x0100| na | na | na | na | na | na
fp.ledbd.prsnt | 0x2 | discrete | 0x0200| na | na | na | na | na | na
ps0.prsnt | 0x2 | discrete | 0x0200| na | na | na | na | na | na
ps0.vinok | 0x2 | discrete | 0x0200| na | na | na | na | na | na
ps0.pwrok | 0x2 | discrete | 0x0200| na | na | na | na | na | na
ps1.prsnt | 0x2 | discrete | 0x0200| na | na | na | na | na | na
ps1.vinok | 0x2 | discrete | 0x0200| na | na | na | na | na | na
ps1.pwrok | 0x2 | discrete | 0x0200| na | na | na | na | na | na
io.id0.prsnt | 0x1 | discrete | 0x0100| na | na | na | na | na | na
io.id1.prsnt | 0x2 | discrete | 0x0200| na | na | na | na | na | na
io.hdd0.fail | 0x1 | discrete | 0x0100| na | na | na | na | na | na
io.hdd1.fail | 0x1 | discrete | 0x0100| na | na | na | na | na | na
io.hdd2.fail | 0x1 | discrete | 0x0100| na | na | na | na | na | na
io.hdd3.fail | 0x1 | discrete | 0x0100| na | na | na | na | na | na
mb.t_amb | 29.000 | degrees C | ok | na | na | na | 70.000 | 75.000 | 80.000
mb.v_bat | 2.880 | Volts | ok | 2.400 | 2.592 | 2.688 | 3.392 | 3.600 | 3.792
mb.v_+3v3stby | 3.201 | Volts | ok | 2.595 | 2.785 | 2.993 | 3.598 | 3.789 | 3.996
mb.v_+3v3 | 3.322 | Volts | ok | 2.595 | 2.785 | 2.993 | 3.598 | 3.789 | 3.996
mb.v_+5v | 5.018 | Volts | ok | 3.484 | 3.978 | 4.498 | 5.486 | 5.980 | 6.500
mb.v_+12v | 12.159 | Volts | ok | 8.946 | 9.954 | 10.962 | 12.978 | 13.986 | 14.994
mb.v_-12v | -12.277 | Volts | ok | -15.051 | -14.029 | -13.007 | -11.036 | -10.014 | -9.065
mb.v_+2v5core | 2.556 | Volts | ok | 1.800 | 1.992 | 2.196 | 2.796 | 2.892 | 3.000
mb.v_+1v5core | 1.510 | Volts | ok | 0.800 | 1.000 | 1.200 | 1.800 | 2.000 | 2.200
mb.v_+1v2core | 1.220 | Volts | ok | 0.600 | 0.800 | 1.000 | 1.500 | 1.700 | 1.900
fp.t_amb | 26.000 | degrees C | ok | na | na | na | 30.000 | 35.000 | 45.000
pdb.t_amb | 26.000 | degrees C | ok | na | na | na | 70.000 | 75.000 | 80.000
io.t_amb | 25.000 | degrees C | ok | na | na | na | 70.000 | 75.000 | 80.000
p0.t_core | 15.000 | degrees C | ok | na | na | na | 62.000 | 67.000 | 75.000
p0.v_vdd | 1.140 | Volts | ok | 0.792 | 0.900 | 0.996 | 1.596 | 1.692 | 1.800
p0.v_vddio | 1.848 | Volts | ok | 1.392 | 1.500 | 1.596 | 1.992 | 2.100 | 2.196
p0.v_vtt | 0.912 | Volts | ok | 0.600 | 0.696 | 0.792 | 0.996 | 1.092 | 1.200
p1.t_core | 13.000 | degrees C | ok | na | na | na | 62.000 | 67.000 | 75.000
p1.v_vdd | 1.140 | Volts | ok | 0.792 | 0.900 | 0.996 | 1.596 | 1.692 | 1.800
p1.v_vddio | 1.848 | Volts | ok | 1.392 | 1.500 | 1.596 | 1.992 | 2.100 | 2.196
p1.v_vtt | 0.924 | Volts | ok | 0.600 | 0.696 | 0.792 | 0.996 | 1.092 | 1.200
ft0.fm0.fail | 0x1 | discrete | 0x0100| na | na | na | na | na | na
ft0.fm1.fail | 0x1 | discrete | 0x0100| na | na | na | na | na | na
ft0.fm2.fail | 0x1 | discrete | 0x0100| na | na | na | na | na | na
ft1.fm0.fail | 0x1 | discrete | 0x0100| na | na | na | na | na | na
ft1.fm1.fail | 0x1 | discrete | 0x0100| na | na | na | na | na | na
ft1.fm2.fail | 0x1 | discrete | 0x0100| na | na | na | na | na | na
ft0.fm0.f0.speed | 5800.000 | RPM | ok | 3000.000 | na | na | na | na | 22000.000
ft0.fm2.f0.speed | 6000.000 | RPM | ok | 3000.000 | na | na | na | na | 22000.000
ft0.fm1.f0.speed | 5900.000 | RPM | ok | 3000.000 | na | na | na | na | 22000.000
ft1.fm0.f0.speed | 6000.000 | RPM | ok | 3000.000 | na | na | na | na | 22000.000
ft1.fm1.f0.speed | 6100.000 | RPM | ok | 3000.000 | na | na | na | na | 22000.000
ft1.fm2.f0.speed | 6100.000 | RPM | ok | 3000.000 | na | na | na | na | 22000.000
io.f0.prsnt | 0x2 | discrete | 0x0200| na | na | na | na | na | na
io.f0.speed | 4200.000 | RPM | ok | 3000.000 | na | na | na | na | 8000.000
io.f0.fail | 0x1 | discrete | 0x0100| na | na | na | na | na | na
ft0.fm0.prsnt | 0x2 | discrete | 0x0200| na | na | na | na | na | na
ft0.fm1.prsnt | 0x2 | discrete | 0x0200| na | na | na | na | na | na
ft0.fm2.prsnt | 0x2 | discrete | 0x0200| na | na | na | na | na | na
ft1.fm0.prsnt | 0x2 | discrete | 0x0200| na | na | na | na | na | na
ft1.fm1.prsnt | 0x2 | discrete | 0x0200| na | na | na | na | na | na
ft1.fm2.prsnt | 0x2 | discrete | 0x0200| na | na | na | na | na | na
6) # ipmitool -I lan -H <ILOM IP address> -U <ILOM Username> sunoem led get all
(Состояние индикации сервера (специализированная ОЕМ-команда, в данном случае OEM-Sun Microsystems))
sys.psfail.led | OFF
sys.tempfail.led | OFF
sys.fanfail.led | OFF
bp.power.led | ON
bp.locate.led | OFF
bp.alert.led | OFF
fp.power.led | ON
fp.locate.led | OFF
fp.alert.led | OFF
io.hdd0.led | OFF
io.hdd1.led | OFF
io.hdd2.led | OFF
io.hdd3.led | OFF
p0.led | OFF
p0.d0.led | OFF
p0.d1.led | OFF
p0.d2.led | OFF
p0.d3.led | OFF
p1.led | OFF
p1.d0.led | OFF
p1.d1.led | OFF
p1.d2.led | OFF
p1.d3.led | OFF
ft0.fm0.led | OFF
ft0.fm1.led | OFF
ft0.fm2.led | OFF
ft1.fm0.led | OFF
ft1.fm1.led | OFF
ft1.fm2.led | OFF
io.f0.led | OFF
7) # ipmitool -I lan -H <ILOM IP address> -U <ILOM Username> sdr elist all
(Вывод содержимого SDR (Sensor Data Repository). Содержит информацию о состоянии всех системных датчиков и индикаторов.)
sp.fru | 00h | ok | 6.0 | Dynamic MC @ 20h
sp.net0.fru | 00h | ns | 6.0 | Logical FRU @02h
sys.id | 00h | ok | 23.0 | State Deasserted
sys.intsw | 01h | ok | 23.0 |
sys.psfail | 02h | ok | 23.0 | Predictive Failure Deasserted
sys.psfail.led | 00h | ns | 23.0 | Generic Device @20h:18h.3
sys.tempfail | 03h | ok | 23.0 | Predictive Failure Deasserted
sys.tempfail.led | 00h | ns | 23.0 | Generic Device @20h:18h.4
sys.fanfail | 04h | ok | 23.0 | Predictive Failure Deasserted
sys.fanfail.led | 00h | ns | 23.0 | Generic Device @20h:18h.5
sys.power.led | 00h | ns | 23.1 | Generic Device @20h:00h.0
sys.locate.led | 00h | ns | 23.2 | Generic Device @20h:00h.0
sys.alert.led | 00h | ns | 23.3 | Generic Device @20h:00h.0
sys.nmi | FCh | ns | 23.0 | Event-Only
mb.fru | 00h | ns | 7.0 | Logical FRU @04h
mb.bios.fru | 00h | ns | 34.0 | Logical FRU @05h
mb.net0.fru | 00h | ns | 31.0 | Logical FRU @10h
mb.net1.fru | 00h | ns | 31.0 | Logical FRU @11h
bp.power | 0Fh | ok | 13.1 | State Deasserted
bp.power.led | 00h | ns | 13.1 | Generic Device @20h:2Dh.0
bp.locate | 10h | ok | 13.2 | State Deasserted
bp.locate.led | 00h | ns | 13.2 | Generic Device @20h:2Dh.1
bp.locate.btn | 11h | ok | 13.2 | State Deasserted
bp.alert | 12h | ok | 13.3 | State Deasserted
bp.alert.led | 00h | ns | 13.3 | Generic Device @20h:2Dh.2
fp.prsnt | 13h | ok | 12.0 | Device Present
fp.usbfail | 15h | ok | 12.0 | Predictive Failure Deasserted
fp.power | 16h | ok | 12.1 | State Asserted
fp.power.led | 00h | ns | 12.1 | Generic Device @20h:18h.0
fp.locate | 17h | ok | 12.2 | State Deasserted
fp.locate.led | 00h | ns | 12.2 | Generic Device @20h:18h.1
fp.locate.btn | 18h | ok | 12.2 | State Deasserted
fp.alert | 19h | ok | 12.3 | State Deasserted
fp.alert.led | 00h | ns | 12.3 | Generic Device @20h:18h.2
fp.ledbd.prsnt | 1Ah | ok | 12.0 | Device Present
fp.fru | 00h | ns | 12.0 | Logical FRU @13h
ps0.prsnt | 1Ch | ok | 10.0 | Device Present
ps0.vinok | 1Eh | ok | 10.0 | State Asserted
ps0.pwrok | 1Dh | ok | 10.0 | State Asserted
ps1.prsnt | 1Fh | ok | 10.1 | Device Present
ps1.vinok | 21h | ok | 10.1 | State Asserted
ps1.pwrok | 20h | ok | 10.1 | State Asserted
io.id0.prsnt | 23h | ok | 15.0 | Device Absent
io.id1.prsnt | 24h | ok | 15.0 | Device Present
io.hdd0.fail | 28h | ok | 4.0 | Predictive Failure Deasserted
io.hdd1.fail | 29h | ok | 4.1 | Predictive Failure Deasserted
io.hdd2.fail | 2Ah | ok | 4.2 | Predictive Failure Deasserted
io.hdd3.fail | 2Bh | ok | 4.3 | Predictive Failure Deasserted
io.hdd0.led | 00h | ns | 4.0 | Generic Device @20h:1Ah.0
io.hdd1.led | 00h | ns | 4.1 | Generic Device @20h:1Ah.1
io.hdd2.led | 00h | ns | 4.2 | Generic Device @20h:1Ah.2
io.hdd3.led | 00h | ns | 4.3 | Generic Device @20h:1Ah.3
mb.t_amb | 05h | ok | 7.0 | 29 degrees C
mb.v_bat | 06h | ok | 7.0 | 2.88 Volts
mb.v_+3v3stby | 07h | ok | 7.0 | 3.20 Volts
mb.v_+3v3 | 08h | ok | 7.0 | 3.32 Volts
mb.v_+5v | 09h | ok | 7.0 | 5.02 Volts
mb.v_+12v | 0Ah | ok | 7.0 | 12.10 Volts
mb.v_-12v | 0Bh | ok | 7.0 | -12.28 Volts
mb.v_+2v5core | 0Ch | ok | 7.0 | 2.56 Volts
mb.v_+1v5core | 0Dh | ok | 7.0 | 1.51 Volts
mb.v_+1v2core | 0Eh | ok | 7.0 | 1.22 Volts
fp.t_amb | 14h | ok | 12.0 | 26 degrees C
pdb.t_amb | 1Bh | ok | 19.0 | 26 degrees C
io.t_amb | 22h | ok | 15.0 | 25 degrees C
p0.t_core | 2Ch | ok | 3.0 | 15 degrees C
p0.v_vdd | 2Dh | ok | 3.0 | 1.14 Volts
p0.v_vddio | 2Eh | ok | 3.0 | 1.85 Volts
p0.v_vtt | 2Fh | ok | 3.0 | 0.91 Volts
p0.led | 00h | ns | 3.0 | Generic Device @20h:1Eh.1
p0.fru | 00h | ns | 3.0 | Logical FRU @06h
p0.d0.led | 00h | ns | 32.0 | Generic Device @20h:1Ch.0
p0.d0.fru | 00h | ns | 32.0 | Logical FRU @08h
p0.d1.led | 00h | ns | 32.1 | Generic Device @20h:1Ch.1
p0.d1.fru | 00h | ns | 32.1 | Logical FRU @09h
p0.d2.led | 00h | ns | 32.2 | Generic Device @20h:1Ch.2
p0.d2.fru | 00h | ns | 32.2 | Logical FRU @0Ah
p0.d3.led | 00h | ns | 32.3 | Generic Device @20h:1Ch.3
p0.d3.fru | 00h | ns | 32.3 | Logical FRU @0Bh
p1.t_core | 35h | ok | 3.1 | 13 degrees C
p1.v_vdd | 36h | ok | 3.1 | 1.14 Volts
p1.v_vddio | 37h | ok | 3.1 | 1.85 Volts
p1.v_vtt | 38h | ok | 3.1 | 0.92 Volts
p1.led | 00h | ns | 3.1 | Generic Device @20h:1Eh.2
p1.fru | 00h | ns | 3.1 | Logical FRU @07h
p1.d0.led | 00h | ns | 32.4 | Generic Device @20h:1Ch.4
p1.d0.fru | 00h | ns | 32.4 | Logical FRU @0Ch
p1.d1.led | 00h | ns | 32.5 | Generic Device @20h:1Ch.5
p1.d1.fru | 00h | ns | 32.5 | Logical FRU @0Dh
p1.d2.led | 00h | ns | 32.6 | Generic Device @20h:1Ch.6
p1.d2.fru | 00h | ns | 32.6 | Logical FRU @0Eh
p1.d3.led | 00h | ns | 32.7 | Generic Device @20h:1Ch.7
p1.d3.fru | 00h | ns | 32.7 | Logical FRU @0Fh
ft0.fm0.fail | 3Eh | ok | 29.0 | Predictive Failure Deasserted
ft0.fm0.led | 00h | ns | 29.0 | Generic Device @20h:18h.7
ft0.fm1.fail | 3Fh | ok | 29.1 | Predictive Failure Deasserted
ft0.fm1.led | 00h | ns | 29.1 | Generic Device @20h:19h.1
ft0.fm2.fail | 40h | ok | 29.2 | Predictive Failure Deasserted
ft0.fm2.led | 00h | ns | 29.2 | Generic Device @20h:19h.2
ft1.fm0.fail | 41h | ok | 29.3 | Predictive Failure Deasserted
ft1.fm0.led | 00h | ns | 29.3 | Generic Device @20h:19h.3
ft1.fm1.fail | 42h | ok | 29.4 | Predictive Failure Deasserted
ft1.fm1.led | 00h | ns | 29.4 | Generic Device @20h:19h.4
ft1.fm2.fail | 43h | ok | 29.5 | Predictive Failure Deasserted
ft1.fm2.led | 00h | ns | 29.5 | Generic Device @20h:19h.5
ft0.fm0.f0.speed | 4Ah | ok | 29.0 | 5800 RPM
ft0.fm2.f0.speed | 4Ch | ok | 29.1 | 6000 RPM
ft0.fm1.f0.speed | 4Bh | ok | 29.2 | 5800 RPM
ft1.fm0.f0.speed | 4Dh | ok | 29.3 | 6100 RPM
ft1.fm1.f0.speed | 4Eh | ok | 29.4 | 6100 RPM
ft1.fm2.f0.speed | 4Fh | ok | 29.5 | 6100 RPM
pdb.fru | 00h | ns | 19.0 | Logical FRU @12h
io.f0.prsnt | 25h | ok | 15.0 | Device Present
io.f0.speed | 26h | ok | 15.0 | 4100 RPM
io.f0.fail | 27h | ok | 15.0 | Predictive Failure Deasserted
io.f0.led | 00h | ns | 15.0 | Generic Device @20h:2Dh.16
ft0.fm0.prsnt | 44h | ok | 29.0 | Device Present
ft0.fm1.prsnt | 45h | ok | 29.1 | Device Present
ft0.fm2.prsnt | 46h | ok | 29.2 | Device Present
ft1.fm0.prsnt | 47h | ok | 29.3 | Device Present
ft1.fm1.prsnt | 48h | ok | 29.4 | Device Present
ft1.fm2.prsnt | 49h | ok | 29.5 | Device Present
/SYS | 00h | ns | 7.0 | Logical FRU @14h
/UUID | 00h | ns | 7.0 | Logical FRU @64h
Как видно из приведенных примеров, оценить состояние системы достаточно просто, имея лишь данные сервисного процессора. Кроме того, в отдельных случаях Вы можете воспользоваться диагнастическими данными ОС с целью получения дополнительной информации.
Рассмотрим несколько примеров практического применения данных IPMI:
1) Система : Sun Fire X4150. Описание проблемы : самопроизвольно перезагружается, пользователем периодически наблюдаются "синие экраны" Windows. Фрагмент вывода sel elist утилиты ipmitool, содержащий ошибку, выглядит следующим образом :
c6 | 12/26/2009 | 14:22:23 | System Boot Initiated | Initiated by warm reset | Asserted
c7 | 12/26/2009 | 14:22:24 | System Firmware Progress | Primary CPU initialization | Asserted
c8 | 12/26/2009 | 14:22:24 | System Firmware Progress | Secondary CPU Initialization | Asserted
c9 | 12/26/2009 | 14:22:34 | System Firmware Progress | Video initialization | Asserted
ca | 12/26/2009 | 14:22:46 | System Firmware Progress | Option ROM initialization | Asserted
cb | 12/26/2009 | 14:23:40 | System Firmware Progress | System boot initiated | Asserted
cc | 01/12/2010 | 13:59:40 | Memory | Uncorrectable Error | Asserted | OEM Data-2 0xc1 OEM Data-3 0x11
cd | 01/12/2010 | 14:00:15 | System Boot Initiated | Initiated by power up | Asserted
Как видно, в данном случае наблюдается некорректируемая ошибка памяти. Неисправный модуль памяти расположен в слоте С1 (согласно значению поля OEM Data-2)
Заметим, что если невозможно определить слот в выводе sel elist, то в большинстве систем неисправный модуль будет также отмечен при помощи аварийной индикации соответствующего слота (а состояние индикации можно получить при помощи команды ipmitool -I lan -H <ILOM IP address> -U <ILOM Username> sunoem led get all )
2) Cистема : Sun Fire X4200 M2.Описание проблемы : включена основная аварийная индикация шасси.
Фрагмент вывода sel elist утилиты ipmitool :
2702 | 11/07/2009 | 14:50:39 | System Firmware Progress | System boot initiated | Asserted
2802 | 04/10/2010 | 07:22:37 | Voltage mb.v_+2v5core | Lower Non-critical going low | Reading 1.02 < Threshold 2.20 Volts
2902 | 04/10/2010 | 07:22:42 | Voltage mb.v_+2v5core | Lower Non-critical going high | Reading 2.56 > Threshold 2.20 Volts
В данном случае наблюдается отклонения от пороговых значений показаний датчика mb.v_+2v5core одной из "линий" питания на материнской плате.
3) Cистема - Sun Fire X4100 M2. Проблема - периодическое включение аварийной индикации одного из блоков питания. Фрагмент вывода "sel elist" следующий:
4205 | 02/26/2010 | 16:27:38 | Entity Presence ps0.prsnt | Device Absent
4305 | 02/27/2010 | 11:02:19 | Entity Presence ps0.prsnt | Device Present
4405 | 02/27/2010 | 11:02:49 | Power Supply ps0.vinok | State Asserted
4505 | 02/27/2010 | 11:02:53 | Power Supply ps0.pwrok | State Asserted
4605 | 02/27/2010 | 11:03:04 | Power Supply ps0.vinok | State Deasserted
4705 | 02/27/2010 | 11:03:08 | Power Supply ps0.pwrok | State Deasserted
4805 | 02/27/2010 | 11:03:09 | Power Supply ps0.vinok | State Asserted
4905 | 02/27/2010 | 11:03:14 | Power Supply ps0.pwrok | State Asserted
4a05 | 02/27/2010 | 11:03:19 | Power Supply ps0.pwrok | State Deasserted
4b05 | 02/27/2010 | 11:03:20 | Power Supply ps0.vinok | State Deasserted
4c05 | 02/27/2010 | 11:03:24 | Power Supply ps0.pwrok | State Asserted
4d05 | 02/27/2010 | 11:03:25 | Power Supply ps0.vinok | State Asserted
Очевидно, здесь наблюдается множественное изменение состояний датчиков pwrok и vinok блока питания ps0, оценивающих его "исправность" и наличие входного напряжения.
Однако, есть случаи, когда необходимы специальные программные инструменты для анализа логов ipmitool.
Один из примеров - ошибки типа OEM #0x12 (HyperTransport Sync Flood error) систем с процессорами AMD , которые инициируются при помощи BIOS. Данное специализированное событие означает, что произошел некорректируемый сбой, и для того, чтобы недопустить распространение ошибки система была принудительна остановлена.
Событие содержит в себе состояние регистров ошибок устройств на момент останова и может потребоваться в случае необходимости выяснения причины сбоя и его виновника.
Пример cобытия типа OEM #0x12 (в фрагменте вывода команды sel elist):
18fa | 04/08/2010 | 09:40:54 | System Boot Initiated #0x02 | Initiated by warm reset | Asserted
18fb | 04/08/2010 | 09:40:54 | Processor #0x04 | Presence detected | Asserted
18fc | 04/08/2010 | 09:40:55 | System Boot Initiated #0x10 | Automatic boot to diagnostic | Asserted
18fd | 04/08/2010 | 09:40:55 | OEM #0x12 | | Asserted
18fe | 04/08/2010 | 09:40:55 | System Event #0x12 | Undetermined system hardware failure | Asserted
18ff | OEM record e0 | 0000e400140000000020000000
1900 | OEM record e0 | 0000e444140000000000000000
1901 | OEM record e0 | 0000e448140000000000011000
1902 | OEM record e0 | 000100e4040000000000500000
1903 | OEM record e0 | 00000004040000000000b00006
1904 | OEM record e0 | 00000048040000000011110322
1905 | OEM record e0 | 000000500400000000807f0623
1906 | OEM record e0 | 00000058040000000000030000
1907 | OEM record e0 | 0001006c0400000000fff90000
1908 | OEM record e0 | 000100e8040000000020000080