Обеспечение автоматического включения компьютера при работе с UPS

Изображение пользователя dm.

Появилась необходимость поставить на один из серверов местного значения с ubuntu-server 14.04.1 на борту UPS (источник бесперебойного питания). Выбор пал на модель APC Back-UPS XS 650CI-RS.

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

То есть все должно функционировать полностью автоматически без участия человека в данном процессе.

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

Но как обычно, все уже придумано до нас и в линуксе есть режим halt, подразумевающий остановку системы без отключения питания, который нам и поможет.

Исходя из этих особенностей логика работы должна выглядеть следующим образом:

  1. При разряде батареи упс посылает на сервер сигнал halt
  2. Компьютер завершает работу, но не отключает питание (режим halt)
  3. Упс переходит в ждущий режим и отключает подачу электричества тем самым отключая компьютер.

При восстановлении электричества автоматически включается бесперебойник, подает электричество на системник, который так же автоматически включается, так как последнее его состояние до отключение питания было вкл.

Дело осталось за малым, установить apcupsd и правильно его настроить под наши нужны.

Комментарии (16)

0
lord_i - 8 Сентябрь, 2014 - 21:22
Изображение пользователя lord_i.

Оригинально. Спасибо.

0
Fierta - 8 Сентябрь, 2014 - 22:49
Изображение пользователя Fierta.

Спасибо, очень полезно.

0
AlexBKost - 9 Сентябрь, 2014 - 00:03

Хорошее дело сделано (сори за тавтологию). Теперь есть смысл и UPS прикупить.

0
Fogma - 9 Сентябрь, 2014 - 08:55
Изображение пользователя Fogma.

серверные материнки включаются автоматически при появлении питания. но описанное в статье всё равно полезно!

0
dm - 9 Сентябрь, 2014 - 08:58
Изображение пользователя dm.

Там обычный системный блок из самого обычного, не серверного железа.

0
Fogma - 9 Сентябрь, 2014 - 09:03
Изображение пользователя Fogma.

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

0
dyug - 9 Сентябрь, 2014 - 10:30

чьерт побьери....
А я обычно выбираю мать с функцией "при подаче питания включиться", благо, выбор есть, и функция есть большинстве попадающих мне матерей.

Вообще странно, там где я видел режим "Восстанавливать последнее состояние работы", там же обычно был режим и включения при подаче питания. Точнее, это было три пункта. выкл, вкл, и восстановить предыдущее состояние.

0
dm - 9 Сентябрь, 2014 - 14:14
Изображение пользователя dm.

Тут пришлось довольствоваться тем, что есть. У той материнки всего два пункта либо всегда выключено, либо последнее состояние. Это я в первую очередь смотреть полез.

0
dyug - 9 Сентябрь, 2014 - 16:39

не буду спорить, я просто вспомнил свои машины, подключенные к упсу...

0
ValeryK - 9 Сентябрь, 2014 - 17:28

Я что-то не понял, если комп в хальт перейдет, но юпс до конца не сядет и питание восстановится , то как тогда?

0
dm - 9 Сентябрь, 2014 - 17:38
Изображение пользователя dm.

UPS умеет выключаться самостоятельно без ожидания полной разрядки. Он сначала останавливает компьютер, а затем, через указанный таймаут вырубается сам, в не зависимости от остаточного заряда батареи.

0
ValeryK - 9 Сентябрь, 2014 - 18:36

Понятно что не до полного разряда, но мы неоднократно как назло попадали в этот таймаут, и особенно это относилось к гребаным APC, сервак акуратно ложился, питание восстанавливалось, ЮПС весело начинал заряжаться, а сервер продолжал мирно дремать.
Но ежели APC выключался по команде, а питание восстанавливалось, то эта дрянь (APC) продолжала спокойно дрыхнуть не восстанавливая питание на нагрузку и сервера не предоставлялось возможным поднять удаленно вообще никак.
В итоге используем самописный скрипт, который через upsd следит за уровнем разряда и вовремя выгружает VmWare и шатает сервера, а включение производится с компа без резервного питания через вэйконлан c задержкой на основании заряда АКБ, ну а к ЮПСу добавили автомобильных аккумуляторов после чего он стал держать заряд до 4-х часов.

0
dm - 9 Сентябрь, 2014 - 20:33
Изображение пользователя dm.

Понятно что не до полного разряда, но мы неоднократно как назло попадали в этот таймаут, и особенно это относилось к гребаным APC, сервак акуратно ложился, питание восстанавливалось, ЮПС весело начинал заряжаться, а сервер продолжал мирно дремать.

Я про эту ситуацию тоже думал и старался сделать тайм аут между остановкой компьютера и засыпания ups минимальным. Под катом в посте я как раз про это отписал. Реально компьютер останавливается секунд за 10, а упс где то через минуту засыпает, как этот интервал уменьшить я так и не разобрался.

С режимом KILLDELAY я так и не смог до конца разобраться. После остановки системника даже при значении в 1 секунду сам упс выключается где то через минуту после остановки компьютера и как уменьшить это время мне не понятно. Возможно что где то в самом упс зашит какой то минимальный временной интервал. На первый взгляд кажется, что ничего особенного, но если представить ситуацию при которой питание восстановиться как раз в промежуток времени когда компьютер уже остановлен но еще не выключен бесперебойником, то компьютер так и останется в таком состоянии и придется в ручную его выключать и включать.

Но вообще на этот случай у того сервера еще есть gsm ребутер. Вернее gsm розетка через которую можно удаленно дернуть сервер если что. Кстати удобная вещь. Умеет смс слать при пропаже и восстановлении питания а так же при резком изменении температуры.

Но ежели APC выключался по команде, а питание восстанавливалось, то эта дрянь (APC) продолжала спокойно дрыхнуть не восстанавливая питание на нагрузку и сервера не предоставлялось возможным поднять удаленно вообще никак.

Ничего не могу сказать на этот счет. Конкретно этот упс просыпался нормально после восстановления электричества. Несколько раз самолично проверил.

UPD. У APC обычно так же настраивается параметры включения. Либо это какой то минимальный заряд либо временной интервал после восстановления питания. Эти настройки обычно хранятся в eeprom apc и поменять их можно запустив apctest. Короче все настраивается.

0
dyug - 9 Сентябрь, 2014 - 17:59

обычно, правда практика по смартам, а не бекам - там выставляется таймаут на выключение после команды.
апсупсд - умеет их выставлять сам, используя конфиги - по умолчанию, если мне изменяет память - 5 минут, можно поставить 2 минуты. (но это по моему склерозу)

0
dm - 9 Сентябрь, 2014 - 20:39
Изображение пользователя dm.

по умолчанию, если мне изменяет память - 5 минут, можно поставить 2 минуты. (но это по моему склерозу)

За этот функционал отвечает параметр KILLDELAY в конфиге apcupsd.conf. Якобы задает задержку в секундах после отправки системному блоку команды на выключение, после которой должен отключиться упс. По умолчанию отключено, значение 0. Я ставил в 1 сек, реально же выключается минимум через минуту. Почему так происходит - не знаю.

0
dyug - 10 Сентябрь, 2014 - 10:27

Этот параметр, опять таки, если мне не изменяет мой склероз, а минутах, а не секундах, и прописывается он именно в параметры упса. ибо это его задача.
после получения команды на включение - машина им управлять не сможет.
Configuration Directives Used to Set the UPS EEPROM
SLEEP [ 020 | 180 | 300 | 600 ]

    The time delay in seconds for which the UPS waits or "sleeps" after it receives a request to power off the connected system.

то не оно, случаем? Ибо я помню что именно чем то этим управлялось....
я просто давно занимался конфигурацией упса и многое уже не помню.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры