Решение проблемы

Установка и настройка apcupsd на Hyper-V Server 2012 R2


Ранее я уже рассказывал об использовании утилиты управления упсами компании APC на примере гипервизоров Xenserver. Сейчас хочу рассказать о том, как установить и настроить apcupsd на Hyper-V Server 2012 R2. Это бесплатный гипервизор компании Microsoft без графической оболочки. Вся трудность только в этом, процесс установки на обычный сервер не представляет никаких проблем. Хотя тут тоже все просто, но может показаться кому-то не очевидным.

Введение

Установка и настройка apcupsd на Hyper-V Server 2012 R2

Ранее я рассказывал об устновке и настройке apcupsd на XenServer. Вся теоретическая часть есть там в начале и в конце статьи. В данном случае я предалагю использовать apcupsd в качестве клиента, который получает информацию об электропитании по сети от сервера, в которому подключен ups напрямую. Сам же сервер hyperv подключен к другому ups, который никак не мониторится и не управляется.

После отключения электричества гипервизор hyperv подождет момента, когда заряд батареи упса, подключенного к основному серверу упадет до уровня 50% или время работы от батареи будет ниже 20 минут и начнет завершение своей работы.

Установка apcupsd на hyper-v

Я буду считать, что вы установили и настроили бесплатный гипервизор Hyper-V по моей статье. Если это не так, то ориентируйтесь сами по ходу дела. Сначала нам нужно скачать программу под windows c официального сайта. Скачанный файл положите в любую папку на гипервизоре. В моем случае это папка C:soft. Подключайтесь к гипервизору по rdp и с помощью командной строки переходите в эту папку:

Запуск установки apcupsd на Hyper-V

Запускайте через командную строку установочный файл. Запустится стандартный инсталлятор:

Setup Wizard

Нажимаете Next и переходите к пункту выбора компонентов. Так как к моему серверу упс не подключается, мне не нужны драйвера, достаточно только службы, поэтому я вибираю только ее. Если планируете упс подключить к гипервизору, установите еще и драйвера:

Выбираем компоненты для установки

Выбираете пункт Install Apcupsd as a Service, запускать ее пока не надо

Установить apcupsd как службу

Если все прошло успешно, в конце увидите сообщение:

Успешная установка

На этом установка apcupsd на бесплатный гипервизор hyper-v 20012 r2 закончена. Переходим к настройке.

Настройка apcupsd

Установка и настройка apcupsd на Hyper-V Server 2012 R2

На компьютере, с которого происходит управление гипервизором открываете папку на серере, куда установили apcupsd. В моем случае это c:apcupsd. Дальше в папке etcapcupsd располагается конфигурационный файл apcupsd.conf, открываете его и редактируете. Не копируйте мой файл полностью, а укажите необходимые параметры у себя. В моем случае конфиг получился такой:

## apcupsd.conf v1.1 ##

#
# for apcupsd release 3.14.14 - win32-mingw
#
# "apcupsd" POSIX config file
UPSCABLE ether
UPSTYPE net
DEVICE 192.168.0.1:3551
SCRIPTDIR c:apcupsdetcapcupsd
PWRFAILDIR c:apcupsdetcapcupsd
NOLOGINDIR c:apcupsdetcapcupsd
ONBATTERYDELAY 6
BATTERYLEVEL 50
MINUTES 20
TIMEOUT 0
ANNOY 300
ANNOYDELAY 60
NOLOGON disable
KILLDELAY 0
NETSERVER off
NISIP 0.0.0.0
NISPORT 3551
EVENTSFILE c:apcupsdapcupsd.events
EVENTSFILEMAX 100
UPSCLASS standalone
UPSMODE disable
STATTIME 10
STATFILE c:apcupsdapcupsd.status
LOGSTATS off
DATATIME 0

Теперь можно запустить службу Apcupsd UPS Monitor в списке служб гипервизора. Сделать это можно с машины, которая настроена на управление гипервизором. В случае успешного запуска в папке c:apcupsd появятся 2 файла:

  • apcupsd.events
  • apcupsd.status

В первом файле будет информация о старте сервиса:

2016-09-12 15:59:40 +0300  apcupsd 3.14.14 (31 May 2016) mingw startup succeeded

Во втором информация об UPS:

APC : 001,027,0701

DATE : 2016-09-12 16:28:58 +0300
HOSTNAME : xm-hyperv
VERSION : 3.14.14 (31 May 2016) mingw
UPSNAME : xm-xen02
CABLE : Ethernet Link
DRIVER : NETWORK UPS Driver
UPSMODE : ShareUPS Master
STARTTIME: 2016-09-12 15:59:40 +0300
MASTERUPD: 2016-09-12 16:28:58 +0300
MASTER : 192.168.0.1:3551
MODEL : Smart-UPS C 1500
STATUS : ONLINE SLAVE
BCHARGE : 100.0 Percent
TIMELEFT : 75.0 Minutes
MBATTCHG : 50 Percent
MINTIMEL : 20 Minutes
MAXTIME : 0 Seconds
BATTV : 27.3 Volts
NUMXFERS : 0
TONBATT : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
STATFLAG : 0x07000408
SERIALNO : AS1525211660
NOMBATTV : 24.0 Volts
FIRMWARE : UPS 10.0 / ID=1005
END APC : 2016-09-12 16:28:58 +0300

На этом настройка apcupsd закончена. При наступлении времени выключения, гипервизор завершит работу всех виртуальных машин и выключится сам. Главное правильно подобрать время, чтобы сам гипервизор успел выключиться и не высохли батареи того упса, к которому подключен он сам. Ставьте приличный запас на всякий случай.

Обязательно нужно проверить, что на всех виртуальных машинах установлены службы интеграции, чтобы гипервизор мог корректно выключать виртуальные машины. Я не проверял, что будет, если службы интеграции не установлены. Может быть два варианта — либо принудительно завершит работу, либо вообще не завершит работу ни виртуалки, ни себя, а потом аварийно выключится, когда заряд батарей закончится.

Заключение

Вопрос корректного завершения работы гипервизоров при подключении к UPS достатчоно актуальный. Я не однократно сталкивался с такими вопросами в итернете. Какого-то надежного и популярного решения для этого я не встречал. В случае с XenServer или Hyper-V все решается относительно просто с помощью apcupsd. С VMware будет посложнее, но тоже возможно. Там UPS пробрасывают в виртуалку, настраивают apcupsd и с помощью скриптов по ssh отправляют команду на выключение на гипервизор. Я как-то пробовал так сделать, сходу не получилось, а отладить решение не было возможности. В итоге не стал разбираться. Данная схема мной уже проверена на практике и успешно работает.


СМОТРИ ТАКЖЕ