Ранее я уже рассказывал об использовании утилиты управления упсами компании APC на примере гипервизоров Xenserver. Сейчас хочу рассказать о том, как установить и настроить apcupsd на Hyper-V Server. Это бесплатный гипервизор компании Microsoft без графической оболочки. Вся трудность только в этом, процесс установки на обычный сервер не представляет никаких проблем. Хотя тут тоже все просто, но может показаться кому-то не очевидным.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Введение
Ранее я рассказывал об устновке и настройке 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. Дальше в папке \etc\apcupsd располагается конфигурационный файл 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:\apcupsd\etc\apcupsd PWRFAILDIR c:\apcupsd\etc\apcupsd NOLOGINDIR c:\apcupsd\etc\apcupsd 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:\apcupsd\apcupsd.events EVENTSFILEMAX 100 UPSCLASS standalone UPSMODE disable STATTIME 10 STATFILE c:\apcupsd\apcupsd.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 отправляют команду на выключение на гипервизор. Я как-то пробовал так сделать, сходу не получилось, а отладить решение не было возможности. В итоге не стал разбираться. Данная схема мной уже проверена на практике и успешно работает.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Здравствуйте Владимир! Спасибо за знакомство с apcupsd
Сервер с двумя блоками питания, один в розетку, второй через ИБП APC серии Back-UPS. После сбоя электричества ИБП не включился.
В диспетчере устройств Hyper-V ибп отображается на порту USB и живое.
Можно ли при помощи apcupsd включить ИБП? В apcupsd.conf не нашел подходящего параметра.
Не знаю, не видел такой возможности. УПСы по идее только с кнопки включаются, если они совсем обесточены.
Кнопкой его не выключали. Он разрядился, а после появления электричества, а так полагаю зарядился и доступен по USB
То есть он не подаёт напряжение на розетки, хотя заряжен и включен?
Доброе.
А email-уведомления не пробовали настривать? есть какие-то подводные там?...
Я отредактировал два файла on|offbattery, но что-то писем не шлет...
Не пробовал. Я все уведомления замыкаю на мониторинг Zabbix. Статус apcupsd я там же наблюдаю.
У меня уведомления заработали на другом сервере, который подключен к этому hyper-v УПСу. А из под самого гипервизора уходить не хотят. Не понятно пока что режет, но не файер.
Разобрался. В Hyper-v server нет встроенных CDO библиотек для исполнения этого скрипта.
Но их установка тот еще головняк, просто dll не зарегистрировать, у нее куча других связей.
Здравствуйте. А как сделать так, что бы, после выключения компа, отключался блок розеток, а когда электричество появлялось - то Ups включался и подавал питание на розетки?
Не знаю. Это зависит от возможностей самого упса.
Еще такой момент, когда система выключается, выходит сообщение system halted, а комп не отключается, то есть, вентиляторы крутятся. Poweroff - все норм, отключается полностью.
Здравствуйте. А не подскажите, правильно ли я сделал, хочется реализовать данную функцию, на Windows Server 2012 R2, но UPS подключены по USB APC 1500 и 1000.
Получилось:
UPSNAME Smart-UPS1
UPSCABLE usb
UPSTYPE usb
DEVICE
ONBATTERYDELAY 6
BATTERYLEVEL 5
MINUTES 3
TIMEOUT 0
ANNOY 0
ANNOYDELAY 60
NOLOGON disable
NETSERVER on
EVENTSFILE /var/log/apcupsd.events
EVENTSFILEMAX 100
UPSCLASS standalone
UPSMODE disable
STATTIME 60
STATFILE /var/log/apcupsd.status
LOGSTATS on
DATATIME 60
Не понял, в чем вопрос? Формат конфига apcupsd на всех системах одинаковый.
Вопрос в коде, все верно ли написано, потому что ругается, что не видит UPSы, но при этом в Диспетчере они есть
"31.08.2018 at 13:07
Здравствуйте. А не подскажите, правильно ли я сделал, хочется реализовать данную функцию, на Windows Server 2012 R2, но UPS подключены по USB APC 1500 и 1000."
Тоже самое, оборудование такое же Windows Server 2012 R2 и USB APC 1500
один из вариантов установки apcupsd требует замены драйверов на те, что идут в комплекте с apcupsd, делается это командой
pnputil -i -a c:\apcupsd\driver\apcupsd.inf
потом вылезет окошко, на которое надо согласиться.
При ручном обновлении драйвера из диспетчера устройств ни в какую не хотел стартовать драйвер. Благодарю за совет