Настройка ИБП Ippon Backpower Pro для автоматического выключения и включения

    Купить ИБП для домашнего сервера я собирался давно, но постоянно душила жаба. То есть, особой необходимости в нём не было, просто как-то не по-людски без бесперебойника. В конце-концов, купил дешёвый Ippon Backpower Pro 500 и уселся настраивать. Погуглив пару минут, решил, что официальные драйвера, написанные на java лохматого года выпуска, мне не нравятся и взялся прикручивать NUT.

    Настроил. Заработало. Одно «но» — вражеский девайс упорно не желал выключать питание с нагрузки.

    То есть, схема задумывалась следующая:
    1. Пропадает питание — работаем от батареи, сколько можем;
    2. При разряде батареи подаём ИБП команду выключиться через пару минут и завершаем работу;
    3. ИБП отключает серверу питание и уходит в ждущий режим;
    4. При появлении электричества в сети ИБП выходит из ждущего режима и подаёт питание на сервер;
    5. Сервер заводится, ибо в биосе выставлена соответствующая опция.

    Сам ИБП вхолостую будет работать долго, прежде чем на нём сработает защита от переразряда. Понятное дело, что в такой ситуации сервер будет думать, что питание никуда не пропадало и обратно автоматически не включится.

    Плюнув, я решил всё-так установить официальные драйвера. Однако и здесь меня ждал облом. Официальный драйвер определял тип ИБП как «regular LINE-INT UPS», для таких устройств выключение ИБП по команде не поддерживалось. Поддерживались лишь какие-то другие, видимо, более навороченные (и дорогие) модели. Приуныв, я удалил неудобный официальный драйвер и поставил NUT обратно, взявшись с безнадёги копаться в исходниках драйвера.

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

    S n R m cr

    • n — время до выключения ИБП с момента подачи команды.
    • m — время до включения ИБП с момента подачи команды. Если m минут уже истекло, а питание для ИБП всё ещё не подаётся, ИБП ждёт появления напряжение в сети и тогда включается.
    • Для n диапазон значений может быть либо {.1 — .9} (десятые доли минуты), либо {01-10} (целые минуты).
    • Для m диапазон значений — {0001-9999} (целые минуты).

    Всё в минутах, заметьте. Мой конкретный экземпляр Ippon Backpower Pro 500 воспринимает первое значение как часы. Брак ли это, или так задумано, чтоб враги не догадались — не знаю. Таким образом, минимальный интервал времени, который я могу указать для выключения ИБП, составляет 6 минут вместо 6-ти секунд. Не зная этой особенности, я вводил значения для выключения около 2-3 минут, а иппонец преданно намеревался ждать 2-3 часа перед тем, как уйти в ждущий режим.

    Далее приведу мои конфиги для настройки выключения ИБП через минимальное время (6 минут) после разряда батареи. NUT позволяет следить за целыми сетями бесперебойников, но у меня конфиг простенький:

    /etc/nut/nut.conf

    MODE=standalone


    /etc/nut/ups.conf

    [ippon]
    driver = blazer_usb
    port = auto
    desc = "Ippon IBP"
    default.battery.voltage.high = 13.60
    default.battery.voltage.low = 10.60
    offdelay = 6
    ondelay = 7


    Значения default.battery.voltage.high и default.battery.voltage.low служат для вычисления примерного заряда батареи в процентах. Также при снижении напряжения до уровня default.battery.voltage.low запускается скрипт выключения системы. На других ИБП значения могут отличаться. Можете их сначала не указывать, а добавить после замера напряжения при полном заряде ИБП и незадолго до его разряда. Значения можно получить командой upsc <имя_ибп>. Имя указано в начале секции в квадратных скобках (у меня ippon).

    /etc/nut/upsd.conf — у меня этот файл пуст, все настройки по умолчанию.

    /etc/upsd.users

    [admin]
    password = mypass
    upsmon master
    actions = SET
    instcmds = ALL


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

    /etc/nut/upsmon.conf

    RUN_AS_USER nut
    MONITOR ippon@localhost 1 admin mypass master
    MINSUPPLIES 1
    SHUTDOWNCMD "/sbin/shutdown -Ph +0"
    POLLFREQ 5
    POLLFREQALERT 5
    HOSTSYNC 15
    DEADTIME 15
    POWERDOWNFLAG /etc/killpower
    RBWARNTIME 43200
    NOCOMMWARNTIME 300
    FINALDELAY 5


    Здесь настраиваются параметры слежения за ИБП и завершения работы. В этом файле нужно обратить внимание на значения MONITOR (где указано, за какими ИБП будет следить демон) и SHUTDOWNCMD (команда для завершения работы).

    Поскольку в конфигах содержатся пароли для управления ИБП, права на их чтение следует выделить только руту и группе nut.

    На этом всё, при исчезновении напряжения в сети, компьютер проработает некоторое время (у меня headless-машинка на двухядерном AMD с парой винтов работает около получаса), потом выключится сам, а через 6 минут выключится и бесперебойник. При появлении питания ИБП включится и подаст питание на нагрузку. Правда, у меня есть нехорошее подозрение, что если питание появится в интервале между выключением компа и выключением ИБП, весь этот план рухнет, но здесь ничего не поделаешь. Разве что купить бесперебойник покруче и подороже.

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

    Подробнее
    Реклама
    Комментарии 31
    • –29
      Консоль, конфиг, консоль…
      Уже надоело.
      • +7
        пальчик к левой кнопке мыши прирос?
        • +5
          А какой смысл на компьютер без монитора, стоящий на балконе, ставить иксы и гуевые программы?
          • 0
            У меня стоят иксы на домашнем сервере. Хожу туда с помощью nx, очень удобно.
            Насчет гуевых программ… Ну например до сих пор нет современного и полностью консольного DC-клиента — они все гуевые. Можно конечно запускать их под Xvfb, но это же изврат :)
            А так конечно рутинные операции все по ssh в консоли делаются.
            • –1
              microdc2 полностью консольный, есть еще MlDonkey.
              • 0
                Я не зря упомянул слово «современный. Вот я лично не могу считать „современным“ клиент, который не поддерживает пассивные соединения (привет, микродц!) или имеет поддержку DC тупо для галочки, опять-таки не поддерживая множество важных функций (привет, MLDonkey).
                Между прочим вы бы могли еще упомянуть и Shakespeer с его мегаотвратным консольным клиентом, не поддерживающим даже возможность автоматически прицепиться к хабу.
                • 0
                  Ах да, microdc еще может похвастаться утечками памяти и падениями.
                  Плавали, знаем.
              • –9
                Такие элементарные вещи должны из GUI настриваться.
                • +1
                  Насколько я знаю, для таких элементарных вещей есть гуёвые оболочки, к тому же NUT есть фронтенды. Но мне-то зачем, если у меня нет иксов на сервере? Или предлагаете ставить иксы, которые будут впустую висеть в памяти ради того, чтобы один раз настроить ИБП? К тому же пост не cтолько о том, как настраивать NUT, сколько о том, как обойти глюк на конкретной модели.
                  • +1
                    Такие элементарные вещи из GUI настраиваются. Но не на сервере, на котором НЕТ монитора. Или вы предлагаете принести его туда, подключить, настроить чтобы пять минут любоваться иконками? :)
                    • –3
                      Точно так же как вы его и без монитора настриваете.
                      • 0
                        Мсье не знаком с SSH и лично посещает каждый сервер, таская с собой монитор? Буду краток: зря %)
                        • 0
                          Мсье не знакомо удалённое управление?
              • +2
                делать shutdown now несовсем правильно, гораздо лучше сразу после пропадания питания сделать shutdown now+5min, это уведомит всех интересующихся лиц^W программ о выключении, а если свет восстановился, то надо делать shutdown -c чтобы отменить выключение.
                • 0
                  Ну, у меня таких проблем не было, поэтому не стал усложнять. Для домашнего сервера, играющего роль роутера, файлопомойки, торрентокачалки и ещё по мелочам, этого вполне хватает.
                  • 0
                    Сумничал? а теперь настрой nut и узнай, что он сам всех уведомляет.
                  • 0
                    И все же иппон гадость, никогда больше не буду его брать.
                    Домой взял сдуру вместо двух APC один APC и один Ippon. Сэкономить типа решил, на свою голову.
                    Практика показала, что иппон, стоящий ровно в 2 раза дешевле, работает в 4-5 раз меньше (даже со скидкой на то, что иппон 600ВА, а апц 700ВА) + иногда почему-то не успевает вовремя подхватить системник и оставляет его без питания на ~0.5 секунды.
                    • +1
                      Дрянь несусветная, полностью согласен. У них ещё и пластик хлипкий, тонюсенький. Страшно кабель втыкать, всё гуляет и прогибается. Но с другой стороны — не выкидывать же теперь?
                      • +3
                        Дада, плакать, колоться, но продолжать жрать кактус.
                    • 0
                      Извините если не в тему, но возможно кто то имеет опыт и сталкивался, мне нужен ИБП чтобы долгое время держал не большую мощность. На него из нагрузки будет только роутер и хард подключенный через юзб-хаб. Цена не очень критична (в разумных пределах). Изредка к нему будет цепляться нетбук. Может кто нить что посоветует? (Да в ИБП должна быть возможность управления через NUT)
                      • –1
                        Автомобильный аккумулятор с инвертором.
                      • –1
                        А как компьютер узнаёт, что ему надобно включиться?
                        • +1
                          bios
                          • 0
                            В большинстве биосов есть настройка, называющася «Wake up on power fail» или как-то сходно.
                            • 0
                              Но ведь компьютер выключился корректно, так что никакого power fail не было. Или я что-то не понял?
                              • 0
                                Не поняли. Когда с блока питания на материскую плату перестаёт подаваться напряжение — это считается сбоем питания. В биосе обычно существует опция, которая управляет поведением компа после таких сбоев: «оставаться выключенным / включиться». Иногда ещё есть третья опция «сохранить предыдущее состояние» — т.е., если при выключении питания компьютер был включён, то запустить его снова; если же был выключен — оставаться выключенным.
                                • 0
                                  Непонятно, в какой момент у вас происходит сбой питания. Разве опция в биосе касается пропадания питания в случаях, когда компьютер уже выключен?
                                  • +1
                                    В общем случае — нет, это касается любых сбоев питания. В данной конкретной схеме с ИБП — да, компьютер выключается, а после него выключается ИБП. Фокус в том, что даже когда компьютер выключен, питание на материнскую плату продолжает подаваться. Если в биосе включена настройка запуска компьютера после сбоя питания, то, если вы выдерните сетевой шнур из розетки, а потом воткнёте его обратно (или клацните туда-сюда выключателем на блоке питания), то материнская плата зарегистрирует этот сбой подачи питания, и компьютер включится.
                                    • 0
                                      То есть, да, касается. Извините, я ваш комментарий спросонья невнимательно прочёл.
                                      • 0
                                        Спасибо, не знал. Правда, мне это не очень нужно, поскольку я своему apc говорю просто отключаться, но всё равно интересно.
                            • +1
                              NUT — отличная штука, перешли на него после того, как увидели какое же гуано идёт с ИБП Eaton.

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