LINUX.ORG.RU
решено ФорумAdmin

Как включить сервер если apcupsd его выключит?

 


1

1

ни консолей, ни еще чего что могло бы wakeup по lan отправить просто нет, как то возможно поднять сервак после появления питания? т.е. не тот момент, когда apc выключил сервер и сам погас, а потом появился «свет» и сервак это отрабатывает, а когда apc выключил его, но сам не успел разрядиться в 0 при этом продолжает работать БП на серваке а «свет» опять дали.

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

Lavos ★★★★★ ()
Последнее исправление: Lavos (всего исправлений: 1)

В качестве костыля можно воспользоваться raspberry pi или аналогами.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)
if [ -f /etc/apcupsd/powerfail ]; then
/etc/apcupsd/apccontrol killpower                     fi

При shutdown это должно вырубать ups.

gman ()
Ответ на: комментарий от Lavos

Lavos

я же написал, с этим все понятно - но питание вернули раньше чем батарейка разрядилась, т.е. хватает условно ИБП на 20 минут, через 10 минут он погасил сервер, а в течении следующих 10 минут питание снова дали

wolverin ()
Ответ на: комментарий от wolverin

Ты не понял. Пропало электричество, UPS проинформировал сервер об этом, сервер корректно выключился, а через минуту UPS отключил питание серверу (хотя батарейка еще не разрядилась), затем электричество вернулось и UPS подал питание на сервер. Кошерные UPS делают так.

Lavos ★★★★★ ()
Последнее исправление: Lavos (всего исправлений: 1)
Ответ на: комментарий от Lavos

Lavos

т.е. apc гарантированно выключает питание видимо через KILLDELAY ? от какого тогда момента оно должно быть посчитано?

wolverin ()
Ответ на: комментарий от Fedorast

А какие, например? В каком ценовом диапазоне и с какого года?

Все APC Smart UPS, если они только не сломались, получив сигнал killpower от сервера, выполняют цикл по питанию через положенное время и вне зависимости от того, дадут ли питание сразу после этого, или нет. Даже произведённые в прошлом веке.

AS ★★★★★ ()
Ответ на: комментарий от Fedorast

А как они запустят компьютер по USB-кабелю?

А компьютер не умеет включаться при подаче питания разве ? Что это за говноматеринка, у которой поведение при подаче питания не настраивается ?

AS ★★★★★ ()
Ответ на: комментарий от AS

Умеет-умеет :) Я просто думал, что тут будет какая-то особая, уличная магия, а всё на самом деле просто. Спасибо за объяснения.

Fedorast ()
Ответ на: комментарий от wolverin

как задается

/sbin/apctest. Выбирается из нескольких предопределённых значений.

и где видно?

/usr/sbin/apcaccess|/bin/grep DSHUTD|/bin/sed -e "s/.*: 0*\([0-9]*\) .*/\1/"

AS ★★★★★ ()
Последнее исправление: AS (всего исправлений: 1)

а когда apc выключил его, но сам не успел разрядиться в 0 при
этом продолжает работать БП на серваке а «свет» опять дали.

Кстати, дай попробую угадать. Подключение по USB, а тот, кто собирал apcupsd в дистрибутив, об этом не подумал ? Потому как с RS-232 об этом думать было не надо, всё и так работало (то есть, автор apcupsd когда-то подумал), как правило.

AS ★★★★★ ()
Ответ на: комментарий от AS

AS

интересно, на Back-UPS XS 700U такого параметра нет, на Smart-UPS 3000 RM он 90 секунд, получается первый не выполняет такого цикла? а второй эти 90 секунд будет считать с какого момента?

wolverin ()
Ответ на: комментарий от AS

Подключение по USB

да, статус отображает, только BATTDATE не пишется почему то

wolverin ()
Последнее исправление: wolverin (всего исправлений: 1)
Ответ на: комментарий от wolverin

интересно, на Back-UPS XS 700U такого параметра нет

Да, тут задачка, как проблему решать. Надо не гасить udev, но так ни один дистрибутив не делает, на сколько я знаю. killpower Back-и знают, но исполняют немедленно. В стародавние времена это было нормально, так как приведённый gman-ном фрагмент кода исполняется в заключительном init-скрипте, но беда в том, что udevfs уже размонтирована к этому моменту в современном мире.

AS ★★★★★ ()
Ответ на: комментарий от wolverin

а второй эти 90 секунд будет считать с какого момента?

С момента получения killpower. Если только он сможет его получить.

AS ★★★★★ ()
Ответ на: комментарий от wolverin

а кто его высылает?

Кто-то. В зависимости от дистрибутива. В тарболе apcupsd есть каталог platforms, содержащий скрипты, которые что-то правят в зависимости от платформы, где исполняется make install. Но могут быть нюансы, про которые автор apcupsd может и не знать, а их должны учитывать мантейнеры пакета в соответствующих дистрибутивах, где apcupsd присутствует в виде готового пакета.

KILLDELAY ?

Это не процесс или сигнал, а параметр у UPS.

AS ★★★★★ ()
Ответ на: комментарий от AS

Это не процесс или сигнал, а параметр у UPS

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

wolverin ()
Ответ на: комментарий от wolverin

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

Нет, это именно от момента получения бесперибойником сигнала killpower от сервера. То есть, сначала бесперепойник посылает «отключаемся», но таймер killdelay ещё не включается в этот момент. Сервер что-то там делает, и, по своей готовности, посылает killpower. Если кабель usb, а udev уже загасил udevfs, то бесперебойник команду на отключение не получит и возникнет эта самая проблема с возвратом питания до разряда батареи. Аналогично с ethernet/snmp.

Дистрибутив-то какой ? Собственно, это надо в дистрибутивную баззиллу на пакет, видимо.

AS ★★★★★ ()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от AS

Дистрибутив-то какой ?

Debian 7, я не проверял эту ситуацию, ибо нет возможности, вот после полной разрядки там все ок )

wolverin ()
Ответ на: комментарий от wolverin

вот после полной разрядки там все ок )

Ну после разрядки что был послан killpower, что нет - без разницы уже.

AS ★★★★★ ()
Ответ на: комментарий от AS

AS
Аналогично с ethernet/snmp.

хорошо, а вот если я подчиненный сервак через эти протоколы выключаю, то как должен главный отработать выключение и вместе с ним бесперебойник в той самой ситуации когда питание вдруг появится, да еще в момент МЕЖДУ отправкой сигнала главному, поскольку на подчиненные естественно все уровни выключения разумно ставить больше.

wolverin ()
Последнее исправление: wolverin (всего исправлений: 2)
Ответ на: комментарий от wolverin

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

wolverin ()
Ответ на: комментарий от wolverin

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

А какая разница ? Если процесс пошёл, главный всем рассылает команду на отключение, и серверам, и UPS. Процесс, если он начался, обязан закончиться отключением UPS. Дальше уже дело UPS разобраться и правильно обработать полученный сигнал на отключение.

AS ★★★★★ ()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от AS

А какая разница ?

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

wolverin ()
Ответ на: комментарий от wolverin

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

Как, если уже пошёл процесс остановки ? Тут на пол-дороги не встают.

а то у меня несколько серверов и это получается пока все выключится

Они должны начинать процесс остановки практически одновременно. Как это «пока все выключится» ? Да, какой-то там будет самый долгий, но только он и будет ориентиром.

Или это не через apcupsd всё организовано, а на пингах каких-нибудь ?

AS ★★★★★ ()
Ответ на: комментарий от AS

Или это не через apcupsd всё организовано, а на пингах каких-нибудь ?

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

wolverin ()
Ответ на: комментарий от AS

Как, если уже пошёл процесс остановки ? Тут на пол-дороги не встают.

и что UPS узнает когда начинать процесс выключения по самому большому порогу уровня заряда на подчиненном? для чего тогда на каждом задаются эти уровни? т.е. условно на подчиненном стоит выключать при 15% заряда, на главном 10% - т.е. процесс должен начаться с подчиненного!? или как?

wolverin ()
Последнее исправление: wolverin (всего исправлений: 2)
Ответ на: комментарий от wolverin

и что UPS узнает когда начинать процесс выключения по
самому большому порогу уровня заряда на подчиненном?

Не понял. Я о ситуации, когда к одному UPS подключено несколько серверов. Один из них мониторит бесперебойник и даёт команду на отключение тем, которые, так же, подключены к нему. UPS, конечно, ничего не знает о временах, тут надо подобрать всё самому. Я бы запускал остановку всех сразу в момент начала остановки мониторящего сервера и выдачи killpower в UPS. У UPS, соответственно, надо выставить параметры MBATTCHG, MINTIMEL и DSHUTD.

Да, вот про KILLDELAY. Я, ранее, имел ввиду именно DSHUTD. Про KILLDELAY сейчас посмотрел, что-то я на этот параметр раньше внимания не обращал. Да, похоже, это задержка на выдачу killpower, после которого начинается отсчёт DSHUTD. У меня KILLDELAY везде 0.

Есть засада. У DSHUTD предопределённые значения. У UPS у меня под руками максимум - 600 секунд. В принципе, не мало, но какой-нибудь сервер с VPS-ками может и больше гаситься.

И я там ранее написал ещё, что UPS даёт команду серверу. На самом деле нет, это ПО, в частности apcupsd, мониторит MBATTCHG и MINTIMEL и, по достижении одного из значений, начинает гасить сервер. Хотя это не очень существенное уточнение.

AS ★★★★★ ()
Ответ на: комментарий от wolverin

да на лисяре читаю, там советуют slave начинать гасить раньше

Что-то там сильно раньше. Как раз можно на неожидаемый возврат питания попасть. Лучше как тут пишут:

http://www.apcupsd.com/manual/manual.html#nis-server-client-configuration-usi...

AS ★★★★★ ()
Ответ на: комментарий от AS

DSHUTD

вот этот параметр вообще не вижу где задается, в конфигах его нет

У меня KILLDELAY везде 0

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

wolverin ()
Ответ на: комментарий от wolverin

вот этот параметр вообще не вижу где задается, в конфигах его нет

В самом бесперебойнике, утилитой apctest:

 1) Print EEPROM values
 2) Change Battery date
 3) Change UPS name
 4) Change sensitivity
 5) Change alarm delay
 6) Change low battery warning delay
 7) Change wakeup delay
 8) Change shutdown delay
 9) Change low transfer voltage
10) Change high transfer voltage
11) Change battery return threshold percent
12) Change output voltage when on batteries
13) Change the self test interval
14) Set EEPROM with conf file values
 Q) Quit
Параметр 8. Но если значение равно 0, то killpower просто выполняется немедленно.

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

Отличным от нуля - это по ситуации. На сам факт отключения он не влияет. Влияет выполнение команды /sbin/apcupsd --killpower, которое, в случае usb-подключения, должно состояться до остановки udev, а в случае snmp - до отключения сети.

AS ★★★★★ ()
Последнее исправление: AS (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.