Yvision.kz
kk
Разное
Разное
399 773 постов42 подписчика
Всяко-разно
0
08:33, 06 апреля 2016

Коротко: Настройка NUT для корректного отключения сервера подключенного к UPS

Предистория: Есть автономный (standalone) сервер виртуализации на KVM (CentOS 6). На нем крутиться много виртуальных машин. Он подключен к источнику бесперебойного питания (ИБП) модели APC Back-UPS XS 1100CI.

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

Blog post image

Чтобы корректно отключать сервер KVM и обезопасить батареи UPS от преждевременного изнашивания, решено было настроить службу NUT.

Этот демон помогает отключать сервер при низком/среднем заряде батарей.

Обычно UPS подсоединяется к серверу (ПК) через USB кабель, позволяя программно считывать служебные  данные о уровне заряда. Мы настроим NUT так, чтобы он считывал эти данные, и в случае низкого или среднего заряда, отключал корректно сервер. Нам потребуется указать в конфигурационных файлах NUT параметры которые определят нужное поведение.

Возможно записка не корректна, буду исправлять ошибки в будущем.

1. Устанавливаем NUT

# yum install nut

Ставим сам NUT:

# yum install nut nut-client -y

Ставим утилиту lsusb которая покажет инфу по USB подключениям:

# yum install usbutils -y

2. Настраиваем NUT

До настройки NUT потребуется узнать данные о USB подключении UPS к ПК. Для этого мы установили утилиту lsusb, и теперь надо ее запустить. Обычно у UPS нашей модели VID и PID следующие 051d и 0002.

Вводим их как параметры для утилиты lsusb:

# lsusb -vd 051d:0002 | grep iSerial

В ответ получаем серийный номер:

iSerial                 2 3B1435X33042

Все, теперь настраивает подключение непосредственно в NUT, для этого открываем файл NUT - /etc/ups/ups.conf
И добавляем в него описание подключения к нашему UPS:
[apc]
driver = usbhid-ups
port = auto
vendorid = 051d
productid = 0002
desc = "APC 1100"
serial = 3B1435X33042
default.battery.voltage.high = 55
default.battery.voltage.low = 47
default.battery.voltage.nominal = 48

Здесь мы указали что NUT может обращаться к нашему UPS по имени "apc". Также указали параметры подключения по USB порту. Плюс к этим настройкам добавили такие интересные параметры как максимальный, минимальный и номинальный заряд. Когда заряд опустится до минимального, NUT скомандует серверу, пошлет "shutdown -h", тем самым отключив сервер.

Теперь надо открыть файл /etc/ups/upsd.users

# vi /etc/ups/upsd.users
И вписать в него пользователей которым можно управлять отключением сервера:
[admin]
password = password
actions = SET
instcmds = ALL
upsmon master
Теперь открываем файл /etc/ups/upsmon.conf
Этот файл будет вызываться когда заряд будет минимальным.
Как видно из этого конфиг, у нас есть строчка "shutdown -h +0" - отключающая сервер.
# vi /etc/ups/upsmon.conf
MONITOR apc@localhost 1 admin password master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 0

Ставим NUT в автозагрузку и запускаем его:

# chkconfig ups on

# service ups start

3. Проверка

Соединяемся с UPS:

# upsc apc@127.0.0.1

battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50
battery.date: 2001/09/25
battery.mfr.date: 2016/02/26
battery.runtime: 2046
battery.runtime.low: 120
battery.type: PbAc
battery.voltage: 27.1
battery.voltage.high: 55
battery.voltage.low: 47
battery.voltage.nominal: 48
device.mfr: American Power Conversion
device.model: Back-UPS XS 1100CI
device.serial: 3B1435X33042
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.productid: 0002
driver.parameter.serial: 3B1435X33042
driver.parameter.vendorid: 051d
driver.version: 2.6.5
driver.version.data: APC HID 0.95
driver.version.internal: 0.37
input.sensitivity: medium
input.transfer.high: 280
input.transfer.low: 150
input.voltage: 220.0
input.voltage.nominal: 230
ups.beeper.status: enabled
ups.delay.shutdown: 20
ups.firmware: 920.T2 .I
ups.firmware.aux: T3
ups.load: 23
ups.mfr: American Power Conversion
ups.mfr.date: 2014/08/31
ups.model: Back-UPS XS 1100CI
ups.productid: 0002
ups.realpower.nominal: 660
ups.serial: 3B1435X33042
ups.status: OL
ups.test.result: No test initiated
ups.timer.reboot: 0
ups.timer.shutdown: -1
ups.vendorid: 051d
 

Ссылки:

1. http://www.linux.org.ru/forum/general/11819225

0
3181
0