Обзор технологии IPMI


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

Введение в IPMI

IPMI (Intelligent Platform Management Interface) – интеллектуальный интерфейс управления платформой. Первая версия IPMI появилась в 1998 году. Над этой технологией работали компании HP, Intel, Dell, NEC. В первой версии обнаружились уязвимости, которые были устранены в версиях 1.5 и 2.0.

Основные возможности IPMI:

  • Мониторинг физического состояния оборудования (можно посмотреть скорость вращения вентиляторов, температуру отдельных компонентов системы, уровни напряжения и т.д.)
  • Журналирование событий.
  • Управление периферийными устройствами.
  • Восстановление работоспособности сервера в автоматическом или ручном режиме (можно загрузить ISO-образы, обновить ПО, включить/выключить/перезагрузить сервер – все это удаленно).
  • Хранение информации об использованном оборудовании.

Представим, что есть обычный удаленный сервер, который администрируется по ssh. Если администратор что-то сделал не так (например, неумышленно активировал правило брандмауэра, закрывающее доступ ssh), он потеряет доступ по ssh. Что делать? Правильно, ехать в офис (или место физической установки сервера) и устранять проблему локально. Как назло, такую оплошность админ допустил по невнимательности, находясь в долгожданном отпуске…

При использовании IPMI можно удаленно подключиться и поменять настройки. Данная технология хорошая тем, что все перечисленные ранее возможности доступны, независимо от работы BIOS, процессора или операционной системы. Администратор может управлять даже выключенным сервером – главное, чтобы он был подключен к сети питания.

Решения от разных вендоров

Поскольку изначально над IPMI работало несколько компаний, существует несколько реализаций данной технологии от разных вендоров. Таблица 1 содержит названия таких технологий.

ВендорНазвание технологии
HPiLO (Integrated Lights-Out)
CiscoCisco IMC (Integrated Management Controller)
IBM/LenovoIMM (Integrated Management Module)
DELLiDRAC (Integrated Dell Remote Access Card)
SupermicroSIM (Supermicro Intelligent Management)

Решения от разных вендоров отличаются не только ценой, но и функционалом, а именно:

  • Возможность собирать статистику по всем комплектующим сервера.
  • Уникальным набором приложений для восстановления работоспособности сервера в случае отказа комплектующих.
  • Использование технологии не только на серверном оборудовании, но и на обычных компьютерах посредством плат PCI-Express.

На практике для комфортной работы вполне достаточно удобной панели управления и своевременного оповещения о проблемах, а это базовый функционал IPMI, который вы получите, выбрав технологию любого вендора. Так что основным факторов, влияющим на выбор, является либо предпочтение какого-то бренда, либо цена.

Компоненты IPMI

Самым главным в архитектуре IPMI является контроллер управления – BMC (Baseboard Management Controller). Посредством этого контроллера происходит удаленное управление сервером. BMC представляет собой отдельный компьютер со своим ПО и сетевым интерфейсом, который или распаивается на материнской плате или подключается как плата расширения по шине PCI management bus.

Контроллер управления питается от дежурного напряжения материнской платы, другими словами он работает всегда. К нему можно подключить дополнительные контроллеры управления (Management Controller, MC) для расширения возможностей базового управления. Как правило, MC подключаются для мониторинга разных подсистем: резервных источников питания, RAID-накопителей, периферийных устройств.

Дополнительные MC поставляются в виде самостоятельных плат, отдельно от центрального BMC, поэтому их часто называют сателлитами (Satellite Controller). Дополнительных MC может быть несколько, а BMC - только один. Для подключения к BMC сателлиты используют интерфейс IPMB (Intelligent Platform Management Bus – шина интеллектуального управления платформой), который представляет собой шину на основе I2C (Inter-Integrated Circuit), по которой базовый контроллер перенаправляет команды управления к разным частям архитектуры, например, общается с дополнительными контроллерами (MC), получает значения сенсоров, обращается к энергонезависимому хранилищу.

Администратор не имеет прямого доступа к компонентам системы. Например, чтобы считать данные датчиков, администратор посылает команду на BMC, а BMC уже обращается к датчику, считывает его значение и отправляет результат администратору.

Кроме передачи команд на BMC администратор может настроить автоматическое выполнение действий контроллером с помощью следующих механизмов:

  • PEF (Platform Event Filtering) – базовый контроллер хранит таблицу событий с информацией о том, на какие события нужно реагировать, а на какие – нет. Когда BMC получает сообщение о событии, он сравнивает данные с таблицей и выбирает необходимое действие. Реакция может быть следующей – выключение, перезагрузка, оповещение.
  • Firmware Firewall – аппаратный брандмауэр позволяет BMC блокировать настройки, команды IPMI и операции записи, поступающие через системный интерфейс. Также этот модуль содержит набор команд, позволяющие узнать, какие команды и функции управления доступны для конкретной платформы.
  • Watchdog Timer – таймер, настраиваемый на выполнение действия по истечении заданного промежутка времени. Действия включают в себя выключение, перезагрузку сервера, завершение процессов. Если в качестве таймера установлено 0, действие будет выполнено моментально.

Структура IPMI-команд

Технология IPMI подразумевает сообщение в формате запрос-ответ. Запрос – это команда IPMI. Команды могут запускать определенные действия и устанавливать значения. Сообщения IPMI имеют общий формат (он одинаковый для всех команд):

  • NetFn (Network Function) – присваивает команде значение кластера, к которому относится команда (события, хранилища, команды шасси и т.д.)
  • Request/Response Identifier – используется, чтобы различать запросы и ответы.
  • Request's ID – информация об источнике сообщения. Например, для IPMB эта информация содержит LUN (Logical Unit Number, Номер Логического Модуля) устройства.
  • Responder's ID – позволяет адресовать запрос к необходимому ответчику.
  • Command – уникальная в рамках NetFn команда.
  • Data – дополнительные параметры.

В ответе всегда возвращается Completion Code, сообщающий результат выполнения команды. В случае возникновения ошибки, будет возвращен ненулевой код, соответствующий событию.

Все каналы, по которым передаются сообщения, можно разделить на три категории:

  • BMC – MC, сенсоры, хранилище (IPMB)
  • BMC – управляемая платформа (System Interface)
  • BMC – удаленный администратор (LAN, Serial Interface).

На BMC можно смотреть, как на коммутатор, связывающий между собой интерфейсы системы:

  • LAN – PCI Management Bus
  • Serial – PCI Management Bus
  • LAN – System Interface
  • LAN – IPMB
  • Serial – System Interface
  • Serial – IPMB

Удаленный доступ

В первой версии IPMI удаленная консоль подключалась к BMC посредством последовательного интерфейса (Serial Interface). Во второй версии (IPMI v2.0) используется сетевой интерфейс.

Интерфейс LAN предоставляется через выделенный сетевой порт BMC со своим IP-адресом. Этапы прохождения IPMI-сообщений через LAN:

  • Сообщения IPMI формируются в пакеты IPMI
  • Сформированные IPMI-пакеты инкапсулируются по протоколу RMCP (Remote Management Control Protocol)
  • RMCP-пакеты формируются в дейтаграммы UDP
  • Добавляются фреймы Ethernet.

Последовательный интерфейс для подключения удаленной консоли уже не используется, но он все еще нужен для реализации следующих функций.

Serial Port Sharing – предоставляет возможность использовать общий последовательный коннектор между последовательными контроллерами BMC и контролируемой системы. Используется, как правило, для перенаправления BIOS-консоли на модуль BMC

Serial-over-LAN – используется для взаимодействия с компонентами системы, которые понимают только последовательный интерфейс общения. Еще можно из консоли сервера отправлять команды напрямую к устройствам сервера.

А если IPMI поломался?

Система IPMI позволяет восстановить работоспособность сервера при его сбое. Но что делать, если сама система IPMI стала недоступной? Сбои в IPMI можно разделить на четыре типа.

Сбои питания – произошло отключение питания BMC. Учитывая, что BMC питается от дежурного напряжения материнской платы, скорее всего, вышел из строя блок питания сервера.

Сбои ПО – зависание модуля BMC также возможно, не забывайте, что это компьютер и он тоже может "глючить". К счастью, такое происходит редко, лечится, как правило, обновлением прошивки модуля.

Сбои на уровне железа – перегрев, выход из строя критических компонентов (память, процессор).

Сбои сети – дефект кабеля, "битые" порты, плохо обжатая витая пара – вот причины сетевого сбоя.

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

Заключение

IPMI существенно облегчает жизнь системного администратора и во многих случаях позволяет обойтись без физического контакта с оборудованием. Нужно помнить, что это не панацея - в самой системе IPMI может произойти сбой, поэтому ничто не может гарантировать 100% надежности. Но в любом случае IPMI – это тот самый костыль, который может спасти в критической ситуации.