From: Dmitry A. Koptev <dimez@nm.ru.>
Date: Mon, 17 Oct 2005 18:21:07 +0000 (UTC)
Subject: [Linux] Удалённое управление сервером через IPMI интерфейс
Оригинал: http://dimez.nm.ru/docs/bmc/
У многих в обслуживании имеются сервера с материнскими платами Intel.
К сожалению, из-за различных проблем либо с оборудованием, либо с
недостаточно стабильнымии драйверами, бывает, что сервера "повисают".
С такими случаями поможет справиться аппаратный watchdog(к примеру),
но это отдельная железка.
К сожалению, не встречался с серверными вариантами плат фирм, отличных
от Intel, поэтому буду говорить только про них.
В достаточно современных материнских платах от Intel есть встроенная
возможность удалённо управлять сервером, т.к. там есть BMC(или
miniBMC).
BMC (по терминологии INTEL) Baseboard Management Controller, miniBMC,
соответственно - урезанный вариант BMC(превращается в полноценный
MC (Management Controller) путём установки IMM (Intel Management
Module)
Для того, чтобы его(BMC/miniBMC) задействовать, нужно сначала его
сконфигурировать.
Для этого нужно:
* Иметь в ядре поддержку IPMI(я собрал модулями)
* Я ещё собрал поддержку I2C для lm_sensors (тоже модулями)
* OpenIPMI - набор библиотек и утилит, позволяет локальной машине
взаимодействовать с BMC.
* ipmitool - CLI, позволяющая взаимодействовать с BMC с
Linux-машины, поддерживает "общение" через LAN и через
OpenIPMI-интерфейс.
* Для Slackware-10.2 вы можете взять собранные пакеты тут
Итак, приступим.
Берём патчи для ядра с сайта OpenIPMI
На текущий момент(для ядра 2.6.13, подходит и для 2.6.13.4) это:
* I2C - i2c-i801, eeprom(у меня так) - необязательно
* IPMI
a) ipmi_si, ipmi_devintf(для полноценного BMC)
b) ipmi_devintf, ipmi_smb(для miniBMC)
Собираем OpenIPMI и ipmitool, а дальше начинается самое интересное -
конфигурация BMC ;)
Для начала, после корректной вышеописанной настройки, вылолните
команду:
# ipmitool -I open chassis status
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
Если вывод команды у вас примерно совпадает с моим, вы можете
попробовать дальше:
# ipmitool -I open sdr list
# ipmitool -I open sel list
т.е. всё отлично. На данном этапе вы можете локально управлять
сервером, но локально не интересно, поэтому настраиваем дальше:
Настроим сетевую карточку. Для этого можно использовать скрипт
/usr/share/ipmitool/bmclanconf, идущий с ipmitool.
В моём случае его надо было подправить, в самом низу строчку привести
к такому виду:
т.к. md2 у меня не поддерживается, что можно увидеть по строчке
"Auth Type Support":
# ipmitool lan print 1
Set in Progress : Set In Progress
Auth Type Support : NONE MD5 PASSWORD
...
Затем настраиваем карту:
# /usr/share/ipmitool/bmclanconf -c 1 -i eth0
Set in Progress : Set In Progress
Auth Type Support : NONE MD5 PASSWORD
Auth Type Enable : Callback : MD5 PASSWORD
: User : MD5 PASSWORD
: Operator : MD5 PASSWORD
: Admin : MD5 PASSWORD
IP Address Source : Static Address
IP Address : <your ip here>
Subnet Mask : <your mask here>
MAC Address : <your MAC here>
SNMP Community String : public
IP Header : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10
BMC ARP Control : ARP Responses Enabled, Gratuitous ARP Enabled
Gratituous ARP Intrvl : 8.0 seconds
Default Gateway IP : <your gw MAC here>
Default Gateway MAC : 00:13:c3:35:ee:ff
Backup Gateway IP : 0.0.0.0
Backup Gateway MAC : 00:00:00:00:00:00
Cipher Suite Priv Max : Not Available
затем надо настроить пароль на управление BMC через LAN
# ipmitool -I open lan set 1 password <your password here>
Затем пробуем с удалённой машины с Linux:
$ ipmitool -I lan -H <your ip here> chassis status
Password: <your password here>
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
Получилось! :) Теперь вы можете удалённо
включать/выключать/перезагружать(soft и hard reset)/мониторить сервер!
Используемая документация:
* IPMI HOWTO for Debian GNU/Linux on the Intel SR2300 (Server Board SE7501WV2)
http://buttersideup.com/docs/howto/IPMI_on_Debian.html
* Сайт и рассылка openIPMI
http://openipmi.sourceforge.net/
* Сайт и рассылка ipmitool
http://ipmitool.sourceforge.net/
P.S. Я рассмотрел примитивное управление сервером, т.к. я настраивал в
короткое время и miniBMC. Нормальный BMC(не урезанный) поддерживает
также SOL(Serial Over LAN), что описано в вышеперечисленной
документации.