Что такое BMC
Вам нужно понять концепцию, управление платформой (управление платформой) перед введением BMC.
Управление платформой является серия функций мониторинга и управления, а объект работает на системном оборудовании. Например, путем мониторинга температуры, напряжения, вентилятора, источника питания и т. Д. Системы и сделайте соответствующую регулировочную работу для обеспечения того, чтобы система находилась в здоровом состоянии.
Конечно, если система действительно ненормальная, вы также можете перезапустить систему с помощью сброса.
В то же время управление платформой также несет ответственность за запись информации и регистрацию различных аппаратных средств и используется для подсказки расположения пользователей и последующих вопросов.
Эти функции выше могут быть интегрированы в контроллер, который называется контроллером управления подложкой (контроллер менеджера Partboard, называемый как BMC )。
Следует отметить, что BMC является отдельной системой, которая не зависит от других аппаратных средств (таких как ЦП, память и т. Д.) О системе, и не зависит от BIOS, OS и т. Д. (Но BMC может взаимодействовать с BIOS И ОС, которая может быть к лучшему роли управления платформой, программное обеспечение для управления системой по ОС может работать с BMC для достижения лучших результатов управления).
Как правило, наш компьютер не принимает BMC, потому что управление некоторой температурой, источником питания и т. Д. Достаточно контролируется.
Но для устройств с высокими системными требованиями, такими как серверы, BMC используются.
Конечно, потому что BMC является отдельной системой для некоторых встроенных устройств, она может не потребовать других процессоров, а BMC можно завершено.
Говорят, что сам BMC также является небольшой системой с процессором (обычно процессором ARM), который используется отдельно для обработки некоторых работ.
Однако, поскольку это называется BMC, то фокус находится с точки зрения управления платформой, поэтому эта статья в основном является BMC на сервере.
Положение BMC примерно показано в системе:

BMC подключен к другим компонентам в системе через различные интерфейсы.
LPC, I2C, SMBUS, SERIAL и т. Д. Это более основные интерфейсы, а IPMI, которая представляет собой шину, которая соответствует BMC, все BMC нужно реализовать такой интерфейс, который требует специального введения.
Полное имя IPMI является интеллектуальным интерфейсом управления платформой, интеллектуальный интерфейс управления платформой.
Мне не нужно представить имя, мне не нужно делать то, что он используется, и подробное введение его можно найти.https://www.intel.com/content/www/us/en/servers/ipmi/ipmi-home.htmlЗдесь сделано только простое введение.
IPMI указывает много вещей, BMC является наиболее важной частью, а некоторые «спутниковые» контроллеры подключены к BMC через IPMB, которые обычно управляют конкретными устройствами.
IPMB Full Name Bus Minal Platform Management — это последовательный автобус на основе I2C, который используется для связи BMC и «Satellite» контроллера, который передается в команду IPMI.
IPMI ― обзор технологии

Аббревиатура IPMI расшифровывается как Intelligent Platform Management Interface (интеллектуальный интерфейс управления платформой). Через IPMI можно удаленно подключиться к серверу и управлять его работой:
- Проводить мониторинг физического состояния оборудования, например, проверять температуру отдельных составляющих системы, уровни напряжения, скорость вращения вентиляторов
- Восстанавливать работоспособность сервера в автоматическом или ручном режиме (удаленная перезагрузка системы, включение/выключение питания, загрузка ISO-образов и обновление программного обеспечения)
- Управлять периферийными устройствами
- Вести журнал событий
- Хранить информацию об используемом оборудовании
IPMI хорош тем, что перечисленные выше функции доступны вне зависимости от работы процессора, BIOS или операционной системы (ОС) управляемой платформы. Например, можно удаленно перезагрузить сервер, если зависла ОС, или поискать причину выхода из строя CPU в журнале системных событий. Управлять можно даже выключенным сервером ― достаточно того, что сервер подключен к электрической сети.
После того как сервер смонтировали и подключили к сети, инженеры Selectel настраивают BIOS и IPMI. Дальше можно выйти из шумной серверной и продолжить настраивать оборудование удаленно. Как только первоначальная настройка закончена, клиенты Selectel могут управлять работой выделенных серверов и серверов произвольной конфигурации через IPMI.
Историческая справка
| Производитель | Технология на основе IPMI |
|---|---|
| Cisco | Cisco IMC (Integrated Management Controller) |
| DELL | iDRAC (Integrated Dell Remote Access Card) |
| HP | iLO (Integrated Lights-Out) |
| IBM | IMM (Integrated Management Module) |
| Lenovo | IMM (Integrated Management Module) |
| Supermicro | SIM (Supermicro Intelligent Management) |
Компании устанавливают свои цены на предоставляемую технологию. Если стоимость реализации IPMI увеличивается, цена аренды сервера растет, так как напрямую зависит от стоимости расходников.
Решения производителей отличаются между собой:
- Наглядностью информации о состоянии оборудования
- Уникальным набором приложений для восстановления работоспособности сервера, если отказали какие-либо комплектующие
- Возможностью собирать статистику по всем комплектующим сервера, в том числе подключенным через карты расширения PCI, NVM и т.д.
- Использование технологии не только в серверном оборудовании, но и с обычными компьютерами через платы расширения PCI-Express
Хотя производители предоставляют измененный и доработанный IPMI, реализация его архитектуры остается схожей. Разберемся, из чего состоит технология, опираясь на официальную спецификацию компании Intel.
Базовые компоненты любого IPMI
Контроллеры управления
В центре архитектуры — «мозг» IPMI, микроконтроллер BMC (Baseboard Management Controller). Через него как раз и происходит удаленное управление сервером. По сути, BMC ― это отдельный компьютер со своим программным обеспечением и сетевым интерфейсом, который распаивают на материнской плате или подключают как плату расширения по шине PCI management bus.

BMC питается от дежурного напряжения материнской платы, то есть работает всегда, вне зависимости от состояния сервера.
К BMC можно подключить дополнительные контроллеры управления (Management Controllers, MCs), чтобы расширить возможности базового управления. Например, в то время как основная система управляется функциями BMC, MCs подключаются для мониторинга различных подсистем: резервных источников питания, RAID-накопителей, периферийных устройств.
MCs поставляются самостоятельными платами, отдельными от центрального BMC, поэтому их также называют Satellite Controllers. Дополнительных контроллеров может быть несколько, а вот центральный BMC — один.
К BMC контроллеры подключаются через интерфейс IPMB (Intelligent Platform Management Bus ― шина интеллектуального управления платформой). IPMB ― это шина на основе I2C (Inter-Integrated Circuit), по которой BMC перенаправляет команды управления к различным частям архитектуры:
- Общается с дополнительными контроллерами (MCs)
- Считывает данные сенсоров (Sensors)
- Обращается к энергонезависимому хранилищу (Non-Volatile Storage)
Кроме передачи команд на BMC можно настроить автоматическое выполнение действий контроллером с помощью следующих механизмов:
| PEF (Platform Event Filtering) | BMC хранит таблицу событий с информацией о том, на какие события реагировать и какие действия предпринять. Когда BMC получает сообщение о событии, он сравнивает данные с таблицей и выбирает, как реагировать на событие. Реакция включает такие действия, как выключение, перезагрузка системы, формирование оповещения |
| Watchdog Timer | Таймер настраивается на выполнение действия по истечении заданного промежутка времени. Действия включают в себя выключение, перезагрузку сервера, прерывание процессов. Если в качестве таймаута задать значение 0, действие будет выполнено сразу же. В зависимости от реализации Watchdog может опрашивать систему о состоянии раз в заданный временной интервал. Если система не отвечает (например, при зависании), инициируется действие |
| Firmware Firewall | Некоторые действия BMC, реализуемые в отдельно стоящем сервере, могут нарушить работу модульных платформ (например, блейд-сервера). Чтобы предотвратить возможные проблемы, файрвол позволяет BMC блокировать настройки, команды IPMI и операции записи, поступающие через системный интерфейс. Файервол также содержит набор команд, через которые можно узнать, какие команды и функции управления доступны для конкретной платформы |

Энергонезависимое хранилище
Энергонезависимое хранилище остается доступным даже при сбое CPU сервера, например, через локальную сеть; состоит из трех областей:
- System Event Log (SEL) ― журнал системных событий
- Sensor Data Record (SDR) Repository ― репозиторий, хранящий данные о сенсорах
- Field Replaceable Units (FRUs) Info ― инвентарная информация о модулях системы
К реализации SEL есть обязательные требования:
- SEL хранит в памяти не меньше 16 событий
- К информации, хранящейся в SEL, можно получить доступ вне зависимости от доступа к BMC и состояния управляемой платформы
Сообщение о событии несет в себе информацию из областей SDR Repository и FRU Info.
Записи SDR — это данные о типах и количестве сенсоров, их возможности генерировать события, типы показаний. SDR также содержат записи о количестве и типах устройств, подключенных к IPMB. Записи SDR хранятся в области памяти, которая называется SDR Repository (Sensor Data Records Repository).
Записи FRU содержат информацию о серийных номерах и моделях деталей различных модулей системы — процессора, платы памяти, платы ввода-вывода, контроллерах управления.
Информация FRU может предоставляться через MC (командами IPMI) либо через доступ к чипам энергонезависимой памяти SEEPROM (Serial Electrically Erasable Programmable Read Only Memory), подключенным по шине Private Management Bus. По этой шине контроллеры общаются через низкоуровневые I2C-команды с устройствами, которые не поддерживают IPMI-команды.
Практическое применение
Допустим, клиент жалуется на зависания сервера, но в логах операционной системы всё в порядке. Смотрим SEL ― видим ошибки по одной из планок оперативной памяти с указанием информации о слоте, в котором она находится. Меняем ― сервер начинает работать как часы.
Выше мы разобрали основные модули архитектуры IPMI. Теперь обратимся к структуре передаваемых команд и посмотрим, по каким интерфейсам происходит удаленное подключение.
Структура IPMI-команд
IPMI передает сообщения в формате запрос-ответ. Запросы — это команды. Команды инициируют действия и устанавливают значения. Формат запрос-ответ делает возможным одновременное общение нескольких контроллеров по одной шине.
Сообщения IPMI содержат базовый набор полей, единый для всех команд:
- Network Function (NetFn) присваивает команде значение кластера, к которому команда относится (команды шасси, событий, хранилища и т. д.)
- Поле Request/Response Identifier нужно, чтобы различать запросы и ответы
- Requester’s ID — информация об источнике сообщения. Например, для IPMB эта информация содержит LUN (Logical Unit Number) устройства
- Responder’s ID адресует запрос к желаемому ответчику
- Command — уникальные в рамках Network Function команды
- Data — дополнительные параметры (например, данные, возвращаемые в ответе)
Каналы, по которым передаются сообщения, можно разделить на три категории с соответствующими интерфейсами:
- BMC ― MCs, Sensors, Storage (IPMB)
- BMC ― управляемая платформа (System Interface)
- BMC ― удаленный администратор (LAN, Serial Interface)
- Serial ↔ IPMB
- Serial ↔ System Interface
- LAN ↔ IPMB
- LAN ↔ System Interface
- Serial ↔ PCI Management Bus
- LAN ↔ PCI Management Bus
- Другие комбинации, в том числе Serial ↔ LAN
Интерфейсы удаленного доступа
В начальной версии IPMI удаленная консоль подключалась к модулю BMC через последовательный интерфейс (Serial Interface). Спецификация IPMI v2.0 базируется на использовании сетевого интерфейса (LAN Interface).
Интерфейс LAN предоставляется через выделенный сетевой порт BMC со своим IP-адресом. При передаче через LAN сообщения IPMI проходят несколько этапов инкапсуляции:
- Сообщения IPMI формируются в пакеты IPMI Session (позже в статье мы подробнее рассмотрим формирование IPMI Session)
- Пакеты IPMI Session инкапсулируются по протоколу RMCP (Remote Management Control Protocol)
- RMCP-пакеты формируются в UDP datagrams
- Добавляются фреймы Ethernet

Последовательный интерфейс для подключения удаленной консоли к BMC уже не используется, однако он нужен для реализации двух функций:
- Serial Port Sharing
- Serial-over-LAN (SoL)
Serial-over-LAN нужен для взаимодействия с компонентами системы, которые понимают только последовательный интерфейс общения. Еще можно из консоли сервера посылать команды напрямую к устройствам сервера (чипам, картам, дискам и так далее). SoL реализован так, чтобы работать совместно с функцией Serial Port Sharing.
Сеанс и аутентификация
Для LAN и последовательного интерфейса началу передачи IPMI-сообщений предшествует установление сеанса, в ходе которого формируются пакеты данных IPMI Session.
Установление сеанса ― это аутентификация конкретного пользователя. Сеанс должен быть активирован перед началом передачи IPMI-сообщений по следующему алгоритму:

- Удаленная консоль запрашивает данные по аутентификации у BMC
- BMC посылает ответ о поддерживаемых типах аутентификации (none, password, алгоритмы MD2 и MD5 и т.д.)
- Удаленная консоль посылает команду о выбранном типе аутентификации и отправляет логин пользователя
- Если пользователь имеет привилегии доступа к каналу, BMC посылает ответ, содержащий ID сеанса. Благодаря назначению ID, несколько сеансов могут работать одновременно на одном канале (согласно требованиям спецификации ― не менее четырех одновременных сессий)
- Удаленная консоль посылает запрос активации сеанса. Запрос содержит ID сеанса и аутентификационную информацию (имя пользователя, пароль, ключи ― зависит от выбранного типа аутентификации)
- BMC верифицирует информацию о пользователе, утверждает ID сеанса и посылает ответ об активации
Доступ к BMC можно заблокировать, отправив одновременно множество запросов об активации сеанса, тогда все ресурсы будут использоваться для отслеживания сессий, требующих активации. Чтобы предотвратить возможную атаку, в реализации BMC рекомендуется применять алгоритм LRU (Last Recently Used). Алгоритм утверждает ID сеанса для наиболее раннего запроса активации сеанса. Например, удаленная консоль запускается через браузер в noVNC-сессии. Если открыть несколько вкладок с запущенными сессиями, текстовый ввод будет доступен в наиболее ранней открытой вкладке.
Когда IPMI становится недоступен
IPMI помогает восстановить работоспособность сервера при его сбое. Однако может случиться так, что становится недоступна система удаленного управления. Сбои в работе IPMI можно разделить на четыре категории:
- На уровне сети. «Битые» порты, нерабочее оборудование, дефект кабеля, плохо обжатая витая пара
- На уровне ПО. Баг системы, зависание модуля BMC, необходимость обновить прошивку модуля
- На уровне «железа». Перегрев, выход из строя критичных комплектующих (память, процессор), дефекты архитектуры системы
- На уровне питания. Отключение питания BMC или проблемы с блоком питания сервера
IPMI на практике
Управлять сервером по IPMI можно через веб-браузер, утилиты, предоставляемые производителями, и утилиты с открытым исходным кодом.
Веб-интерфейс у каждой реализации IPMI свой, но принцип доступа остается одинаковым:
- Ввести в адресную строку IP-адрес порта BMC
- Ввести логин и пароль. Иногда эта информация указана непосредственно на оборудовании

Возможности веб-интерфейса также реализованы в графической утилите Supermicro IPMIView:

Чтобы управлять оборудованием через Linux-консоль, устанавливается соответствующая утилита (например, Ipmitool для локального и удаленного управления или IPMICFG для локального). Далее при помощи консольных команд добавляется IPMI-устройство и конфигурируется BMC.

Клиентам Selectel доступен IPMI для выделенных серверов и серверов произвольной конфигурации. IPMI реализован в виде KVM-консоли, которая запускается в noVNC-сессии через панель управления. Для этого в карточке с информацией о сервере надо нажать на значок консоли в правом верхнем углу:

Консоль открывается в браузере и подстраивается под размер экрана. При желании консоль можно использовать даже через телефон или планшет.
Сессия прерывается, если выйти из панели.

Заключение
IPMI ― это полностью автономный компонент серверной платформы, который не зависит ни от операционной системы, ни от BIOS, ни от CPU сервера.
Благодаря IPMI, затраты на обслуживание серверных систем сокращаются, а жизнь системных администраторов становится проще. Нет необходимости постоянного присутствия рядом с оборудованием ― его работа контролируется удаленно по сети.
В этой статье мы рассмотрели основные компоненты IPMI. Однако детали технологии обширны. Талантливые разработчики, опираясь на спецификацию, могут создавать свое IPMI-оборудование и open-source инструменты, попутно устраняя недостатки текущей спецификации и открывая новые возможности удаленного управления.