Перейти к основному содержанию

Кнопка NMI — Non-Maskable Interrupt

server

Часто работаю с серверами. Почти на каждом есть маленькая кнопочка NMI. Иногда такую же кнопку можно обнаружить в программных инструментах управления сервером. Например, в iLO сервера HPE.

nmi

Прерывания

NMI — Non-maskable interrupt, читается как "немаскируемое прерывание".

Разберёмся сначала что такое прерывание.

Прерывание (interrupt, INT) — это приостановка центральным процессором выполнения приоритетной программы для обработки события, которое поступило от одного из устройств.

Механизм прерываний:

  • Если в устройстве возникает событие, требующее вмешательства процессора, то устройство, которое вызвало данное событие, посылает специальный сигнал — запрос на прерывание.
  • Запрос на прерывание обрабатывается контроллером прерываний. Контроллер прерываний (Programmable Interrupt Controller, PIC) — это микросхема или встроенный в процессор модуль, который выполняет обработку запросов на прерывание от устройств.
  • Сигнал обрабатывается контроллером прерываний и передается процессору. Процессор приостанавливает выполнение основной программы (сохраняя при этом текущее состояние своих регистров в оперативную память) и обрабатывает данное прерывание. После обработки прерывания процессор продолжает выполнять основную программу.
  • В случае возникновение одного прерывания во время обработки процессором другого, выполняется прерывание, у которого приоритет выше.

Простой пример аппаратного прерывания: нажатие на клавишу.

Существуют маскируемые и немаскируемые прерывания, которые обрабатываются контроллером прерываний.

Маскируемые (аппаратные) прерывания. В эту группу относят прерывания от периферийных устройств.

Немаскируемые прерывания (Non-Maskable Interrupt, NMI). Прерывания с высшим приоритетом. Прерывания данного типа обрабатываются в случаях возникновения аварийных ситуаций, вызванных ошибками в работе памяти или других устройств.

Так зачем же нужна кнопка NMI?

Бывает так, что сервер зависает. Вот ни у кого не зависает, а у вас зависает. На мышку с клавиатурой не реагирует, команды не воспринимает. Можно только перезагрузить или выдернуть питание. Сервер работает, работает, а потом опять зависает. Обычно после этого мы звоним в техподдержку, обновляем прошивки, переустанавливаем системы, протираем пыль. А сервер всё равно зависает. Вот тут то и приходит на помощь кнопочка NMI.

При получении сигнала Non-Maskable Interrupt от кнопки или из iLO сервера процессор выходит из того бесконечного цикла, в который он попал и начинает обработку немаскируемого прерывания. Настройки сервера могут быть разные, кто-то может просто продолжить работу, кто-то перезагрузится, где-то можно настроить поведение сервера в BIOS. Обычно процессор сбрасывает дамп памяти на диск и после этого выполняет перезагрузку. Этот дамп можно отправить в поддержку, где уже специально обученные люди разберутся в источнике проблемы.

Обобщим

Из документации HPE:

Аварийный дамп NMI позволяет администраторам создавать файлы аварийного дампа, если система зависла и не реагирует на традиционные методы отладки. Анализ журнала аварийного дампа является неотъемлемой частью диагностики проблем с надежностью, таких как зависание операционных систем, драйверов устройств и приложений. Многие сбои приводят к зависанию системы, и единственное, что в такой ситуации могут сделать администраторы, — это выключить и снова включить питание системы. При сбросе системы стирается информация, необходимая для анализа проблемы. Функция NMI сохраняет эту информацию в дампе памяти, прежде чем выполнять сброс оборудования. Чтобы вызвать обработчик NMI с помощью ОС и создать журнал аварийного дампа, администратор может использовать функцию iLO Virtual NMI.

Не только в серверах HPE есть кнопка NMI. В серверах IBM, Dell, Fujitsu, Supermicro, Huawei, Lenovo тоже есть кнопка NMI или перемычка на материнской плате.

Для Cisco UCS — NMI можно отправить через IPMI:

ipmitool -I lan -H <RemoteServerBMCAddress> -U <Username> -a chassis power diag

Или интерфейс командной строки UCS Manager:

diagnostic-interrupt

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

Теги

 

Похожие материалы

Какие бывают системные администраторы?

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

Теги

Должностные обязанности системного администратора

При устройстве на работу каждый сисадмин подписывает должностную инструкцию системного администратора. В каждой организации она своя, но в общих чертах документы схожи. Возможно, потому что все эту инструкцию качают из Интернета. На одной из работ мне пришлось такую инструкцию создавать самому себе. Инструкция с обязанностями системного администратора написана юридическим языком и изобилует перлами, вызывающими у сисадмина различные эмоции скептической направленности. Однако, не следует относиться к этой бумажке легкомысленно. Часть пунктов инструкции прикрывает работодателя, а часть может помочь сисадмину в его работе. Разберём основные моменты.

Теги