Я отправляю несколько серверов ESXi 5.1 в удаленные офисы, где они будут получать питание от ИБП APC.
Я хотел бы, чтобы ИБП инициировал отключение подключенного сервера - тогда я бы положился на конфигурацию ESXi, чтобы позаботиться о выключении / приостановке виртуальных машин, размещенных на нем.
Я вижу, что у APC есть решение, задокументированное с использованием их PowerChute Network Shutdown , но это включает в себя настройку дополнительного сервера для каждого офиса и требует сетевых карт на каждом ИБП. Обычно мы используем ИБП без сетевой карты (например, Back-UPS Pro) - они поставляются с разъемом USB, и они легко доступны в местах, где находятся наши офисы.
Как я могу подключить ИБП к хосту ESXi через USB, чтобы ESXi обнаружил перебои в питании и затем действовал соответствующим образом? Кому-нибудь удалось это сделать.
Ответы:
Согласно APC, это невозможно, и вам требуется отключение Powerchute Network. Мы пробовали это несколько раз с USB и не нашли решения.
VMWare имеет здесь информацию об использовании одобренного APC решения.
Также можно подумать, что SmartUPS будет лучшим выбором, и вы сможете использовать его с сетевой картой. Естественно, больше денег, но если ваши серверы вообще важны, эта стоимость должна стоить того. Также дает вам больше мониторинга и оповещений, которые могут быть полезны на удаленном сайте. Вам также необходимо обеспечить достаточное время выполнения для всех виртуальных машин для корректного выключения, а затем выключения хоста.
источник
Да, это возможно. Вот подробности моей аналогичной установки.
Конфигурация оборудования: APC Smart-UPS 1500 подключен к хосту ESXi 5.1 через USB. Виртуальная машина Linux, работающая на этом хосте ESXi. ИБП подключен к этой виртуальной машине с помощью опции сквозного подключения ESXi USB.
Конфигурация программного обеспечения: мастер NUT (Network UPS Tools), работающий на виртуальной машине, и собственный ведомый NUT ESXi, работающий на хосте ESXi.
Логика выключения: VM запускает драйверы ИБП, которые отвечают за связь с ИБП через USB. Процесс upsd подключается к ИБП через драйвер usbhid-ups и отслеживает состояние ИБП. Главный процесс upsmon, запущенный на той же машине, подключается к upsd и инициирует завершение работы. На хосте ESXi запущен второй экземпляр upsmon, который также подключается к той же виртуальной машине upsd через внутреннюю сеть.
При сбое питания происходит следующая последовательность:
Загрузки:
NUT для Linux может быть установлен из пакета.
Собственный клиент NUT для сервера ESXi можно загрузить по последней ссылке на этой странице: http://www.networkupstools.org/download.html.
Некоторые мои скрипты и файлы conf находятся здесь (показаны только измененные строки): http://pastebin.com/KkEeanK1
Примечания:
Конечно, есть еще детали, и мне потребовалось некоторое время, чтобы все заработало как надо. Но сейчас это работает очень хорошо. Эта система учитывает случаи, когда вы просто выключаете виртуальную виртуальную машину изнутри (сценарий vmware-tools не запускается) или если это отключение виртуальной машины, инициированное хостом ESXi (без флага / etc / killpower, поэтому загрузка ИБП не отключается), или если это отключение ESXi (то же самое). Единственное, что важно - это запустить эту виртуальную машину как можно скорее после загрузки хоста и завершить ее в последний раз (поэтому время простоя хоста предсказуемо - как сказано выше, для меня это составляет около 1 минуты и еще 2 минуты, которые я оставляю на всякий случай).
Мой ИБП, контролирующий виртуальную машину Linux, также является сервером общего доступа Samba / NFS для резервного копирования, сервером NAT / DHCP для виртуальных машин и некоторыми другими облегченными службами. Требуется около 22 МГц общих ресурсов процессора ESXi и около 10 МБ активной памяти в режиме ожидания. Благодаря использованию NUT вы можете при необходимости питать больше устройств от одного ИБП, и все они могут быть отключены изящно. Не требуется PowerChute и / или дорогая карта сетевого монитора.
источник
Супер вопрос. На самом деле это можно сделать довольно хорошо - по крайней мере, на некоторых установках. Я попробовал следующий рецепт на нескольких хостах ESXi 5.5. По сути, решение выглядит так:
ctrl urb status -62
вdmesg
, скорее всего, физический контроллер не совпадает с контроллером в вашей виртуальной машине. Если они совпадают - тогда это проблема. У меня есть одна установка с такой проблемой и нет реального решения.apcupsd
на Linux VM - в Ubuntu вы можете сделать,sudo apt-get install apcupsd
чтобы установить последнюю версию. Проект NUT тоже хорош, но я традиционалист.sudo apt-get install putty-tools
plink root@<your ESXi host IP>
. Вы можете немедленно закрыть соединение. Цель состоит в том, чтобы сохранить ключ хоста, чтобы plink не запрашивал его снова, когда мы запускаем его через скрипт/etc/apcupsd/apcupsd.conf
и изменять пункты ниже , чтобы они соответствуют:UPSNAME < the name you'd like your UPS to have > UPSCABLE usb UPSTYPE usb # DEVICE DIRECTIVE should be blank for USB DEVICE
Также убедитесь , что/etc/default/apcupsd
естьISCONFIGURED=yes
/etc/apcupsd/apccontrol
и выделитеdoshutdown
кейс. Сделайте так, чтобы это выглядело так:doshutdown) echo "UPS ${2} initiated Shutdown Sequence" | ${WALL} # Shut down indirectly by triggering the ESXi host to do the # shutdown via VMWare tools /usr/bin/plink root@< your ESXi host IP > -pw < your root pw > "/sbin/shutdown.sh && /sbin/poweroff" ;;
sudo service apcupsd restart
и посмотрите, все ли работает, вызвавapcaccess
. Если нет, проверьте логи и dmesgvCenter -> <your host> -> Manage -> Settings -> VM Startup/Shutdown
. Убедитесь, что действие завершение работы заключается в выключении гостевой ОС.Как только вы запустите все это,
doshutdown
скриптлет из шага 8 будет вызван при сбое питания. В этом случае вызывается сценарий shutdown.sh на хосте ESXi, который сигнализирует пакету инструментов VMWare в каждой виртуальной машине на вашем хосте о необходимости полного отключения через гостевую ОС. По моему опыту, он работает лучше, чем программное обеспечение PowerChute от APC.Если вы хотите отслеживать вещи с ваших виртуальных машин, вы можете настроить на них экземпляры ведомого apcupsd, которые подключаются к основной виртуальной машине Linux управления ИБП. Ваши ведомые файлы apcupsd.conf должны иметь такую запись:
UPSTYPE net < your UPS control VM IP >:3551
Записи, подобные
UPSCABLE
и такие, не имеют значения в этом случае. Это работает и с версией Windowsapcupsd
(доступна здесь ). Вы можете использовать включенный,apctray.exe
чтобы проверить текущее состояние вещей.Это в значительной степени покрывает это, я думаю.
источник
doshutdown
последовательность. Мы добавили${APCUPSD} --killpower
прямо перед/usr/bin/plink
деталью, чтобы ИБП отключился через некоторое время и автоматически перезапустился, когда питание вернется. Также стоит отметить, что шаг 6 должен быть выполнен какroot
приобретенный черезsu
илиsudo su
, но не такsudo -s
.Возможно, вы захотите использовать функцию сквозного подключения USB-устройства к гостю, на котором запущен PowerChute или другое программное обеспечение, способное контролировать состояние ИБП и способное инициировать отключение на хосте ESXi (например, apcupsd ). ESXi официально поддерживает только очень ограниченное количество USB-устройств для сквозного прохождения, но люди уже с переменным успехом подключают и проходят через разные классы устройств, но USB-APC UPS, кажется, работает в соответствии с этим пошаговым описанием для виртуальной машины Windows или этот для CentOS Linux VM .
источник
Посмотрите на vSphere Management Assistant (vMA) отсюда. Мы используем его в моем офисе, чтобы делать то, что вы пытаетесь, однако с Smart-UPS, подключенным через USB, а не Back-UPS.
источник
Хотя это возможно (возможно / в целом), я не думаю, что автоматическое отключение компьютера от батареи является хорошей идеей. Если вы собираетесь это сделать, то для большинства практических целей и задач вам, вероятно, следует просто сэкономить деньги на ИБП с батарейным питанием и позволить потере мощности отключить вашу машину для вас. (Конечно, чистое отключение всегда предпочтительнее потери питания, но вы, похоже, упускаете момент, когда время работы от батареи превышает пару минут, если вы автоматически выключаете все, когда теряете подачу питания. )
Я всегда обращался с этим с помощью мониторинга оповещений SA при отключении питания, чтобы SA могли использовать свое серое вещество, чтобы решить, когда (или даже если) отключить серверы. Если это кратковременное отключение, возможно, не стоит вообще отключать серверы, или вы можете оставить некоторые серверы включенными и работать как можно дольше, и отключать их только до того, как батарея вот-вот разрядится. Мне действительно кажется, что задача принятия решений лучше подходит человеку, чем простому правилу.
источник
В старые времена установки без использования металла APC PowerChute Plus был неотъемлемой частью моего процесса установки. Используя простой последовательный сигнальный кабель и их двоичный файл только для Red Hat , было легко настроить правила для управления локально подключенным сервером. Основные уведомления по электронной почте о событиях батареи UPC, событиях питания линии и действиях по отключению были доступны:
и
или
Плюс разумный интерфейс, чтобы увидеть, что происходит ...
Это программное обеспечение в конечном итоге стало коммерческим (или было похоронено на сайте APC). Было несколько подходов с открытым исходным кодом, чтобы обеспечить нечто подобное. Но все это усложняется с отдельными хостами VMWare ESXi.
Кажется, что это то, что VMWare должен был включить в базовый гипервизор. Он базовый и может предложить пользователям достойный уровень защиты. Наиболее распространенные средства, которые я вижу сейчас, - это переход через USB на выделенную виртуальную машину, сетевой демон или выполнение того, что я делаю; не настраивать автоматическое отключение или отключение батареи ...
Конечно, я обычно иду с ИБП, который может поддерживать нагрузку на систему в течение часа или более, но длительные перерывы в работе действительно случаются. Возможно, альтернативой является сбор нескольких недорогих или отремонтированных сетевых карт и планирование покупки устройств SmartUPS как минимум ...
источник
Проверьте следующую ссылку . Не самое элегантное решение, но очень практичное, очень простое решение. Возможны недостатки с точки зрения безопасности (в зависимости от вашей конкретной конструкции сети, гостей, загруженных на хосты, и доступа пользователей к этим гостям, но вы можете сделать этот звонок.
источник
Я использовал решение MrMajestyk и изменил ssh-доступ только через plink с ssh-доступом без пароля, используя открытый ключ rsa. Ключ rsa, сгенерированный в виртуальной машине apcupsd, должен быть включен в / etc / ssh / keys-root / authorized_keys хоста vmware.
источник