Ранее я уже рассказывал об использовании утилиты управления упсами компании APC на примере гипервизоров Xenserver. Сейчас хочу рассказать о том, как установить и настроить apcupsd на Hyper-V Server. Это бесплатный гипервизор компании Microsoft без графической оболочки. Вся трудность только в этом, процесс установки на обычный сервер не представляет никаких проблем. Хотя тут тоже все просто, но может показаться кому-то не очевидным.
Введение
Ранее я рассказывал об устновке и настройке apcupsd на XenServer. Вся теоретическая часть есть там в начале и в конце статьи. В данном случае я предлагю использовать apcupsd в качестве клиента, который получает информацию об электропитании по сети от сервера, в которому подключен ups напрямую. Сам же сервер hyperv подключен к другому ups, который никак не мониторится и не управляется.
После отключения электричества гипервизор hyperv подождет момента, когда заряд батареи упса, подключенного к основному серверу упадет до уровня 50% или время работы от батареи будет ниже 20 минут и начнет завершение своей работы.
Установка apcupsd на hyper-v
Я буду считать, что вы установили и настроили бесплатный гипервизор Hyper-V по моей статье. Если это не так, то ориентируйтесь сами по ходу дела. Сначала нам нужно скачать программу под windows c официального сайта. Скачанный файл положите в любую папку на гипервизоре. В моем случае это папка C:soft. Подключайтесь к гипервизору по rdp и с помощью командной строки переходите в эту папку:
Запускайте через командную строку установочный файл. Запустится стандартный инсталлятор:
Нажимаете Next и переходите к пункту выбора компонентов. Так как к моему серверу упс не подключается, мне не нужны драйвера, достаточно только службы, поэтому я вибираю только ее. Если планируете упс подключить к гипервизору, установите еще и драйвера:
Выбираете пункт Install Apcupsd as a Service, запускать ее пока не надо
Если все прошло успешно, в конце увидите сообщение:
На этом установка apcupsd на бесплатный гипервизор hyper-v закончена. Переходим к настройке.
Настройка apcupsd
На компьютере, с которого происходит управление гипервизором открываете папку на серере, куда установили 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 отправляют команду на выключение на гипервизор. Я как-то пробовал так сделать, сходу не получилось, а отладить решение не было возможности. В итоге не стал разбираться. Данная схема мной уже проверена на практике и успешно работает.
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.