1 дек. 2011 г.

FreeIPMI

Замечательный пакет FreeIPMI для Linux позволяет работать с IPMI 1.5 и 2.0 интерфейсами: получать информацию о состоянии сенсоров, читать/модифицировать различные параметры, управлять питанием.

У Supermicro есть утилита IPMICfg, с помощью которой можно посмотреть/установить настройки сети BMC-чипа, сбросить настройки, перезагрузить, но FreeIPMI дает куда больше возможностей, например подробный вывод состояния сенсоров. Вот пример для платы X8DTU-F:
# ipmi-sensors --interpret-oem-data
ID | Name           | Type              | Reading    | Units | Event
7  | CPU1 Temp      | OEM Reserved      | N/A        | N/A   | 'Low'
8  | CPU2 Temp      | OEM Reserved      | N/A        | N/A   | N/A
9  | System Temp    | Temperature       | 30.00      | C     | 'OK'
10 | CPU1 Vcore     | Voltage           | 0.93       | V     | 'OK'
11 | CPU2 Vcore     | Voltage           | N/A        | V     | N/A
12 | +5V            | Voltage           | 5.06       | V     | 'OK'
13 | +5VSB          | Voltage           | 5.06       | V     | 'OK'
14 | +12V           | Voltage           | 12.24      | V     | 'OK'
15 | -12V           | Voltage           | -11.80     | V     | 'OK'
16 | +3.3V          | Voltage           | 3.29       | V     | 'OK'
17 | +3.3VSB        | Voltage           | 3.24       | V     | 'OK'
18 | VBAT           | Voltage           | 3.19       | V     | 'OK'
19 | Fan1           | Fan               | 4185.00    | RPM   | 'OK'
20 | Fan2           | Fan               | 3915.00    | RPM   | 'OK'
21 | Fan3           | Fan               | 4185.00    | RPM   | 'OK'
22 | Fan4           | Fan               | N/A        | RPM   | N/A
23 | Fan5           | Fan               | N/A        | RPM   | N/A
24 | Fan6           | Fan               | N/A        | RPM   | N/A
25 | Fan7           | Fan               | N/A        | RPM   | N/A
26 | Fan8           | Fan               | N/A        | RPM   | N/A
27 | P1-DIMM1A Temp | Temperature       | 37.00      | C     | 'OK'
28 | P1-DIMM1B Temp | Temperature       | 38.00      | C     | 'OK'
29 | P1-DIMM2A Temp | Temperature       | 37.00      | C     | 'OK'
30 | P1-DIMM2B Temp | Temperature       | 37.00      | C     | 'OK'
31 | P1-DIMM3A Temp | Temperature       | 36.00      | C     | 'OK'
32 | P1-DIMM3B Temp | Temperature       | 37.00      | C     | 'OK'
33 | P2-DIMM1A Temp | Temperature       | N/A        | C     | N/A
34 | P2-DIMM1B Temp | Temperature       | N/A        | C     | N/A
35 | P2-DIMM2A Temp | Temperature       | N/A        | C     | N/A
36 | P2-DIMM2B Temp | Temperature       | N/A        | C     | N/A
37 | P2-DIMM3A Temp | Temperature       | N/A        | C     | N/A
38 | P2-DIMM3B Temp | Temperature       | N/A        | C     | N/A
39 | Intrusion      | Physical Security | N/A        | N/A   | 'OK'
40 | PS Status      | Power Supply      | N/A        | N/A   | 'OK'
Зачем это нужно при наличии удобного доступа через IPMIView или web-интерфейс? Для написания различного рода скриптов. Например, за пару часов можно написать простую, быструю и надежную систему мониторинга "здоровья" для нескольких десятков серверов с получением дополнительной полезной информации. Например, суммарная наработка:
# ipmi-chassis --get-power-on-hours-counter
Power on hours : 366 Hours 22 Minutes
P.S. Для Arch Linux данный пакет есть в репозитории AUR.Там же есть пакет с Supermicro IPMICfg.