Лучший способ выполнить команду после остановки системы Linux

Проблема: твердотельные накопители на наших серверах требуют выключения питания (т. Е. Выключения / включения, не сброса / перезагрузки) после обновления прошивки.

Мысли: Используя 'ipmitool chassis power cycle', я могу отключить питание сервера. Однако это приведет к отключению питания, пока система еще работает, смонтированы файловые системы и т. Д.

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

Моя первоначальная идея состояла в том, чтобы динамически создать виртуальный диск, содержащий инструмент и библиотеки, и каким-то образом интегрировать его в процесс остановки. Я видел, что есть /etc/init.d/halt, так что это будет моей отправной точкой. Хотя я считаю, что ядро ​​в какой-то момент в процессе выключения начинает убивать оставшиеся процессы. Так что я даже не уверен, что это жизнеспособный путь.

Вопрос: Каков наилучший способ выполнения ipmitool (или любой другой команды) после остановки системы и размонтирования всех обычных файловых систем?

4 ответа

Решение

Я бы перешел в однопользовательский режим, размонтировал все файловые системы, не относящиеся к ОС, и перемонтировал все существующие как доступные только для чтения. Затем запустите утилиту обновления прошивки и "цикл питания ipmitool".

Это не красиво или умно, но должно быть достаточно безопасно

Сделать нормальное полное отключение и отключение питания; сосчитайте до десяти, а затем снова включите аппарат с помощью wake-on-lan или IMPI на BMC (DRAC в случае Dell?). Если вы хотите, чтобы он был полностью локальным для компьютера, некоторые BIOS позволят вам указать время пробуждения / включения через ACPI - см. http://www.mythtv.org/wiki/ACPI_Wakeup. Например, установите время включения (сейчас) + (нормальная продолжительность отключения) + (небольшой запас прочности), затем выполните отключение.

Я понятия не имею, возможно ли это на оборудовании серверного класса - пожалуйста, сообщите нам, если вы попробуете.

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

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

Если вы можете активировать сторожевой таймер, то установите уровень запуска, который запускает таймер с функцией тайм-аута аппаратного отключения питания. Последний эффект вашего уровня запуска shutdown-without-ACPI-off должен завершить процесс обновления таймера.

При запуске (вместо выключения).

Использование загрузки по сети.

Вам необходимо выключить и включить физические диски, поэтому я предлагаю вам перезагрузить компьютер, попросив его загрузиться из сети, после этого выключите и снова включите питание дисков, а затем перезагрузите их.

Другие вопросы по тегам