15 мар. 2011 г.

IPMI, KVM-over-LAN, virtual media в серверах Supermicro - удаленное управление и мониторинг

Часто задаваемые вопросы о IPMI в материнских платах Supermicro: зачем он нужен, особенности, наглядная демонстрация, подводные камни.

1) Самый популярный миф о KVM-over-LAN - это то, что он "не нужен". Почему-то многие путают его с обычным удаленным доступом к текстовой/графической консоли ОС, т.е. "зачем нам KVM-over-LAN, если есть SSH, VNC, RDP и Radmin?"
Разница принципиальная: KVM-over-LAN - это не просто доступ к консоли ОС, он никак от ОС не зависит, это доступ к консоли непосредственно самого сервера (и не только к консоли, подробности будут ниже), т.е. мы можем, например: зайти в BIOS системной платы или доп. контроллера, установить ОС, настроить мониторинг сенсоров (что, опять-таки, очень важно - независимый от ОС) через SNMP и т.д.
2) Как это работает? Работает достаточно просто, вот структурная схема (Supermicro последнее время использует, как правило Winbond или Nuvoton WPCM450:
Всю работу выполняет процессор BMC (Baseboard management controller) - он имеет собственную память и специализированную ОС (обычно на базе Linux). BMC использует USB шину для подключения виртуальных клавиатуры, мыши и приводов CD/DVD/FDD. Через другие шины осуществляется сбор показаний датчиков вращения вентиляторов, температуры, управление питанием, доступ к COM-порту (для удаленного доступа к последовательной консоли). BMC также занимается захватом и перенаправлением содержимого видеобуфера - в современных BMC уже интегрировано видеоядро, когда-то, в первых реализациях, BMC занимался оцифровкой аналогового сигнала с отдельного VGA-контроллера. Обмен данными с "внешним миром" происходит через ethernet (выделенный порт или один из портов размещенного на системной плате контроллера ethernet).
Собственно, WPCM450 в продуктах Supermicro представляет собой систему на базе процессора ARM 926EJ-S, работающей под управлением ОС Linux на ядре 2.6.
В целях диагностики можно зайти через SSH, где вас будет ждать busybox.

3) Сколько это стоит?
В настоящее время Supermicro интегрирует IPMI BMC непосредственно на системные платы. Раньше использовались дополнительные модули (например - AOC-SIMSO+). Наличие IPMI BMC на плате Supermicro обозначает буквой F, например: X8DTi и X8DTi-F, и разница в цене не превышает $50, что уже является очевидным ответом на вопрос "нужно или нет", ведь внешний IP-KVM обойдется вам гораздо дороже. Ставить обычный KVM и каждый раз при необходимости что-нибудь переустановить или перепрошить идти в серверную - тоже не выход, это потеря времени, ведь ваш сервер может находится за десятки и сотни километров, да и, в конце концов - это просто неудобно.
4) Как это выглядит на практике?
Доступ к IPMI можно получить либо через IPMIView (специализированная утилита на Java, есть сборки под Windows и Linux) или через обычный браузер (при подключении к графической консоли запустится дополнительное java-приложение).
Рассмотрим IPMIView. Для начала в BIOS можно настроить ethernet-порт IPMI: по умолчанию стоит DHCP, но можно вручную выставить нужные IP/маску/шлюз, тэг VLAN (весь ужаленный менеджмент лучше выделить в отдельную подсеть из соображений безопасности и удобства).
Запускаем IPMIView и находим нужный сервер (можно просканировать диапазон адресов на предмет наличия IPMI), логин/пароль по умолчанию - ADMIN/ADMIN.
Дальше сервер можно включить, если он еще не включен - управление питанием есть на вкладке IPM Device (дежурное питание на IPMI BMC подается всегда):
  • Graceful shutdown - имитируется быстрое нажатие кнопки Power, для того чтобы ОС могла корректно выключить питание самостоятельно.
  • Power Cycle - это Graceful shutdown с последующим включением питания
  • Reset и Power Up говорят сами за себя
  • Power Down - жесткое выключение, с длительным нажатием кнопки Power
За здоровьем сервера можно наблюдать на вкладке Sensors (показания температурных и вентиляторных датчиков вы увидите только при включенном сервере):


Сетевые настройки можно поменять при необходимости на вкладке BMC Setting (помните, что можно по ошибке потерять удаленный доступ к серверу). Кстати, об удаленном доступе: используются следующие порты (их нужно будет пробросить через NAT или обеспечить способ доступа в менеджмент-сеть, например, через VPN):
TCP:
  • HTTP: 80
  • HTTPS: 443
  • 5901 - нужен для графической консоли
  • 5900 - HID, трафик виртуальной клавиатуры/мыши
  • 5120 - трафик виртуального привода CD/DVD
  • 5123 - трафик виртуального FDD
UDP:
  • IPMI: 623
На вкладке KVM Console можно увидеть самую полезную вещь - графическую консоль сервера. Там же находятся кнопки снятия скриншота, управления виртуальными носителями (Virtual Media), перехода в полноэкранный режим и дополнительная софт-клавиатура. Зачем она нужна, если есть аппаратная? Для различных комбинаций клавиш, которые по каким-то причинам не удается отправить на сервер с аппаратной клавиатуры, например классический Ctrl+Alt+Delete.

Вот несколько особенностей:
  1. Если у вас есть контроллер от LSI, то вам знаком ориентированный на использование мыши интерфейс LSI Webbios. Так вот: мышь в Webbios через IPMI в современных  платах Supermicro не работает, связано это с тем, что Webbios расчитан на мышь PS/2, а IPMI эмулирует мышь USB. В FAQ разделе технической поддержки Supermicro этот вопрос рассматривается, но рекомендации не помогают. Приходится пользоваться исключительно клавиатурой, что не совсем удобно, т.к. не через все пункты можно перемещаться при помощи Tab - нужны комбинации с Alt, которые отрабатываются только через Soft Keyboard.

  2. Переключение раскладки в WinPE 3.0 не работает. Так что собирайте WinPE с английской раскладкой, для этого нужно добавить в скрипт сборки после монтирования Wim-образа следующую команду:
    Dism /image:C:\winpe64\mount /Set-InputLocale:1033:00000409
    "C:\winpe64\mount" - точка монтирования образа.
    При желании можно заодно сменить локаль и язык интерфейса - смотрите документацию к WinPE.
  3. Для не Windows ОС измените режим синхронизации курсора с абсолютного на относительный.

И заключительный абзац - использование виртуальных носителей.
Можно либо перенаправить локальный привод, либо подключить образ, что гораздо удобнее. Для появления соответствующего устройства в загрузочном меню BIOS может потребоваться перезагрузка.
P.S. Как сбросить пароль IPMI? Только при помощи консольной утилиты ipmicfg. Существует в версиях под DOS, Windows и Linux. Запуск ipmicfg -fd обнуляет все настройки и устанавливает логин/пароль пользователя с администраторскими правами в стандартные ADMIN/ADMIN.
Обновление от 18.04.2010. В какой-то момент, после очередного обновления Java, попытка смонтировать iso образ в IPMIView начала приводить к его падению (Windows 7 64бит с последними обновлениями).Вышел новый релиз IPMIView (build 110412 от 12 апреля). Пока еще не проверял, исправлен ли там этот баг, так как можно пользоваться запуском консоли через web-интерфейс.
Переходим на вкладку Remote Control, жмем Launch Console и получаем в отдельном окне Redirection Viewer, аналогичный по функционалу консоли в IPMIView. Стоит добавить, что web-интерфейс не облегчает задачу доступа к консоли из внешней сети - Redirection Viewer - это не Java-апплет, а отдельное Java приложение и использует те же порты для трафика видео, HID и виртуальных приводов: 5900, 5901, 5120, 5123.
P.S. от 01.12.2011. Дополнительная статья: FreeIPMI.
P.S. от 06.10.2013. Похожая статья на нашем сайте.
P.S. от 10.11.2013. IPMI и безопасность.
P.S. от 20.06.2014. Опять IPMI и безопасность.