|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (127)
просмотр истории страницыh4. Установка пакета Network UPS Tools |
{toc} |
|
1. создать пользователя и группу с именем "nut"; |
h2. Подсистема контроля UPS |
|
h3. Зачем нужна подсистема контроля UPS? |
|
{code}useradd nut {code} 2. перейти во временную директорию /tmp и скачать пакет Network UPS Tools (далее по тексту --- *nut*); |
При отсутствии подключенного UPS, подсистема минимизирует риски потери информации при работе биллинга путем перевода базы данных в синхронный режим. В этом режиме изменения и новые данные сразу записываются на диск. При наличии подключенного UPS, подсистема переключает базу данных в асинхронный режим, в этом случае изменения и новые данные хранятся в памяти и периодически сбрасываются на диск подсистемой ввода/вывода операционной системы. Это дает гораздо большую производительность, чем при синхронном режиме. |
|
{code}cd /tmp wget http://dl.fedoraproject.org/pub/epel/6/x86_64/nut-2.6.5-2.el6.x86_64.rpm wget http://dl.fedoraproject.org/pub/epel/6/x86_64/nut-client-2.6.5-2.el6.x86_64.rpm{code} 3. установить данные пакеты, соглашаемся с установкой зависимостей; |
h3. Ответы на очевидные вопросы |
|
_Возникает вопрос_: А нужно ли настраивать UPS, если база и так надежно защищена синхронным режимом? _Ответ_: Да, нужно. Потому что синхронный режим не гарантирует корректную работы БД после сбоя по питанию, а также кроме БД в биллинге есть другие подсистемы, которые при внезапном отключении питания могут принести долгий простой и много боли при восстановлении. |
|
{code}yum localinstall nut-2.6.5-2.el6.x86_64.rpm nut-client-2.6.5-2.el6.x86_64.rpm{code} 4. настройка udev. |
h2. Настройка подсистемы |
|
h3. Установка пакета Network UPS Tools |
|
# создать пользователя и группу с именем "nut", дать пользователю nut права root {code}useradd nut usermod -a -G root nut{code} # перейти во временную директорию /tmp и скачать пакет Network UPS Tools (далее по тексту --- *nut*), при необходимости установить wget; {code}yum install nut -y{code} # настройка udev. |
{code}cp /lib/udev/rules.d/62-nut-usbups.rules /etc/udev/rules.d/{code} |
h4. ---- |
h43. Конфигурационные файлы |
Все конфигурационные файлы находятся в директории "*/etc/ups*". |
... |
* *upsmon.conf* \- настройка текущего клиентского агента. |
h54. ups.conf |
Конфигурация подключенных UPS. |
... |
* *driver* \- драйвер, используемый для работы с UPS; * *port* \- порт, на котором висит UPS (для подключения через USB указываете значение "auto"). Для snmp-ups: имя хоста SNMP агента. Для newhidups: значение "auto" для автоматического соединения с USB UPS; |
* *bus* \- канал/шина на котором расположен порт; |
* *desc* \- описание устройства; * *sdorder* \- необязательный элемент. При наличии нескольких UPS подключенных к этому серверу можно выключать UPS в определенном порядке. используя *upsdrvctl* к примеру можно выключить все 0s или 1s, 2s и тд. Для исключения последовательной остановки используйте \-1; |
* *nolock* \- необязательный элемент, его не рекомендуется использовать в его этом конфиге. Он служит для отключения блокировки порта при пользовании утилитой; |
* *maxstartdelay* \- необязательный элемент. Может быть, заданна как глобальная переменная выше вашего первого UPS. Это значение определяет, сколько *upsdrvctl* будет ожидать окончания запуска драйвера. Данная возможность предоставляет стабильность в работе. Значение по умолчанию равно 45 секундам; * *cable* \- Если драйвер UPS требует дополнительных параметров, вы можете указать их здесь. Не указывайте это значение, если ваше подключение к UPS стандартно. |
h54. upsd.conf |
|
Служит для контроля доступа к серверу и для установки других значений конфигурации. Этот файл содержит подробные сведения об предоставления о предоставлении доступа, таким образом, обеспечивается безопасность. В идеальном случае, только процесс *upsd* должен иметь возможность прочитать данные из этого файла. |
* *MAXAGE* \- по умолчанию 15 секунд. Это частота обновления данных клиентов после остановки драйвера UPS. Следует использовать другое значение только в том случае, если у вас трудности с обновлением данных; * *LISTEN address port* \- здесь указывается IP адрес и порт 3493 (по умолчанию) для прослушивания подключений; |
* *MAXCONN connections* \- по умолчанию используется 1024 подключений. Каждый UPS, каждого LISTEN адреса и каждого клиента считается как одно подключение. Если на сервере заполняится количество подключений, он больше не будет принимать новых входящих клиентских подключений. |
|
h54. upsd.users |
Контроль доступа для UPS демона (профили пользователей). Именно в этом файле вы указываете, кто и в какой мере будет работать с *nut*. |
... |
Каждый UPS монитор может определяться как один из трех возможных типов: |
*upsmon master* \- полные полномочия управлением питания управления питанием подключенных к системе. UPS под управлением этого upsmon и отвечает системе UPS. Отвечает за выключение разряженного аккумулятора. Выключение происходит после безопасного выключения всех *slave* мониторов. Если ваш UPS подключен непосредственно к системе через последовательный порт, то для upsmon этой системы следует определить его как *master*. |
*upsmon slave* \- эта система, под управлением *upsmon master* и она не выключается непосредственно. Операционная система будет выключена перед отключением питания *master*. Используйте этот режим при запуске монитора на других серверах работающих на том же UPS. И очевидно, что только один сервер может быть подключен к последовательному порту на UPS, коим будет является *master*. Все остальные сервера будут *slave*. |
... |
* SET - изменить значения определенных переменных в UPS; |
* FSD - установка флага "принудительного выключения" для UPS/. |
*instcmds* \- разрешения пользователю на инициирование конкретных команд. Применяя "ALL" вы разрешаете использовать все команды, Существует множество команд выполните "*upscmd \-l <имя UPS в настройках>*" чтобы увидеть, что ваше оборудование поддерживает. Вот, к примеру, несколько команд. |
... |
* calibrate.stop - остановка калибровки батареи |
h54. upsmon.conf |
|
Этот конфигурационный файл предоставляет основные функции в программе мониторинга UPS, например это безопасное завершенийе работы при сбое питания, уведомления и другие переменные. В многоуровневой схеме утилиты *nut* это клиент. |
* *MINSUPPLIES* \- указываем количество блоков питания которые должны получать мощность сохраняя систему запущенной. Большинство систем имеют один БП. Но дорогие сервера, например HP NetServer LH4 могут работать с 2 из 4 БП и ему нужно ставить 2; * *SHUTDOWNCMD* \- upsmon выполняет эту команду, когда систему необходимо выключить; |
* *POLLFREQ* \- опрос мониторами с частотой (измеряется в секундах) для обычной деятельности. Вы можете отрегулировать это эту частоту опроса, чтобы upsmon не “зашумлял” вашу сеть, но не вносите слишком большие значения тк. оно может пропустить отключение питания; |
* *POLLFREQALERT* \- опрос UPS с частотой в секундах. Можно сделать значение поменьше, чем POLLFREQ для лучшей чувствительности работы батареи; * *HOSTSYNC* \- как долго upsmon будет ждать перед переходом к следующему upsmon. master upsmon использует это число при ожидании slaves чтобы отключиться после того как он установил флаг принудительное завершение работы (FSD). И если slaves не отключаться после этого тайм аута, то выключение продолжится без них; |
* *DEADTIME* \- интервал ожидания перед объявлением статуса UPS как «мертвый» upsmon «мертвый». Upsmon требует, чтобы UPS предоставлял свою статус информацию, каждые несколько секунд (см. POLLFREQ и POLLFREQALERT). Если статус загрузки, UPS помечен fails. И если оно остается fails более чем DEADTIME секунд, то UPS помечается как «мертвый». Выставляйте значение этой переменной в несколько (в три раза пойдет) раз больше чем *POLLFREQ* и *POLLFREQALERT*; |
* *POWERDOWNFLAG* \- флаг файла для форсирования завершения работы UPS в master системе; * *NOTIFYMSG* \- изменение сообщения, отправленные upsmon при возникновении определенных событий; |
... |
---- |
h43. Что нужно знать перед настройкой UPS |
|
Если только собираетесь покупать UPS, то рекомендуется ознакомиться со списком совместимости *nut* --- [http://www.networkupstools.org/stable-hcl.html] в фильтре указать интересующие параметры. |
!fully_suported.png|border=1! |
1. ознакомиться со списком максимально совместимых UPS; |
2. определить тип подключения UPS. Это может быть USB, COM, Ethernet, other. Определить можно по спецификации UPS в инструкции пользователя, и/или визуально, при наличии необходимых знаний; |
... |
7. *Не все UPS одинаково полезны\!* Некоторые UPS не могут, после обратного перехода с батареи на сеть, включить ПК. |
{note} Важно\! Если UPS подключен к другому серверу, Вы можете снимать его статус через NUT, установленный на биллинге. Для этого нужно исправить файл {code} /app/base/cfg/config {code} и указать в поле ups['host'] адрес сервера, к которому подключен UPS. Пример конфигурации: {code} # Если в host указать адрес сервера, то статус UPS будет сниматься с него. ups['enabled']='1' ups['host']='*.*.*.*' {code} {note} |
|
|
---- |
h43. Пример настройки nut |
0. обязательно прочитать заметки\! |
1. указываем *nut*, то UPS один и подключен на прямую к серверу ; |
1. Указываем *nut*, то есть что UPS один и подключен на прямую к серверу ; |
{code}vim /etc/ups/nut.conf: |
— далее изменяем переменную MODE = standalone{code} |
2. дДобавляем UPS (в качестве примера был выбран APC Black-UPS ES 700); |
{code:lang=actionscript}vim /etc/ups/ups.conf — добавляем строки [apces700] driver = usbhid-ups |
desc = "Black-UPS ES 700" |
bus = "004" port = "005" vendorid = 051d productid = 0002{code} |
В случае, если управление ups будет происходить по snmp, данный файл будет выглядеть примерно следующим образом: {code} [apces700] driver = snmp-ups port = 10.0.0.1 community = public snmp_version = v1 pollfreq = 15 desc = "Example SNMP v1 device" {code} Где 10.0.0.1 - ip адрес, по которому доступен ups. По совместимости Вашего ИБП с драйвером можете обратиться к документации драйвера [http://networkupstools.org/docs/man/snmp-ups.html] |
|
В некоторых случаях при настройке подключения через COM порт достаточно параметров. {code} [apces700] driver = serial desc = "Back-UPS ES 700" port = /dev/ttyS0 {code} {info} При использовании переходника USB-to-Serial порт нужно указать такой: {code} port = /dev/ttyUSB0 {code} {info} |
3. уУстанавливаем IP и порт, на котором демон, будет принимать данные о состоянии UPS; |
{code}vim /etc/ups/upsd.conf — добавляем строки LISTEN 127.0.0.1 3493{code} |
4. добавлеям Добавляем пользователя, от имени данного пользователя которого будет производится мониторинг и отправка команд в систему; |
{code}useradd <имя_пользователя> upsuser |
passwd <имя_пользователя> upsuser{code} |
запоминаем/записываем и вводм password{code} |
5. дДобавляем созданного пользователя в настройки; |
{warning}Если в пароле используются спецсимволы, например №\!#%^& - в о всех конфигурационных файлах пароль следует заключать в кавычки: {code}password = 'my!#%password'{code}{warning} |
{code}vim /etc/ups/upsd.users — добавляем строки |
[<имя_пользователя>] [upsuser] |
password = <ваш пароль> password |
actions = SET instcmds = ALL upsmon master{code} |
6. уУстанавливаем основные настройки *nut*; |
{code:lang=actionscript}vim /etc/ups/upsmon.conf — добавляем строки |
MONITOR <имя_UPS>@localhost 1 <имя пользователя> <ваш пароль> master |
MONITOR apces700@localhost 1 upsuser password master |
MINSUPPLIES 1 SHUTDOWNCMD "/sbin/shutdown -h +0" |
NOTIFYCMD /usr/sbin/upssched |
POLLFREQ 5 POLLFREQALERT 5 |
... |
DEADTIME 15 POWERDOWNFLAG /etc/killpower |
NOTIFYMSG ONLINE |
NOTIFYMSG ONLINE "UPS %s on line power" NOTIFYMSG ONBATT "UPS %s on battery" |
... |
NOCOMMWARNTIME 300 FINALDELAY 0{code} |
7. зЗапускаем демон; |
{code}service ups start{code} |
8. пПроверяем возможности UPS; |
|
{code}upscmd -l <имя_UPS>@localhost{code} apces700@localhost{code} |
ИЛИ {code}upscmd apces700@localhost{code} |
|
9. нНастраиваем планировщик *nut*; |
{code}vim /etc/nut/upssched.conf /etc/ups/upssched.conf |
— добавляем |
CMDSCRIPT /etc/nut/cmd.sh /etc/ups/cmd.sh |
PIPEFN /tmp/upspipe LOCKFN /tmp/upslock |
... |
AT ONLINE * EXECUTE powerup {code} |
10. сСоздаем скрипт поведения UPS при штатных ситуациях; |
{code:lang=actionscript}touch /etc/ups/cmd.sh |
chmod 666 777 /etc/ups/cmd.sh |
vim /etc/ups/cmd.sh - добавляем |
#!/bin/sh |
#!/bin/bash |
case $1 in commbad) |
... |
powerout) logger "UPS on battery. Shutdown in 90 seconds...." |
upscmd -u <имя пользователя> -p <ваш пароль> <имя_UPS>@localhost shutdown.return |
upscmd -u upsuser -p password apces700@localhost shutdown.return |
;; shutdownnow) logger "UPS has been on battery for 90 seconds. Starting orderly shutdown" |
/app/asr_billing/service /etc/init.d/apps stop |
/app/asr_cabinet/service stop /app/asr_fiscal/service stop /app/auth/service stop /app/base/service stop /app/collector/service stop /app/monitoring/service stop |
/sbin/shutdown -h now ;; |
... |
powerup) logger "UPS on line. Shutdown aborted." |
upscmd -u <имя пользователя> -p <ваш пароль> <имя_UPS>@localhost shutdown.stop |
upscmd -u upsuser -p password apces700@localhost shutdown.stop |
;; *) |
... |
esac{code} |
11. дДобавляем демон в автозагрузку; |
{code}chkconfig --level 35 ups on{code} |
12. пПроверяем состояние UPS. |
{code}upsc <имя_UPS>@localhost{code} apces700@localhost{code} |
|
h5. *Заметки:* |
*13. Запускаем скрипт проверки UPS* |
|
1. если схема подключения отличается от "эталонной", то при возникновении затруднений --- обратиться в техподдержку. |
{code} check_ups_status.sh {code} |
|
h3. Заметки |
|
* Внимательно просмотрите листинги, <имя_пользователя>, <ваш_пароль>, <имя_UPS> --- это абстрактное обозначение *Ваших* данных, так же *не надо печатать угловые скобки*, т.е. попытка ввода в настройки *nut* строчек типа: <имя_пользователя>, <имя_UPS>, <etc>... --- приведет к ошибкам/некорректной работе; * Если схема подключения отличается от "эталонной", то при возникновении затруднений --- обратиться в техподдержку; * Если UPS один и подключается через USB, то в настройках можно указать порт ("port") как "auto" и не вводить "bus"; * Что бы узнать номер порта и шины UPS, можно воспользоваться утилитой lsusb (если UPS подключен через USB), другие варианты подключения (COM, Ethernet) нужно настраивать индивидуально; |
2. нужный * Нужный драйвер можно посмотреть на странице проекта --- [http://www.networkupstools.org/ddl/|http://www.networkupstools.org/ddl/], находите модель UPS и смотрите строку driver.name; |
* Все параметры настройки UPS можно посмотреть в разделе "Конфигурационные файлы" --- пункт "ups.conf" * В зависимости от списка команд можно гибко настраивать поведение UPS, если драйвер/UPS поддерживает то или иное действие; * shutdown.return --- данную опцию нужно проверять командой: upscmd \-l <имя_UPS>@localhost * Драйвер для Вашего устройства или производителя устройства можно попробовать найти в файле */usr/share/driver.list*, например: {code}cat /usr/share/driver.list | grep -i Smart-UPS{code} Вывод, в котором выведены драйвера с которыми можно попробовать интегрировать APC Smart-UPS: {code}"APC" "ups" "1" "Smart-UPS" "" "apcsmart" "APC" "ups" "2" "Smart-UPS USB" "USB" "usbhid-ups" "APC" "ups" "3" "Smart-UPS RT XL" "AP9618 SNMP monitoring card" "snmp-ups" {code} |
|
h2. Проверка подсистемы |
|
Пр окончанию настройки требуется выполнить итоговую проверку работоспособности схемы: # Выполните остановку биллинга во избежание потери данных {code} /etc/init.d/apps stop {code} # По завершении остановки сервисов биллинга, убедитесь, что UPS подключен и функционирует {code} # upsc -L apces700: Back-UPS ES 700 {code} # Запустите мониторинг системного лога {code} tail -f -n 0 /var/log/messages | grep -Ei 'ups|shut' {code} # Отключите UPS от сети. Сообщения в логе должны выглядеть приблизительно так: {code} upsmon[1393]: UPS apces700@localhost on battery upssched[22505]: Executing command: powerout logger: UPS on battery. Shutdown in 90 seconds.... upsd[1388]: Instant command: ups@127.0.0.1 did shutdown.return on apces700 upssched[22509]: Timer daemon started upssched[22509]: New timer: shutdownnow (90 seconds) usbhid-ups[1384]: instcmd: command [shutdown.return] handled {code} По истечении 90 секунд, сервер должен выключиться. |
|
При успешном завершении работы, тест можно считать пройденным. При возникновении каких-либо ошибок, обратитесь в техподдержку CarbonSoft. |
|
8. в зависимости от списка команд можно гибко настраивать поведение UPS, если драйвер/UPS поддерживает то или иное действие. |
h2. Источники |
|
10. shutdown.return --- данную опцию нужно проверять командой: upscmd \-l <имя_UPS>@localhost h3. ---- Использовались материалы со сторонних ресурсов: |
[http://www.ignix.ru/book/freebsd/daemon/network_ups_tools] |
... |
|
|
[http://redhat-club.org/2011/настройка-nut-2.4.3-с-ups-eaton-env-в-rhel-centos-6|http://redhat-club.org/2011/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-nut-2.4.3-%D1%81-ups-eaton-env-%D0%B2-rhel-centos-6] |
... |
|
|
[http://andy.od.ua/news_46.html] |
... |
|
[http://sysadminblog.sagrer.ru/stati-i-gajdy/linux/18-nastrojka-besperebojnika-na-primere-ippon-smart-powerpro-1000-v-linux.html] |
|
h2. Дополнительная информация |
|
Вероятное местоположение информации о типах используемых кабелей для подключения |
|
/app/base/usr/local/lib/nut/docs/images/cables /app/base/usr/local/lib/nut/docs/cables /usr/share/doc/nut-2.6.5/docs/cables /usr/share/doc/nut-2.6.5/docs/images/cables |
|
h3. Подбор параметров для драйвера |
|
Чтобы подобрать правильные параметры, можно попробовать запустить драйвер без запуска NUT. # Укажите параметры запуска драйвера в файле */etc/ups/ups.conf* по статье выше # Посмотрите возможные дополнительные опции в справке драйвера. например: {code}/sbin/blazer_usb -h{code} Вывод: {code}Network UPS Tools - Megatec/Q1 protocol USB driver 0.09 (2.6.5) |
|
usage: blazer_usb -a <id> [OPTIONS] -a <id> - autoconfig using ups.conf section <id> - note: -x after -a overrides ups.conf settings |
|
-V - print version, then exit -L - print parseable list of driver variables -D - raise debugging level -q - raise log level threshold -h - display this help -k - force shutdown -i <int> - poll interval -r <dir> - chroot to <dir> -u <user> - switch to <user> (if started as root) -x <var>=<val> - set driver variable <var> to <val> - example: -x cable=940-0095B |
|
Acceptable values for -x or ups.conf in this driver: |
|
Serial-over-USB subdriver selection : -x subdriver=<value> Regular expression to match UPS Manufacturer numerical ID (4 digits hexadecimal) : -x vendorid=<value> Regular expression to match UPS Product numerical ID (4 digits hexadecimal) : -x productid=<value> Regular expression to match UPS Manufacturer string : -x vendor=<value> Regular expression to match UPS Product string : -x product=<value> Regular expression to match UPS Serial number : -x serial=<value> Regular expression to match USB bus name : -x bus=<value> Apply the language ID workaround to the krauler subdriver (0x409 or 0x4095) : -x langid_fix=<value> Delay before UPS startup (minutes) : -x ondelay=<value> Delay before UPS shutdown (seconds) : -x offdelay=<value> Parameters used for runtime calculation : -x runtimecal=<value> Nominal charge time for UPS battery : -x chargetime=<value> Minimum load to be used for runtime calculation : -x idleload=<value> Skip reading rating information from UPS : -x norating Skip reading vendor information from UPS : -x novendor Preselect communication protocol (skip autodetection) : -x protocol Read The Fine Manual ('man 8 blazer'){code} # Запустите драйвер указав название UPS из */etc/ups/ups.conf* и включив повышенное логирование: {code}/sbin/blazer_usb -a myups -DDDDDDDDDD -q{code} Ниже представлен вывод в котором видно что UPS определился, драйвер отправил у нему команду, но в получил некорректный ответ по возможным протоколам: {code}Network UPS Tools - Megatec/Q1 protocol USB driver 0.09 (2.6.5) 0.000000 debug level is '10' 0.000531 Checking device (03F0/7029) (006/002) 0.000559 - VendorID: 03f0 0.000564 - ProductID: 7029 0.000567 - Manufacturer: unknown 0.000571 - Product: unknown 0.000574 - Serial Number: unknown 0.000578 - Bus: 006 0.000581 Trying to match device 0.000604 Device does not match - skipping 0.000611 Checking device (1D6B/0001) (006/001) 0.000623 - VendorID: 1d6b 0.000627 - ProductID: 0001 0.000631 - Manufacturer: unknown 0.000634 - Product: unknown 0.000638 - Serial Number: unknown 0.000641 - Bus: 006 0.000645 Trying to match device 0.000649 Device does not match - skipping 0.000654 Checking device (06DA/FFFF) (005/094) 0.013669 - VendorID: 06da 0.013687 - ProductID: ffff 0.013694 - Manufacturer: PPC 0.013701 - Product: HID UPS 0.013711 - Serial Number: BKX2BBH00482 0.013719 - Bus: 005 0.013725 Trying to match device 0.013783 Device matches 0.013806 failed to claim USB device: could not claim interface 0: Device or resource busy 0.014461 detached kernel driver from USB device... 0.014672 send_to_all: SETINFO ups.vendorid "06da" 0.014685 send_to_all: SETINFO ups.productid "ffff" 0.014699 send_to_all: SETINFO device.type "ups" 0.014710 send_to_all: SETINFO driver.version "2.6.5" 0.014719 send_to_all: SETINFO driver.version.internal "0.09" 0.014731 send_to_all: SETINFO driver.name "blazer_usb" 0.014739 Trying megatec protocol... 0.015812 send: Q1 1.017703 read: Connection timed out 1.017729 blazer_status: short reply 1.017736 Status read 1 failed 1.019690 send: Q1 2.021680 read: Connection timed out 2.021711 blazer_status: short reply 2.021720 Status read 2 failed 2.023667 send: Q1 3.025677 read: Connection timed out 3.025706 blazer_status: short reply 3.025715 Status read 3 failed 3.025722 Trying mustek protocol... 3.027667 send: QS 4.029707 read: Connection timed out 4.029727 blazer_status: short reply 4.029733 Status read 1 failed 4.031687 send: QS 5.033673 read: Connection timed out 5.033700 blazer_status: short reply 5.033706 Status read 2 failed 5.035721 send: QS 6.037674 read: Connection timed out 6.037697 blazer_status: short reply 6.037703 Status read 3 failed 6.037708 Trying megatec/old protocol... 6.039662 send: D 7.041704 read: Connection timed out 7.041734 blazer_status: short reply 7.041743 Status read 1 failed 7.043672 send: D 8.045670 read: Connection timed out 8.045693 blazer_status: short reply 8.045700 Status read 2 failed 8.047666 send: D 9.049676 read: Connection timed out 9.049703 blazer_status: short reply 9.049709 Status read 3 failed 9.049714 Trying zinto protocol... 9.051703 send: Q1 10.053674 read: Connection timed out 10.053699 blazer_status: short reply 10.053705 Status read 1 failed 10.055728 send: Q1 11.057670 read: Connection timed out 11.057692 blazer_status: short reply 11.057698 Status read 2 failed 11.059667 send: Q1 12.061677 read: Connection timed out 12.061701 blazer_status: short reply 12.061707 Status read 3 failed 12.061712 No supported UPS detected {code} # Попробуйте изменить данные в конфигурационном файле и повторить операцию. Если Вам удастся найти подходящий драйвер и параметры, UPS настроить возможно. |
|
h3. UPS INELT |
|
Устройства INELT ранее интегрировались с драйвером megatec, в текущей версии NUT - с драйвером blazer_ser: {code}cat /usr/share/driver.list | grep -i inelt "INELT" "ups" "2" "Monolith 1000LT" "" "blazer_ser" "INELT" "ups" "2" "Monolith 3000RT" "" "blazer_ser"{code}{code} |
|
{code} |
|
h3. UPS Ippon Smart Winner 1000 {note}Работает только при подключении к COM-порту\! *USB подключение не работает.*{note} |
|
Укажите следующие настройки драйвера: {code}[IpponSmartWinner1000] driver = blazer_ser port = /dev/ttyS0 default.battery.voltage.high = 26.00 #Напряжение при полном заряде default.battery.voltage.low = 20.80 #Напряжение разряденной батареи desc = "Ippon Smart Winner"{code} Параметры *default.battery.voltage.high* и *default.battery.voltage.low* могут отличаться для Ваших батарей. Посмотрите параметры батареи в сопроводительной документации или опытным путем, зарядив UPS на 100% и посмотрев значение battery.voltage ниже приведенной командой: {code}upsc IpponSmartWinner1000@localhost | grep 'battery.voltage:'{code} Таким же способом можно посмотреть вольтаж разряженной батареи. Полный набор возможных параметров драйвера Вы можете ухнать из его документации: [BLAZER_SER(8)|https://networkupstools.org/docs/man/blazer_ser.html] |
|
h3. Платформа корректно завершает работу, но сервер не выключается, а уходит в перезагрузку. |
|
Это может возникнуть по причине того что драйвер не распознает комнаду shutdown (не путать с shutdown.return), выполняемую стандартными скриптами CentOS 6 при выключении: |
|
Для решения проблемы найдите в скрипте */etc/init.d/halt* строку с текстом "Shutdown UPS drivers" и приведите скрипт к следующему виду: {code}# Shutdown UPS drivers if [ "$command" = /sbin/halt -a -f /etc/sysconfig/ups ]; then . /etc/sysconfig/ups if [ -z $POWERDOWNFLAG ]; then POWERDOWNFLAG=/etc/killpower fi if [ "$SERVER" = "yes" -a -f $POWERDOWNFLAG ]; then #/sbin/upsdrvctl shutdown #sleep 120 #/sbin/reboot --force : fi fi{code} Изменены тут три строчки в последнем "if": закоментирована отправка shutdown драйверу. |
|
h3. UPS PowerWare 9120 |
|
При подключении по USB используется драйвер bcmxcp_usb ([https://networkupstools.org/docs/man/bcmxcp_usb.html]). По умолчанию в его настройках задан параметр shudown_delay в 120 сек, подающий команду на выключение UPS через 120 секунд после перехода на батареи. Этого времени может не хватить для корректного завершения работы контейнеров, поэтому необходимо добавить в файл */etc/ups/ups.conf* строку {code}shutdown_delay = "120"{code} где 120 - изменяемое значение параметра в секундах. |
|
h3. Dummy UPS для тестов |
|
Для отладки и экспериментирования с параметрами можно воспользоваться [виртуальным UPS|https://networkupstools.org/docs/man/dummy-ups.html]. Для этог опонадобится слепок параметров реального UPS, которые можно будет динамический изменять. Таким образом, Вы сможете протестировать реакцию биллинга на изменение тех или иных параметров. Если у Вас пока нет UPS, Вы можете использовать данные параметры: {code}battery.charge: 100 battery.voltage: 27.40 battery.voltage.high: 26.00 battery.voltage.low: 20.80 battery.voltage.nominal: 24.0 device.type: ups driver.parameter.pollinterval: 2 driver.version: 2.6.5 driver.version.internal: 1.55 input.current.nominal: 4.0 input.frequency: 49.9 input.frequency.nominal: 50 input.voltage: 235.7 input.voltage.fault: 229.6 input.voltage.nominal: 220 output.voltage: 204.8 ups.beeper.status: enabled ups.delay.shutdown: 30 ups.delay.start: 180 ups.load: 0 ups.status: OL ups.temperature: 26.8 ups.type: offline / line interactive{code} Запишите их в файл */etc/ups/test.dev* и укажите следующие параметры UPS в */etc/ups/ups.conf*: {code}[dummy] driver = dummy-ups port = test.dev desc = "Dymmy ups for debugging Carbon UPS monitoring system"{code} Драйвер постоянно читает данные из файла test.dev, чтобы эмулировать переход на питание от сети или батарейки исправьте значение ups.status: * *OL* \- питание от сети * *OB* \- питание от батареи |
|
Добавьте init скрипт, который будет переписывать статус питания виртуального UPS при старте системы: {code}touch /etc/init.d/upstest chmod a+x /etc/init.d/upstest{code} Листинг скрипта: {code}#!/bin/bash |
|
sed 's/ups\.status.*/ups.status: OL/g' -i /etc/ups/test.dev{code} {info}Физический UPS можете по-разному реагировать на параметры заданные в */etc/ups/upsmon.conf*, поэтому результаты тестов не обязательно будут отражать поведение реального устройства{info} |
|
h3. После перезагрузки UPS не запускается |
|
В ряде случаев это может происходить. В качестве решения Вы можете перезапустить сервис UPS вручную: {code}service ups restart{code} И вызвать команду check_ups_status.sh чтобы проверить что интеграция с ИБП работает корректно: {code:title=Команда}check_ups_status.sh{code} {code:title=Примерный вывод (отличие будет в дате и hostname}2020-06-16 15:55:22 hostname check_ups_status.sh[23502:23604]: Обнаружен работающий UPS, база переводится в асинхронный режим{code} |
|
h3. Некорректный статус UPS, Ups status: BOOST |
|
Ошибка означает, что ИБП питается от сети электропитания, но повышает входное напряжение. Такое поведение можно встретить на ИБП APC серий Line-R, Back-UPS, Back-UPS PRO, Smart-UPS и APC AV. |
|
---- Дополнительная информация |
Подробней об этом можно почитать [на сайте APC|https://www.apc.com/us/en/faqs/FA158913/] |
|
Вероятное местоположение информации о типах используемых кабелей для подключения |
|
Проверить состояние вручную можно командой upsc, передав ему имя ИБП из конфигурационного файла ups.conf и хост (если подключен локально в COM или UPS - то всегда localhost) {code:title=Команда}upsc apc2200@localhost ups.status{code} {code:title=Вывод}BOOST OL{code} |
/app/base/usr/local/lib/nut/docs/images/cables |
/app/base/usr/local/lib/nut/docs/cables /usr/share/doc/nut-2.6.5/docs/cables /usr/share/doc/nut-2.6.5/docs/images/cables |
Если ошибка возникает постоянно, обратитесь за консультацией к инженеру-электрику чтобы он дал рекомендации как стабилизировать входное напряжение. Возможно, достаточно настроить значение напряжение при котором система AVR сообщает об активаии буста. Обратитесь к документации. |