Как стать автором
Обновить

Использование OpenIPMI в среде ОС linux CentOS 5.3

На сервере IBM xSeries 346 имеется контроллер управления системой BMC, работающий независимо от операционной системы. С помощью данного контроллера можно как локально, так и удаленно мониторить жизненно важные показатели сервера, а так же управлять его питанием.
Доступ к данному контроллеру можно получить через последовательный порт, при загрузке сервера до начала процедуры POST, удаленно через сеть, или через интерфейс операционной системы. В данной статье описывается два способа получения доступа к BMC: через интерфейс ОС (CentOS 5.3) и удаленно через сеть.

Установка OpenIPMI


На борту запущена CentOS 5.3:
# uname -a
Linux localhost 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:23 EST 2009 i686 i686 i386 GNU/Linux

Работать с контроллером будем по протоколу OpenIPMI, который поддерживается многими дистрибутивами linux с kernel 2.6 и выше.

Для CentOS устанавливаем необходимые библиотеки и инструменты:
# yum install OpenIPMI OpenIPMI-tools

Запускаем консоль ipmi:
# service ipmi start

Проверяем модули:
#lsmod | grep ipmi
ipmi_devintf 	13129  0
ipmi_si 	42317  0
ipmi_msghandler 	39153  2 ipmi_devintf,ipmi_si

Проверяем файл устройства:
# ls -l /dev/ipmi0
crw------- 1 root root 253, 0 Ноя 22 15:38 /dev/ipmi0

Если все проверки прошли удачно, добавляем ipmi в автозагрузку:
# chkconfig --level 1235 ipmi on

В принципе, на этом можно было бы остановиться и отослать читателя к man ipmitool, но, для более быстрого усвоения данного инструмента, приведу описание работы ipmitool и нескольких команд для начала работы с BMC.

Доступ через интерфейс ОС


Для доступа к локальному интерфейсу необходимо использовать опцию -I open, на хосте с BMC, эта опция включена по умолчанию и вводить ее не требуется.

Далее будем работать в командной строке управления BMC:
#ipmitool shell

Теперь нам необходимо получить информацию о системном контроллере:
ipmitool> bmc info

Device ID                 : 32
Device Revision           : 0
Firmware Revision         : 1.3
IPMI Version              : 1.5
Manufacturer ID           : 2
Manufacturer Name         : Unknown (0x02)
Product ID                : 3 (0x0003)
Product Name              : Unknown (0x3)
Device Available          : yes
Provides Device SDRs      : no
Additional Device Support :
    Sensor Device
    SDR Repository Device
    SEL Device
    FRU Inventory Device
    IPMB Event Receiver
    IPMB Event Generator
    Chassis Device
Aux Firmware Rev Info     :
    0x4b
    0x50
    0x42
    0x54

Еще пара команд:
ipmitool> bmc guid # guid - dlobal unit identificator
ipmitool> bmc selftest
Selftest: passed

Затем проверим каналы по которым мы можем связаться с BMC, в моем случае:
ipmitool> channel info 1 # канал доступа по сети

Необходимо отметить в выводе этой команды строку:
Channel Protocol Type : IPMB-1.0

Краткое описание различий в версиях OpenIPMI приведу чуть ниже.
ipmitool> channel info 2 # канал доступа по последовательному порту
ipmitool> channel info 3 # канал доступа через системный интерфейс

Других каналов у меня не оказалось.
Канал доступа через системный интерфейс работает по KCS (Keyboard Controller Style) протоколу, используемому IPMI драйвером для соединения с BMC.

Вывод некоторой общей информации с контроллера.
ipmitool> fru print 
ipmitool> sdr list 
ipmitool> chassis status

Далее определимся с пользователями и их правами имеющими доступ к каналам BMC (LAN Interface — 1, Serial Interface — 2 ):
ipmitool> user list 1
ipmitool> user list 2

Настройка доступа по сети.


Замечание: Если у вас существует доверенная сеть, и вы уверены, что злоумышленник не сможет подключиться к вашему серверу из вне, можете смело настроить доступ для администратора.

Настроим пользователя для доступа через сеть:
ipmitool> user set name 2 root 
impitool> user set password 2 'password'
impitool> user priv 2 4 1 # <uid> < privilege level> <channel number>)

2 — идентификатор пользователя
1 — указывает на сетевой интерфейс
4 — уровень привелегий администратора.

Примечание: Возможные уровни привелегий:
1 Callback level
2 User level
3 Operator level
4 Administrator level
5 OEM Proprietary level
15 No access

Настройки сетевого интерфейса BMC:
impitool> lan set 1 ipsrc static
impitool> lan set 1 ipaddr 192.0.2.12
impitool> lan set 1 netmask 255.255.255.0

По желанию можно установить шлюз по умолчанию.
impitool> lan set 1 defgw ipaddr 192.0.2.1

impitool> lan set 1 access on
impitool> lan set 1 auth ADMIN MD5
ipmitool> channel setaccess 1 2 callin=on ipmi=on link=on privilege=4

MD5 используем для того чтобы пароль не передавался в открытом виде.

Проверяем:
ipmitool> channel authcap 1 2
ipmitool> user test 2 16 'password'
Success

Теперь на удаленном хосте мы можем получить доступ к BMC, для этого необходимо использовать опцию -I lan:
$ ipmitool -I lan -U root -P 'password' -H 192.0.2.12 bmc info

Если сетевой интерфейс работает по протоколу IPMI 2.0, то вам будет доступна опция SoL (Serial over LAN), с помощью которой можно будет наблюдать и управлять ходом загрузки сервера безотносительно к операционной системе по сети с другого компьютера.
Для этого необходимо с удаленного хоста выполнить команду:
$ ipmitool -I lanplus -U root -P 'password' -H 192.0.2.12 sol activate

Ссылки по теме:
IBM x Series346
BMC
FRU
OpenIPMI
man ipmitool
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.