10.02.2020

Технологія IPMI і її можливості

Для того щоб мати можливість дистанційно керувати одним або безліччю серверів, існує технологія IPMI, яка здатна значно спростити роботу системним адміністраторам і полегшити обслуговування серверної інфраструктури.

За допомогою функціоналу технології можливо своєчасно реагувати на критичні помилки, а також ефективно здійснювати моніторинг стану параметрів всіх ключових компонентів системи.

Що таке IPMI

Абревіатура IPMI розшифровується як Intelligent Platform Management Interface (інтелектуальний інтерфейс управління платформою).

Використовуючи IPMI можна зробити віддалене підключення до сервера, здійснювати перегляд стану обладнання і управляти його роботою:

Припустимо, адміністратор переналаштовує мережу на сервері, припускається помилки в конфігурації і втрачає доступ по SSH. Що робити в такій ситуації? Можна підключитися по IPMI і поміняти настройки.

Одним з головних достоїнств IPMI є незалежність від праці процесору, BIOS або ОС (операційної системи) керованої платформи.

Ви можете переглянути журрнал подій для пошуку виходу з ладу будь-яких компонентів системи, або здійснити віддалену перезавантаження сервера, якщо зависла ОС і система "не відповідає". Є можливість управління навіть вимкненим сервером - досить лише, щоб сервер був підключений до електричної мережі.

Після того як сервер змонтували і підключили до мережі, налаштовують BIOS і IPMI. Далі можна вийти з галасливою серверній і продовжити налаштовувати обладнання віддалено. Як тільки первісна настройка закінчена, клієнти Selectel можуть управляти роботою виділених серверів і серверів довільної конфігурації через IPMI.

Історична довідка

Технологію розробили провідні компанії в галузі Intell, Dell, NEC, і Hewlett-Packard, перша специфікація IPMI v1.0 розроблена в 1998 році, на практиці були виявлені вразливості і недоліки, поточна версія інтерфейсу IPMI 2.0 обявлени в грудні 2004 року, в ній виправлених попередні помилки і значно розширено функціонал в порівнянні з першою версією.

IPMI не вимагає використання спеціалізованих запатентованих пристроїв і певних мікроконтролерів, тому як стандартизує інтерфейс спілкування, а не конкретну реалізацію в апаратної частини обладнання. Кожен виробник розробляє власне обладнання IPMI, дотримуючись специфікацій технології.

У таблиці представлені найменування технології IPMI, вбудованої в серверні платформи різних виробників:

Виробник

Технологія на основі IPMI

DELL

iDRAC (Integrated Dell Remote Access Card)

HP

iLO (Integrated Lights-Out)

Supermicro

SIM (Supermicro Intelligent Management)

Lenovo

IMM (Integrated Management Module)

IBM

IMM (Integrated Management Module)

Cisco

Cisco IMC (Integrated Management Controller)

Компанії встановлюють свої ціни на надану технологію. Якщо вартість реалізації IPMI збільшується, ціна оренди сервера зростає, так як безпосередньо залежить від вартості витратних матеріалів.

Рішення виробників відрізняються між собою:

На ділі для комфортної роботи з віддаленої консоллю та своєчасного оповіщення про проблеми досить базового функціоналу IPMI.

Хоча виробники надають змінений і доопрацьований IPMI, реалізація його архітектури залишається схожою. Розберемося, з що складається технологія, спираючись на офіційну специфікацію компанії Intel.

Базові компоненти будь-якого IPMI

контролери управління

BMC (Baseboard Management Controller) - є мікро контролером на базі SoC (системи на кристалі), через нього як раз і відбувається дистанційне керування сервером. Контролер BMC якраз і виконує віддалене управління сервером, має своє програмне забезпечення і мережевий інтерфейс, який розпаювали на материнській платі або підключають у вигляді плати за шині PCI management bus.

Базові компоненти архітектури IPMI

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 перенаправляє команди управління до різних частин архітектури:

Архітектура IPMI реалізована так, що віддалений адміністратор не має прямого доступу до компонентів системи. Наприклад, щоб отримати дані з сенсорів, віддалений адміністратор посилає команду на BMC, а BMC в свою чергу звертається до сенсорам.

Крім передачі команд на BMC можна налаштувати автоматичне виконання дій контролером за допомогою наступних механізмів: 

PEF (Platform Event Filtering)

BMC зберігає таблицю подій з інформацією про те, на які події реагувати і які дії зробити. Коли BMC отримує повідомлення про подію, він порівнює дані з таблицею і вибирає, як реагувати на подію. Реакція включає такі дії, як виключення, перезавантаження системи, формування оповіщення

Watchdog Timer

Таймер налаштовується на виконання дії після закінчення заданого проміжку часу. Дії включають в себе виключення, перезавантаження сервера, переривання процесів. Якщо в якості таймаута задати значення 0, дія буде виконана одразу ж. Залежно від реалізації Watchdog може опитувати систему про стан раз в заданий часовий інтервал. Якщо система не відповідає (наприклад, при зависанні), ініціюється дію

Firmware Firewall

Деякі дії BMC, реалізовані в окремому сервері, можуть порушити роботу модульних платформ (наприклад, блейд-сервера). Щоб запобігти можливим проблемам, файрвол дозволяє BMC блокувати настройки, команди IPMI і операції записи, що надходять через системний інтерфейс. Файервол також містить набір команд, через які можна довідатися, які команди і функції управління доступні для конкретної платформи

Налаштування PEF і Watchdog Timer в BIOS сервера

незалежне сховище

Незалежне сховище залишається доступним навіть при збої CPU сервера, наприклад, через локальну мережу; складається з трьох областей:

Модулі системи генерують (Event Generator) або отримують (Event receiver) події. MCs виступають в якості генераторів подій, а BMC в архітектурі може виконувати обидві ролі. BMC отримує повідомлення про події з системного інтерфейсу і IPMB, а потім реєструє їх в System Event Log (SEL).

До реалізації SEL є обов'язкові вимоги:

Команди IPMI допускають читання і видалення SEL. Оскільки пам'ять SEL обмежена, періодично журнал треба перевіряти й очищати, щоб записувалися нові події. В налаштуваннях BMC можна конфігурувати автоочистки SEL. Очистка на різних платформах відбувається по-різному - стираючи старі записи, щоб заповнити нові, або очищаючи всю історію.

Повідомлення про подію несе в собі інформацію з областей 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 містять базовий набір полів, єдиний для всіх команд:

Крім того, у відповіді завжди передається Completion Code, який повідомляє результат виконання команди. Якщо в ході виконання запиту сталася помилка, буде відправлений ненульовий код, відповідний події.

Канали, по яких передаються повідомлення, можна розділити на три категорії з відповідними інтерфейсами:

У цій моделі BMC можна сприймати як комутатор, який пов'язує між собою інтерфейси системи (в термінології специфікації - Bridging):

При доставці через різні інтерфейси архітектури базовий набір полів доповнюється номерами каналів і фреймами. Наприклад, протокол IPMB додає адресні поля та поля для перевірки цілісності переданих даних, а LAN инкапсулирует команди IPMI в UDP / IP пакети.

Інтерфейси віддаленого доступу

У початковій версії IPMI віддалена консоль підключалася до модуля BMC через послідовного інтерфейсу (Serial Interface). Специфікація IPMI v2.0 базується на використанні мережевого інтерфейсу (LAN Interface).

Інтерфейс LAN надається через виділений мережевий порт BMC з своїм IP-адресою. При передачі через LAN повідомлення IPMI проходять кілька етапів инкапсуляции:

Інкапсуляція повідомлень IPMI при передачі через LAN

Послідовний інтерфейс для підключення віддаленої консолі до BMC вже не використовується, проте він потрібен для реалізації двох функцій:

Serial Port Sharing - це можливість використовувати загальний послідовний коннектор між послідовними контролерами BMC і керованої системи. Зазвичай Serial Port Sharing використовується для реалізації BIOS Console Redirection, тобто перенаправлення BIOS-консолі на модуль BMC.

Serial-over-LAN потрібен для взаємодії з компонентами системи, які розуміють тільки послідовний інтерфейс спілкування. Ще можна з консолі сервера посилати команди безпосередньо до пристроїв сервери (чіпам, картам, дискам і так далі). SoL реалізований так, щоб працювати спільно з функцією Serial Port Sharing.

Сеанс і аутентифікація

Для LAN і послідовного інтерфейсу початку передачі IPMI-повідомлень передує встановлення сеансу, в ході якого формуються пакети даних IPMI Session.

Встановлення сеансу - це аутентифікація конкретного користувача. Сеанс її потрібно активувати перед початком передачі IPMI-повідомлень за наступним алгоритмом:

Алгоритм активації сеансу

  1. Дистанційна консоль запрошує дані по аутентифікації у BMC
  2. BMC посилає відповідь про підтримувані типи аутентифікації (none, password, алгоритми MD2 і MD5 і т.д.)
  3. Дистанційна консоль посилає команду про обраний тип аутентифікації і відправляє логін користувача
  4. Якщо користувач має привілеї доступу до каналу, BMC посилає відповідь, що містить ID сеансу. Завдяки призначенню ID, кілька сеансів можуть працювати одночасно на одній каналі (згідно з вимогами специфікації - не менше чотирьох одночасних сесій)
  5. Дистанційна консоль надсилає запит активації сеансу. Запит містить ID сеансу і аутентифікаційні інформацію (ім'я користувача, пароль, ключі - залежить від обраного типу аутентифікації)
  6. BMC веріфіцірует інформацію про користувача, стверджує ID сеансу і посилає відповідь про активацію

Сеанси автоматично перериваються, якщо протягом заданого інтервалу не виконується ніяких дій або якщо з'єднання розірвано.

Доступ до BMC Можна заблокувати, надіславши одночасно безліч запитів про активацію сеансу, тоді всі ресурси будуть використовуватися для відстеження сесій, які потребують активації. Щоб запобігти можливій атаку, в реалізації BMC рекомендується застосовувати алгоритм LRU (Last Recently Used). Алгоритм стверджує ID сеансу для найбільш раннього запиту активації сеансу. Наприклад, віддалена консоль запускається через браузер в noVNC-сесії. Якщо відкрити кілька вкладок з запущеними сесіями, текстовий введення буде доступний в найбільш ранній відкритій вкладці.

Коли IPMI стає недоступний

IPMI допомагає відновити працездатність сервера при його збої. Однак може трапитися так, що стає недоступна система віддаленого управління. Збої в роботі IPMI можна розділити на чотири категорії:

Перераховані фактори впливають як на роботу IPMI, так і на сам сервер. Модуль BMC - це незалежний від сервера чіп, і відмова даного мікроконтролера говорить про відмову сервера в 90% випадків.

IPMI на практиці

Управляти сервером по IPMI можна через веб-браузер, утиліти, що надаються виробниками, і утиліти з відкритим вихідним кодом.

Веб-інтерфейс у кожної реалізації IPMI свій, але принцип доступу залишається однаковим:

  1. Ввести в адресний рядок IP-адреса порту BMC
  2. Ввести логін і пароль. Іноді ця інформація вказана безпосередньо на обладнанні

У SERVER-SHOP ми працюємо з IPMI-модулями компаній Dell, HPE, Lenovo. Як приклад подивимося на веб-інтерфейс Dell iDRAC:

Веб-інтерфейс панелі управління Dell

Інтерфейс HPE iLO

Картка з інформацією про сервер

Консоль відкривається в браузері і підлаштовується під розмір екрану. При бажанні консоль можна використовувати навіть через телефон або планшет.

Сесія переривається, якщо вийти з панелі.

висновок

IPMI - це повністю автономний компонент серверної платформи, який не залежить ні від операційної системи, ні від BIOS, ні від CPU сервера.

Завдяки IPMI, витрати на обслуговування серверних систем скорочуються, а життя системних адміністраторів стає простіше. Немає необхідності постійної присутності поруч з обладнанням - його робота контролюється віддалено по мережі.

У цій статті ми розглянули основних компоненти IPMI. Однак деталі технології великі. Талановиті розробники, спираючись на специфікацію, можуть створювати своє IPMI-обладнання та open-source інструменти, попутно усуваючи недоліки поточної специфікації і відкриваючи нові можливості віддаленого управління.