IPMITOOL на VMware ESXi и Linux

3e335b0b64c94e19ae90c7d1ba2ff2d3
В наследство досталось несколько физических hp proliant dl180 g6 с RAID контроллерами HP P410.

Из необходимого мне — сразу был поставлен Esxi 5.5 с ISO HPE. В комплект уже входит замечательная утилита «hpacucli», о которой я уже писал в обзоре Linux: Работа с RAID контроллером от HP (на esxi утилита живет по другому пути «/opt/hp/hpssacli/bin/hpssacli»).

Все хорошо, но у сервера отсутствует управление по IPMI, точнее удаленное управление питанием.
Это мы и попытаемся исправить.

2016-08-17_14-27-45

Несколько определений, которые потребуются нам в дальнейшем:

IPMI (Intelligent Platform Management Interface) — это интерфейс управления платформой (железом). Его назначение — мониторинг и управление железом сервера, независимо от операционной системы, даже в тех случаях, когда сервер выключен, но подключен к источнику питания.

BMC (Baseboard management controller) — это микросхема-контроллер.
IPMI является стандартом, которого придерживаются вендоры при разработке оборудования. IPMI определяет какие функции должны присутствовать, по каким интерфейсам взаимодействовать в сети и с операционной системой. Аппаратная составляющая системы IPMI выполняется в виде одной или нескольких микросхем и носит название BMC (Baseboard management controller) или сервисный процессор («сервер внутри сервера»). Сервисный процессор работает независимо от центрального процессора, BIOS и операционной системы. Ошибки, возникающие в любом из этих элементов, не способны повлиять на его работу. Микроконтроллер имеет собственный процессор, память, сетевой интерфейс, поэтому доступен, даже если сам сервер выключен.

HP Lights-Out 100 (LO100) Remote Management — механизм управления серверами в условиях отсутствия физического доступа к ним. Основное отличие от IPMI: графический веб-интерфейс (GUI) — доступ к iLO через стандартный браузер.

С учетом проведенного времени и не совсем достигнутых результатов хочется согласиться с автором:

«С некоторыми бюджетными HP-шными серверами в комплекте идёт средство удалённого управления aka BMC под названием «LO100». От «нормального» iLo2 оно отличается кастрированным функционалом, глючностью и работой через интерфейс IPMI. А ещё эта падла частенько конкретно зависает….»

(c) http://klink0v.livejournal.com/225709.html

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

Начнем по порядку.

Для работу с ipmi нам понадобиться ipmitool.

В CentOS она ставится через «yum»:

yum install ipmitool-1.8.15-2.el6.x86_64

# не забываем подключить модули ядра
modprobe ipmi_devintf
modprobe ipmi_si

С VMWare сложнее.

Я честно пытался скомпилить утилиту так:
https://coderwall.com/p/5cqj0g/esxi-ipmitool-works-on-any-linux-system-as-well

Но проблемы при компиляции или непосредственно на esxi не давали продвинуться дальше:

./configure CFLAGS=-m32 LDFLAGS=-static
checking for C compiler default output file name... configure: error: C compiler cannot create executables


/vmfs/volumes/Datastore4 # ./ipmitool
./ipmitool: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory

Кому интересно «тема ошибки» живет по ссылке http://serverfault.com/questions/580489/configure-error-c-compiler-cannot-create-executables-while-build-ruby-from-sou

В итоге воспользовался данным мануалом http://mmurayama.blogspot.ru/2016/01/ipmitool-on-vmware-esxi.html

Для ленивых или на случай если ссылка исчезнет, локальная ссылка на пакет ipmitool.

Пакет ставится стандартно:

Проверяем что пакет не установлен:

esxcli software vib list | grep ipmitool

Переходим в папку с пакетом, прописываем полный путь до пакета и получаем ошибку:

esxcli software vib install -v /vmfs/volumes/57b32811-c14788be-c5fa-9c8e9919cfce/ipmitool-1.8.15
-1.vib
 [DependencyError]
 VIB IPMItool_bootbank_ipmitool_1.8.15-1's acceptance level is community, which is not compliant with the ImageProfile acceptance level partner
 To change the host acceptance level, use the 'esxcli software acceptance set' command.
 Please refer to the log file for more details.

Ошибка намекает, на то что не стоит ставить «левые» пакеты на сертифицированную сборку ESXi.

Если мы понимаем, что делаем, то меняем режим работы ESXi:

/vmfs/volumes/57b32811-c14788be-c5fa-9c8e9919cfce # esxcli software acceptance set --level=CommunitySupported
Host acceptance level changed to 'CommunitySupported'.

И ставим еще раз:

# esxcli software vib install -v /vmfs/volumes/57b32811-c14788be-c5fa-9c8e9919cfce/ipmitool-1.8.15
-1.vib
Installation Result
   Message: Operation finished successfully.
   Reboot Required: false
   VIBs Installed: IPMItool_bootbank_ipmitool_1.8.15-1
   VIBs Removed:
   VIBs Skipped:

Проверяем, что установка прошла:

#  esxcli software vib list |grep ipmitool
ipmitool                       1.8.15-1                               IPMItool         CommunitySupported  2016-08-17

Запускаем утилиту:

# /opt/ipmitool/bin/ipmitool mc info
Device ID                 : 18
Device Revision           : 1
Firmware Revision         : 4.22
IPMI Version              : 2.0
Manufacturer ID           : 11
Manufacturer Name         : Hewlett-Packard
Product ID                : 0 (0x0000)
Product Name              : Unknown (0x0)
Device Available          : yes
Provides Device SDRs      : no
Additional Device Support :
    Sensor Device
    SDR Repository Device
    SEL Device
    FRU Inventory Device
    IPMB Event Receiver
    Bridge
    Chassis Device
Aux Firmware Rev Info     :
    0x03
    0x01
    0x00
    0x00

Дальше настраиваем сетевой интерфейс и пользователя:

cd /opt/ipmitool/bin/

./ipmitool lan set 2 ipsrc static
./ipmitool lan set 2 ipaddr 192.168.0.6
./ipmitool lan set 2 defgw ipaddr  192.168.0.1
./ipmitool lan set 2 netmask 255.255.255.0
./ipmitool lan set 2 vlan id 10
./ipmitool lan set 2 access on
./ipmitool user set name 2 root
./ipmitool user set password 2 Password
./ipmitool user enable 2
./ipmitool lan print 2

Делаем перезагрузку ipmi:

ipmitool mc reset cold

Во всех мануалах написано, что после этого ipmi должен запинговаться — к сожалению это не так.

Для того, чтобы заработало в BIOS необходимо сменить у «BMC NIC Allocation» режим работы с «Dedicated» на «Shared»:

2016-08-18 13-32-28

2016-08-18 13-32-33

2016-08-18 13-33-42

Как это сделать через ipmitool для серверов HP, я не нашел, хотя и предполагал, что делается это через правильную подачу параметров «ipmitool raw», параметры от supermicro, естественно не подошли:

# ipmitool raw 0x30 0x24 0
Unable to send RAW command (channel=0x0 netfn=0x30 lun=0x0 cmd=0x24 rsp=0xc7): Request data length invalid

Относительно быстрый и прямой вариант, сделать это без перезагрузки — это задать параметры через «LO100»,  утилита также не входит в стандартный комплект установки, но замечательно ставится путем копирования бинарника с linux сервера:

#cat ip.xml

<nic mode="dhcp" type="shared"> 
<ipv4 address="10.10.10.18" mask="255.255.252.0" gateway="10.10.10.1" /> 
<firewall http_active="yes" ping_active="yes" telnet_active="yes" /> 
</nic>

#./lo100cfg –i ip.xml

В качестве итога могу процитировать мои слова в начале еще раз.

Вполне возможно, что я не до конца разобрался в данной технологии, как вариант сервера, на которых проводились тесты относительно устаревшие (старые Bios и т.п.), но я морально не был готов, что часть моих изменений, тестов и т.п. потребует моего присутствия в ДЦ рядом с серверами для донастройки, а другая часть будет работать только после передергивания сервера по питанию.

 

Полезные ссылки:
Мониторинг серверного железа через IPMI

IPMI on CentOS/RHEL

iLO, iLO2, iLO3 and iLO4 Advanced License Activation Keys

 

По материалам:
http://www.etegro.ru/articles/ipmi-bmc

Вы можете оставить комментарий ниже.