Исходные условия: компьютер (Linux) подключен к ИБП Ippon и настроен для корректного завершения работы в случае пропадания электричества (nut).
При возобновления электроснабжения он должен сам автоматически включаться, а чтобы это произошло, ИБП должен полностью выключиться через некоторое время после пропадания электричества и подать напряжение на ПК, который настроен в BIOS на автоматическое включение при подаче напряжения.
И вот на этом этапе возникли проблемы, суть которых в том, что ИБП просто не выходит из спячки при такой настройке, т.е. давать ложиться спать ИБП нельзя, иначе придется включать всё вручную.
Все доступные мануалы по nut скурил, в т.ч. по сервисным командам, но не работает.
Возникла мысль сделать что-то вроде сетевого watchdog из имеющегося старого роутера, прошитого OpenWRT.
Смысл затеи в том, что роутер периодически (раз в минуту, например) пингует ПК (у которого включен WoL) и если пинга нет, значит ПК выключен, и тогда роутер посредством etherwake отправляет magic пакет на MAC-адрес ПК, например, раз в минуту и продолжает пинговать.
Пинг появился - magic слать перестаём, пинг пропал - шлём magic. Собственно, вопрос в том как реализовать скрипт для этой задачи?
Вообще было бы здорово иметь конкретный мануал по решению описанной проблемы. Она ведь возникает у всех нормальных людей, но на толковые решения я не натыкался.
В большинстве случаев NUT только мешает.
Я делаю так - выключаю в NUT всю автоматику, ОС не shutdown'ю. Если батарея у ИБП таки разряжается, то сервер выключается по питанию. Это хотя бы гарантирует его автоматическое включение после появления питания (при корректной настройке BIOS). Минус очевиден - некорректное завершение ОС, fsck, raid rebuild и прочие прелести.
Возможные варианты:
* Shutdown ОС с помощью NUT через заданное время после пропадания питания.
Нет гарантии, что батареи хватит на заданное время (из-за деградации батарей).
Восстановление питания во время shutdown'а ОС. Получаем выключенный сервер.
* Shutdown ОС с помощью NUT по достижении порога на остаток заряда ИБП.
Все дешевые ИБП врут, особенно со временем, все мои - врут сильно.
Опять же проблема с восстановлением питания во время shutdown.
а что мешает выключать сервер как только напряжение пропадет ?
Можно даже сделать пинг-понг между роутером(за пределами ИБП) и сервером, то есть, роутер постоянно пингует сервер и подымает его когда он выключен, а сервер постоянно пингует роутер, и если тот не откликается, например, в течении минуты то сразу и корректно выключается. Как появляется напряжение, пробуждается роутер он сразу начинает подымать сервер; благо роутер или подобные железки не так сильно критичны к некорректному выключению.
а что мешает выключать сервер как только напряжение пропадет ?
Теряется смысл ИБП :) Если отключение на непродолжительное время, можно ведь и избежать даунтайма. У меня один из ИБП держит всё оборудование на площадке, например, 50-60 минут.
Схема во второй части Вашего комментария - интересная, но не универсальная - не всегда есть роутер.
Идеальным решением была бы поддержка от ИБП, конечно - например, если бы он точно знал, что сервер идёт в shutdown, то даже при восстановлении питания он бы мог "моргнуть" электричеством, чтобы сервер включился.
Теряется смысл ИБП :) Если отключение на непродолжительное время, можно ведь и избежать даунтайма. У меня один из ИБП держит всё оборудование на площадке, например, 50-60 минут.
ну если так то да, подумалось просто что у вас ИБП совсем дохлые(в пределах 5-10 мин) когда лучше перебдеть чем недобдеть, чтобы хватило время на корректное отключение с малым запасом
не всегда есть роутер
ну здесь думаю не большая проблема, можно взять какой-нибуть дешевенький роутер, можно даже приспособить малинку или её аналог, да вроде даже всякие приблуды есть по мониторингу и управлению эл.сети те же wifi-реле.
п.с.
зашел по наитию
в следующий раз жмакайте надпись Ответить которое оповестит собеседника о вашем ответе, можно получать оповещения только под своим ответом или если подписан на обсуждаемый вопрос