null

Некоторые аспекты диагностики серверов x86 архитектуры при помощи IPMI

Диагностика систем с 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
 

 

Коротко о себе:

Работаю в компании TUNE-IT в качестве инженера и преподавателя.

В сферу профессиональных интересов входит все,  что связано с "большими" и не очень серверами и СХД от Sun Microsystems/Oracle и кластерами на их основе, но по долгу службы занимаюсь чаще всего их диагностикой и ремонтом... 

Делюсь опытом и  наработанными навыками в рамках курсов по  соответствующим направлениям.

Ещё на эту же тему:

OpenIPMI и Compact Sensor Record
Создание шаблонов для системы мониторинга Zabbix
Портирование OpenIPMI на FreeBSD
Project Schedule Management
Коллекция IPMI шаблонов для системы мониторинга Zabbix
Довесок к мёртвой говядине
О терминалах, их драйверах и CLI в Perl
Properties в C++
Как мы написали Blockchain
Блог им. Валерия Юрьевича Киреева