?

Log in

Подключение UPS Ippon в Linux и Windows. NUT+Windows - VT's LJ [entries|archive|friends|userinfo]
Василий

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| Фото ]

Подключение UPS Ippon в Linux и Windows. NUT+Windows [Apr. 2nd, 2009|10:49 pm]
Василий
[Tags|, , ]

Взял я недавно себе UPS Ippon Smart Winner в замен много лет служившего PowerCom, мощности которого стало не хватать для обеспечения работы нового компа при плохих условиях в сети.

В Windows с любыми вариациями штатного ПО сие "чудо"  по USB заставить работать мне так и не удалось, однако нашлись альтернативные программы, которые смогли с ним работать. Странно, что с этим у производителя возникли такие сложности, т.к. протокол "Megatec", по которому работает данная железка достаточно распространенный и очень простой. Также мне не понятно, зачем имея у ИБП нативный COM-порт нужно было делать параллельно USB-порт, работающий как USB-HID. Гораздо логичнее было бы представлять его как USB-COM адаптер. Анализ форумов показал, что такие проблемы не только у меня одного, а в мануалах вообще указано, что если ИБП с протоколом Megatec имеет сразу оба порта (USB+COM), то в Linux он будет работать только через COM. С Linux  (поставил все-таки Debian Lenny на mini-ITX, об этом я еще может напишу) родное ПО тоже не заработало, но альтернативное решение было найдено. Немножко удивляет беспечность производителей железа. У меня сложилось мнение, что ИБП от APC без проблем работают с Windows/*nix, а вот остальные производители на это забили и в лучшем случае отдали на откуп сторонним программистам, которые на это тоже забили...

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Из заработавших у меня программ под Windows мне понравились следующие:

UPS Assistant

Достаточно продвинутая программа, имеет встроенный WebGUI, может управлять УПС-ом, умеет выключать компьютер.

upsassistantsmall

USBUPSMon

очень компактная и отличается выводом в трей иконки с указанием загрузки ИПБ в процентах.

Linux

С Linux все оказалось намного веселее. Во-первых, единого мануала по настройке ИБП такого типа я не нашел и по частям пришлось восстанавливать процесс подключения, который в конечном итоге оказался очень простым, за исключеним того, что я не один вечер потратил на попытки заставить его заработать через USB, что так и не удалось (массовое явление, кстати). Зато через COM-порт он потом подключилось очень быстро (т.к. пришлось поправить только пару строчек в конфиге). Итого, для Debian Lenny процесс настройки UPS Ippon для работы с NUT (Network UPS Tool) можно осуществить так (предполагаем, что эти действия делаются от root):

  • установить пакет NUT
apt-get install nut
  • скопировать исходные файлы конфигурации из /share/doc/nut/examples в /etc/nut/
  • откорректировать файл /etc/nut/ups.conf, сделав  в нем секцию следующего вида (ttyS0 - COM1). Здесь battvolts указывает на номинальное:минимальное напряжение батареи. Если не указать, то будет неправильно выдаваться заряд в процентах. Точные значения проще узнать опытным путем, сняв значение напряжения батареи при полном заряде, и в момент ее отключения при полном разряде.
[myups]
driver = megatec
port = /dev/ttyS0
desc = "Ippon Smart Winner"
battvolts = 53:39
mfr = "Ippon"
model = "Smart Winner"
  • откорректировать файл  /etc/nut/upsd.conf, сделав  в нем секцию похожего вида (разрешен доступ для  ЭВМ внутренней сети, локально на данной машине; запрещен остальной доступ. Порт 3493).
ACL all 0.0.0.0/0
ACL lan 192.168.1.1/32
ACL localhost 127.0.0.1/32
ACL myhost 192.168.1.2/32
ACCEPT localhost lan myhost
REJECT all
LISTEN 0.0.0.0 3493
  • в файле /etc/nut/upsd.users создать учетную запись пользователя и настроить мониторинг ИБП.
[monuser]
password  = пароль
allowfrom = all
upsmon master
instcmds = ALL
actions = SET MONITOR
myups@localhost 1 monuser пароль master
  • в файле /etc/nut/upsmon.conf можно произвести настройку мониторинга и возможных действий по разным событиям, например, выключение станции.
MONITOR myups@localhost 1 monuser пароль master
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h now"
  • Выставляем права на доступ к последовательному порту (считаем, что это COM1): создаем файл /etc/udev/rules.d/99_nut-serialups.rules с содержимым
KERNEL=="ttyS0", GROUP="nut"
  • применяем новые правила:
udevadm control --reload_rules
udevadm trigger
  • можно защитить файлы конфигурации NUT:
chown root:nut /etc/nut/*
chmod 640 /etc/nut/*
  • Устанавливаем автоматический запуск служб, включив в файле /etc/default/nut следующие переменные:
START_UPSD=yes
START_UPSMON=yes
  • Перегружаем ПК и пробуем получить информацию от UPS командой upsc myups@localhost. Если в ответ получена информация о UPS, значит вся настройка прошла корректно и встроенный клиент видит устройство:
# upsc myups
battery.charge: 91.8
battery.voltage: 53.40
battery.voltage.nominal: 48.0
driver.name: megatec
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/ttyS0
driver.version: 2.2.2
driver.version.internal: 1.5.14
input.frequency: 50.0
input.frequency.nominal: 50.0
input.voltage: 204.1
input.voltage.fault: 204.1
input.voltage.maximum: 229.0
input.voltage.minimum: 196.5
input.voltage.nominal: 230.0
output.voltage: 235.1
ups.beeper.status: enabled
ups.delay.shutdown: 0
ups.delay.start: 2
ups.load: 26.0
ups.mfr: unknown
ups.model: unknown
ups.serial: unknown
ups.status: OL BOOST
ups.temperature: 65.8
ups.type: standby

Сервис работает, переходим к "удобствам".

В качестве графического клиента для Linux я поставил knutclient.

screenshot-knutclient

Для настройки надо добавить UPS со следующими параметрами:

knutclent_setupups

Установите галочку в строке “Хранить NUT пароль в конфигурационном файле” для того, чтобы каждый раз его не пришлось вводить вручную. В полях “UPS переменные” можно указать датчики, которые должны отображаться в графическом виде на панели программы. У меня работают только те, которые указаны на скришноте. Хотя сам драйвер ИБП выдает намного большее число параметров, программа даже не предлагает отображать их в виде индикаторов, но этом их видит:

knutclient_vars

KNutClient - список команд

Также она может управлять UPS-ом:

KNutClient - управление UPS

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

WinNutClient

Программа, позволяющая из Windows наблюдать за работой ИПБ, подключенного к *nix-машине с помощью NUT. Имеет неприятное ограничение -  в ней невозможно задать учетную запись для доступа к УПС и она работает только в режиме просмотра (видимо, вызвано древность программы и заброшенностью оной автором еще в 2007г.). Также, она знает не все параметры, которые может выдать upsc, но все необходимое есть. Еще она умеет выключать компьютер при разряде батареи, но не умеет сворачиваться в трей. Радует, что можно задать номинальное напряжение батареи, т.к. мой ИБП немножко нетиповой и у него оно 54В (4х13.5).

win_nut_client

Индикатор "UPS On Battery", горящий желтым светом, вовсе не сигнализирует о том, что ИБП работает от батарей. Здесь он сигнализирует об работе блока AVR, работающего в режиме повышения или понижения входного напряжения.

WinNUT

Программа для подключения из Windows к удаленному NUT-серверу, сделанная без GUI с возможностью работы как сервис. Имеет поддержку авторизации на NUT. Удобна для использования в качестве службы, автоматически выключающей Windows-ПК при неполадках электропитания, информацию о которых она получает по сети. Конфиг у нее текстовый и максимально унифицирован с конфигами NUT. В конфиге нужно не забыть исправить пути к программе AlertPopup.exe, т.к. инсталлятор их сам не правит.

WinNUT

В итоге получаем конфигурацию, когда УПС подключен к постоянно функционирующему мини-серверу, и при этом со стационарного компа можно наблюдать за его состоянием, управлять им и т.д.

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

P.S.: Кросспост из VT's blog. Вы можете оставить комментарии здесь или тут
LinkReply

Comments:
[User Picture]From: dluciv
2009-04-02 08:12 pm (UTC)
Слушай, не по теме: какую файловую систему в итоге заюзал?
(Reply) (Thread)
[User Picture]From: vasiliy
2009-04-02 10:13 pm (UTC)
Я про ФС давно уже думал опус выдать, материалу и мыслей достаточно нобралось. В результате потестив несколько ФС, изучив это (http://software.intel.com/en-us/articles/windows-client-cifs-behavior-can-slow-linux-nas-performance/), и вспомнив, что дефрагментировать все равно надо будет я для раздела с закачками применил XFS, т.к. ее можно дефрагментировать, а потеря их или сбои мне не важны (к тому же есть HASH для торрентов и можно докачать побившийся кусок). Систему поставил на ЕХТ3, а диск с музыкой у меня был на NTFS, там и оставил, т.к. ее поднять в случае чего можно, в отличие от юниксовых ФС, в особенности XFS. Скорости получились странные, особенно в связке с samba. Как в итоге работает кеширование я не понял. Итоговая потеря в скорости от Windows 7 (см предыдущие замеры) составила 1.5-2 раза на больших файлах, но все равно намного быстрее FreeBSD. До кучи заметил, что залитый через самбу на пустой XFS раздел 40Гб файл оказывается уже сильно фрагментируемым, да и сам дефрагментатор, имхо, в зачаточном состоянии по функционалу.
(Reply) (Parent) (Thread)
[User Picture]From: dluciv
2009-04-03 09:34 am (UTC)
Я бы на клиент багрепорт всё же написал. Раз уж работает под юниксами, то пускай учится писать в файлы, например, единицы, а не нули...
(Reply) (Parent) (Thread)
[User Picture]From: vasiliy
2009-04-03 04:21 pm (UTC)
Тогда и на дефрагер тоже надо писать:
там таймер таймаута не прерывает процесс, если он занят обработкой файла. Таймер опрашивается в период между окончанием одного и началом другого файла. Если файл 40Гб, то вместо 10-минутного временного интервала, разрешенного программе для работы, можно ждать пару часов и более.
(Reply) (Parent) (Thread)
From: (Anonymous)
2009-09-18 07:04 pm (UTC)
Спасибо за пост. Подкину свои 5 копеек для следующих гостей из гугла, если такие будут.
В линуксе еще неплохо работают MGE, во всяком случае Evolution'ы, проверено на версии tower 850. Сначала поставил psp (personal solution pack) с офсайта, потом сам psp снес, а nut поставил из репа дистра (fedora 8 x64, потом 11-я). Работает по юсб нормально, правда раз в пару часов отваливается на несколько секунд с "communication lost" и строчками в dmesg типа
"hub 2-0:1.0: port 1 disabled by hub (EMI?), re-enabling...
usb 2-1: USB disconnect, address 9
Data for UPS [mgeups] is stale - check driver
drivers/hid/usbhid/hid-core.c: usb_submit_urb(ctrl) failed
UPS [mgeups] data is no longer stale"
Хотя на работоспособность не влияет. Может из-за того, что шнурок длинный (>6м), хз.
Настраивающим в первый раз есть смысл попробовать сначала заюзать psp, посмотреть, что она там надетектит и напишет в конфиги, потому как с нуля разбираться будет небыстро. Если не будет коннектиться, может помочь добавление "upsd: 127.0.0.1 @nut" в hosts.allow (упоминание есть в каком-то из манов nut).
(Reply) (Thread)
[User Picture]From: matperez
2010-08-06 06:06 am (UTC)
Прикупил подобный. Настроил NUT с одним мастером и несколькими слейвами. ИБП мощный, хватает пока на 30 мин. работы после выключения питания. Вопрос в следующем: по сигналу от ИБП сервера уходят в halt, т.е. завершают все процессы, но не выключаются. Таким образом, если питание ИБП получит раньше, чем закончится заряд батарей, то сервера так и не включатся самостоятельно. Пытались ли вы подобную проблему обойти?
(Reply) (Thread)
[User Picture]From: vasiliy
2010-08-06 11:05 am (UTC)
У меня такой именно проблемы нет, отправляется уведомление на почту, дальше я всегда смогу включить удаленно с помощью WOL.
Если в BIOS стоит автовключение при подаче питания, ОС выключила систему а питание так и не пропало, то можно оставить хотя бы один рабочий комп, который будет WOL-пакеты для остальных слать если сеть восстановится, а если не восстановится, то тогда первая ранее выключенная группа при своем включении также пошлет WOL-пакеты и включет тот самый комп.
(Reply) (Parent) (Thread)

LJ Magazine