Взял я недавно себе 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, а вот остальные производители на это забили и в лучшем случае отдали на откуп сторонним программистам, которые на это тоже забили...
Из заработавших у меня программ под Windows мне понравились следующие:
Достаточно продвинутая программа, имеет встроенный WebGUI, может управлять УПС-ом, умеет выключать компьютер.
очень компактная и отличается выводом в трей иконки с указанием загрузки ИПБ в процентах.
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.
Для настройки надо добавить UPS со следующими параметрами:
Установите галочку в строке “Хранить NUT пароль в конфигурационном файле” для того, чтобы каждый раз его не пришлось вводить вручную. В полях “UPS переменные” можно указать датчики, которые должны отображаться в графическом виде на панели программы. У меня работают только те, которые указаны на скришноте. Хотя сам драйвер ИБП выдает намного большее число параметров, программа даже не предлагает отображать их в виде индикаторов, но этом их видит:
Также она может управлять UPS-ом:
Можно настроить программу так, что она будет при запуске сворачиваться в трей и там отображать нагрузку на ИБП и остаток заряда батареи. Минус программы в том, что если при запуске она не смогла подключиться к демону (а обычно демон пускается позже), то она сама не будет пытаться повторить соединение и это надо будет делать вручную. В качетсве решения можно пускать данную программу с задержкой, достаточной для загрузки всех компонент NUT.
Программа, позволяющая из Windows наблюдать за работой ИПБ, подключенного к *nix-машине с помощью NUT. Имеет неприятное ограничение - в ней невозможно задать учетную запись для доступа к УПС и она работает только в режиме просмотра (видимо, вызвано древность программы и заброшенностью оной автором еще в 2007г.). Также, она знает не все параметры, которые может выдать upsc, но все необходимое есть. Еще она умеет выключать компьютер при разряде батареи, но не умеет сворачиваться в трей. Радует, что можно задать номинальное напряжение батареи, т.к. мой ИБП немножко нетиповой и у него оно 54В (4х13.5).
Индикатор "UPS On Battery", горящий желтым светом, вовсе не сигнализирует о том, что ИБП работает от батарей. Здесь он сигнализирует об работе блока AVR, работающего в режиме повышения или понижения входного напряжения.
Программа для подключения из Windows к удаленному NUT-серверу, сделанная без GUI с возможностью работы как сервис. Имеет поддержку авторизации на NUT. Удобна для использования в качестве службы, автоматически выключающей Windows-ПК при неполадках электропитания, информацию о которых она получает по сети. Конфиг у нее текстовый и максимально унифицирован с конфигами NUT. В конфиге нужно не забыть исправить пути к программе AlertPopup.exe, т.к. инсталлятор их сам не правит.
В итоге получаем конфигурацию, когда УПС подключен к постоянно функционирующему мини-серверу, и при этом со стационарного компа можно наблюдать за его состоянием, управлять им и т.д.
2 апреля, 2009 в 20:12
Слушай, не по теме: какую файловую систему в итоге заюзал?
Ответить
vasiliy Reply:
2 апреля, 2009 at 22:13
Я про ФС давно уже думал опус выдать, материалу и мыслей достаточно нобралось. В результате потестив несколько ФС, изучив это (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Гб файл оказывается уже сильно фрагментируемым, да и сам дефрагментатор, имхо, в зачаточном состоянии по функционалу.
Ответить
dluciv Reply:
3 апреля, 2009 at 9:34
Я бы на клиент багрепорт всё же написал. Раз уж работает под юниксами, то пускай учится писать в файлы, например, единицы, а не нули…
Ответить
vasiliy Reply:
3 апреля, 2009 at 16:21
Тогда и на дефрагер тоже надо писать:
там таймер таймаута не прерывает процесс, если он занят обработкой файла. Таймер опрашивается в период между окончанием одного и началом другого файла. Если файл 40Гб, то вместо 10-минутного временного интервала, разрешенного программе для работы, можно ждать пару часов и более.
Ответить
18 сентября, 2009 в 19:04
Спасибо за пост. Подкину свои 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).
Ответить
21 декабря, 2009 в 10:59
Пробую тоже настроить Smart Winner 3000. Драйвер megatec не видит иппона 🙁 Возможно у вас другая модель была
sudo /lib/nut/megatec -D -a ippon
Network UPS Tools 2.2.1- — Megatec protocol driver 1.5.13 [megatec]
Carlos Rodrigues (c) 2003-2007
debug level is ‘1’
Starting UPS detection process…
5 out of 5 detection attempts failed (minimum failures: 2).
Megatec protocol UPS not detected.
Ответить
21 декабря, 2009 в 14:13
От модели в данном случае ничего не зависит, протокол у них всех стандартный. По USB мне завести так и не удалось, а с последовательным портом никаких проблем быть не должно. У вас какое подключение ИБП к ПК?
Ответить
neptune Reply:
21 декабря, 2009 at 21:50
У меня тоже ttyS0 подключение, с USB даже не стал заморачиваться, начитавшись отзывов. Порт виден, драйвер его открывает, но обмена информацией нет 🙁 Провод из комплектации иппона. Сам не пойму в чем проблема, уже теряюсь в догадках. А у вас /lib/nut/megatec -D -a нормально отрабатывает? (Вобще должно, раз работает)
А версия у Вас такая же?
Ответить
Vasiliy Reply:
21 декабря, 2009 at 22:03
Результат отработки команды:
Network UPS Tools 2.2.2- – Megatec protocol driver 1.5.14 [megatec]
Carlos Rodrigues (c) 2003-2008
debug level is ‘1′
/dev/ttyS0 is locked by another process
PS: версия у меня новее, но может просто из репозитария апдейт скачался. Для исключения аппаратной проблемы логично проверить под другой ОС с какой-нибудь из комплектных программ.
Ответить
neptune Reply:
21 декабря, 2009 at 22:15
а если сделать /etc/init.d/nut stop; /lib/nut/megatec -D -a device; /etc/init.d/nut start ?
Да, я тоже не думаю что проблема с версией драйвера. Попробую как смогу на другой машине тогда…
Ответить
Vasiliy Reply:
21 декабря, 2009 at 23:17
Цепляет с первой попытки.
Ответить
28 января, 2010 в 0:19
Для работы с Ippon лучше использовать blazer_usb он вроде учитывает кривость реализации протокола megatec через usb рядом производителей. Но и у него был не большой глюк, не отрабатывалась команда отключения UPS c последующим включением через таймаут, хотя это устранилось правкой парой строк в драйвере. Сейчас возможно уже исправили не проверял, а так работает хорошо для техники подобного класса.
Ответить
6 августа, 2010 в 6:06
Прикупил подобный. Настроил NUT с одним мастером и несколькими слейвами. ИБП мощный, хватает пока на 30 мин. работы после выключения питания. Вопрос в следующем: по сигналу от ИБП сервера уходят в halt, т.е. завершают все процессы, но не выключаются. Таким образом, если питание ИБП получит раньше, чем закончится заряд батарей, то сервера так и не включатся самостоятельно. Пытались ли вы подобную проблему обойти?
Ответить
vasiliy Reply:
6 августа, 2010 at 11:05
У меня такой именно проблемы нет, отправляется уведомление на почту, дальше я всегда смогу включить удаленно с помощью WOL.
Если в BIOS стоит автовключение при подаче питания, ОС выключила систему а питание так и не пропало, то можно оставить хотя бы один рабочий комп, который будет WOL-пакеты для остальных слать если сеть восстановится, а если не восстановится, то тогда первая ранее выключенная группа при своем включении также пошлет WOL-пакеты и включет тот самый комп.
Ответить