VMware завершение работы ESXI, инициированное APC UPS, соединенный через USB

Если количество запросов значительно превышает количество изменений в файлах затем, самый эффективный способ выполнить полнотекстовый поиск состоит в том, чтобы использовать предварительно созданный индекс, который обновляется, когда файлы добавлены, изменены или удалены.

Тип необходимого индекса зависит от типа поисков. Например, Вы ищете на словах или фразах? Вы хотите принять во внимание синонимы? Вы ищете на фрагментах слова?

Какие виды эффективности Вы ищете? Эффективность времени разработки? Эффективность в программном обеспечении, лицензирующем затраты? Эффективность процессорного времени? Дисковая IO эффективность? Путем Вы взвешиваете, они будут иметь большой эффект, на котором решение оптимально для Вас.

См. также Википедию

18
задан 4 January 2013 в 16:33
9 ответов

Согласно APC, это невозможно, и вам необходимо выключить Powerchute Network. Мы пробовали это несколько раз с USB и не нашли решения.

VMWare содержит информацию об использовании одобренного APC решения.

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

5
ответ дан 2 December 2019 в 20:20

Хотя это возможно (вероятно / обычно), я не думаю, что автоматическое выключение компьютера при питании от батареи - хорошая идея. Если вы собираетесь это сделать, то для большинства практических целей вам, вероятно, следует просто сэкономить деньги на ИБП с резервным питанием и позволить отключению питания вашей машины за вас. (Конечно, полное выключение всегда предпочтительнее потери мощности, но вы, похоже, упускаете момент, когда время работы от батареи превышает пару минут, если вы автоматически отключаете все, когда вы теряете питание. )

Я всегда с этим справлялся, чтобы мониторинг предупреждал SA при отключении питания, чтобы SA могли использовать свое серое вещество, чтобы решить, когда (или даже если) выключить серверы. Если это кратковременный сбой, может быть не совсем хорошей идеей выключать серверы, или вы можете оставить некоторые серверы работающими как можно дольше и выключить их только до того, как батарея вот-вот разрядится. На самом деле мне кажется, что задача принятия решений лучше подходит для человека, чем простое правило.

1
ответ дан 2 December 2019 в 20:20

В былые времена инсталляций без металлических компонентов , APC PowerChute Plus был важной частью моего процесса установки. Используя простой последовательный сигнальный кабель и их двоичный файл , предназначенный только для Red Hat , было легко установить правила для управления локально подключенным сервером. Были доступны базовые уведомления по электронной почте о событиях, связанных с аккумулятором UPC, событиях в сети и действиях по отключению:

POWERCHUTE MAIL MESSAGE
Message from PowerChute@Bonanza:

UPS on battery: Blackout 000.0 V. 

и

POWERCHUTE MAIL MESSAGE
Message from PowerChute@Bonanza:

Normal power restored: UPS on line.  

или

POWERCHUTE MAIL MESSAGE
Message from PowerChute@Bonanza:

Shutdown started.  

Плюс разумный интерфейс, чтобы увидеть, что происходит ...

enter image description here

Это программное обеспечение в конечном итоге стало коммерческим (или был похоронен на сайте APC). Было несколько подходов с открытым исходным кодом, чтобы обеспечить нечто подобное. Но все это усложняется с одним хостом VMWare ESXi.

Похоже, что VMWare должна была включить это в базовый гипервизор. Это' s базовый и может предложить достойный уровень защиты для пользователей. Наиболее распространенные средства, которые я вижу сейчас, - это переход через USB к выделенной виртуальной машине, подход сетевого демона или то, что я делаю; не настраивать автоматическое отключение или отключение батареи ...

Конечно, я обычно использую ИБП, который может поддерживать нагрузку системы в течение часа или более, но длительные перебои в работе ДЕЙСТВУЮТ. Возможно, в качестве альтернативы можно собрать несколько недорогих или отремонтированных сетевых карт и как минимум запланировать покупку устройств SmartUPS ...

1
ответ дан 2 December 2019 в 20:20

Взгляните на vSphere Management Assistant (vMA) из здесь Мы используем его в моем офисе для выполнения ваших задач, но со Smart-UPS, подключенным через USB, а не через Back-UPS.

2
ответ дан 2 December 2019 в 20:20

Вы можете рассмотреть возможность использования функции сквозной передачи USB-устройства гостю, на котором запущен PowerChute или другое программное обеспечение, способное отслеживать состояние ИБП и запускать завершение работы хоста ESXi ( например apcupsd ). ESXi официально поддерживает только очень ограниченное количество USB-устройств для сквозной передачи , но люди уже некоторое время подключают и передают через разные классы устройств с переменным успехом, но APC UPS USB, похоже, работает в соответствии с это пошаговое руководство для виртуальной машины Windows или это пошаговое руководство для виртуальной машины CentOS Linux .

4
ответ дан 2 December 2019 в 20:20

Да, это возможно. Вот подробности моей подобной настройки.

Конфигурация оборудования: APC Smart-UPS 1500 подключен к хосту ESXi 5.1 через USB. Виртуальная машина Linux, работающая на этом хосте ESXi. ИБП подключен к этой виртуальной машине с помощью опции сквозного подключения USB ESXi.

Конфигурация программного обеспечения: Главный NUT (Network UPS Tools), работающий на виртуальной машине, и собственный подчиненный сервер ESXi NUT, работающий на хосте ESXi.

Логика выключения: ВМ запускает драйвер ИБП usbhid-ups , который отвечает за связь с ИБП через USB. Процесс upsd подключается к ИБП через драйвер usbhid-ups и контролирует состояние ИБП. Главный процесс upsmon , работающий на том же компьютере, подключается к upsd и инициирует завершение работы. На хосте ESXi запущен второй экземпляр upsmon , который также подключается к той же виртуальной машине upsd через внутреннюю сеть.

При сбое питания выполняется следующая последовательность:

  1. UPS через usbhid-ups сообщает upsd о сбое питания.
  2. (необязательно, полезно, если вы хотите завершить работу через несколько минут вместо разряда батареи) upsmon на виртуальной машине инициирует upssched 5-минутный таймер. Таймер прерывается при восстановлении питания.
  3. Когда срабатывает таймер или когда ИБП сообщает о низком заряде батареи, upsmon поднимает флаг FSD (принудительное отключение) до upsd.
  4. В автономной конфигурации NUT флаг FSD отключит машину. Но здесь команда выключения заменяется простой записью типа «Я должен выключиться сейчас, но вместо этого я жду хост». И ничего не делает.
  5. Флаг FSD также считывается upsmon ESXi, который инициирует завершение работы хоста ESXi.
  6. Хост ESXi выключает все виртуальные машины одну за другой. Важно то, что виртуальная машина, на которой выполняется upsd, должна быть завершена последней (с использованием конфигурации последовательности запуска / завершения работы ESXi).
  7. Важно: на этой виртуальной машине должны быть установлены инструменты vmware. Когда он получает команду выключения гостя от хоста, запускается сценарий выключения vmware-tools. Этот сценарий проверяет наличие флага / etc / killpower . Если флаг отсутствует, он ничего не делает (это означает, что завершение работы Linux было активировано пользователем, а не событием UPS). Но если флаг существует (FSD активен), то этот сценарий отправляет ИБП команду отложенного отключения питания (скажем, через 3 минуты).
  8. После запуска сценария vmware-tools гостевая виртуальная машина завершает работу.
  9. ESXi видит последнюю Состояние выключения ВМ и само отключается (это занимает около 1 минуты, потому что в данный момент нет других работающих компьютеров).
  10. Через 2 оставшиеся минуты ИБП отключает питание.
  11. Когда питание восстанавливается, ESXi запускается и включается на всех виртуальных машинах. Сначала необходимо запустить систему мониторинга ИБП (та же конфигурация, что и для порядка выключения).

Загрузки:

NUT для Linux можно установить из пакета.

Встроенный клиент NUT для сервера ESXi можно загрузить по последней ссылке на этой странице: http://www.networkupstools.org/download.html

Здесь находятся некоторые мои скрипты и файлы конфигурации (только измененные показаны строки): http://pastebin.com/KkEeanK1

Примечания:

Конечно, есть более подробные сведения, и мне потребовалось некоторое время, чтобы заставить это работать должным образом. Но теперь он работает очень хорошо. Эта система учитывает случаи, когда вы просто выключаете мониторинговую виртуальную машину изнутри (сценарий vmware-tools не запускается), или если это инициированное хостом ESXi завершение работы виртуальной машины (нет флага / etc / killpower, поэтому нагрузка на ИБП не отключается), или если это выключение ESXi (то же самое). Единственное, что важно - запустить эту виртуальную машину как можно скорее после загрузки хоста и выключить ее в последнюю очередь (так что время простоя хоста предсказуемо - как сказано выше, это около 1 минуты для меня и еще 2 минуты я резервирую на всякий случай).

Моя виртуальная машина Linux, контролирующая ИБП, также является сервером общего доступа Samba / NFS для резервного хранилища, сервером NAT / DHCP для виртуальных машин и некоторыми другими легкими- весовые услуги. Он занимает около 22 МГц общих ресурсов ЦП ESXi и около 10 МБ активной оперативной памяти в режиме ожидания. Благодаря использованию NUT вы можете при необходимости питать больше устройств от одного и того же ИБП, и все они могут быть корректно отключены. Никаких PowerChute и / или дорогих карт сетевого монитора не требуется.

и все они могут быть отключены изящно. Никакого PowerChute и / или дорогой карты сетевого монитора не требуется.

и все они могут быть отключены изящно. Никаких PowerChute и / или дорогих карт сетевого монитора не требуется.

21
ответ дан 2 December 2019 в 20:20

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

0
ответ дан 2 December 2019 в 20:20

Супер вопрос. На самом деле это можно сделать довольно хорошо - по крайней мере, на некоторых настройках. Я пробовал следующий рецепт на нескольких хостах ESXi 5.5. В основном решение выглядит следующим образом:

  1. Включите SSH-доступ на вашем хосте ESXi
  2. Создайте виртуальную машину Linux - я использую Ubuntu. Вам потребуется лишь минимальная настройка - никакого графического интерфейса или чего-то еще.
  3. Подключите устройство APC через USB к хосту ESXi и передайте его на виртуальную машину Linux.
    • Убедитесь, что USB-контроллер, который вы добавляете к виртуальной машине, совпадает с фактическим физическим USB-контроллером, к которому подключено устройство APC, т.е. добавляйте контроллер XHCI только в том случае, если физическое устройство является устройством USB3. Несовпадения, кажется, вызывают странные проблемы в драйвере USB-устройства Linux.
    • Если что-то не работает и вы видите ошибки вроде ctrl urb status -62 в dmesg , скорее всего, физический контроллер не совпадает с контроллером в вашей виртуальной машине. Если совпадают - ну тогда проблема. У меня есть одна установка с таким типом проблемы, и реального решения для нее нет.
  4. Установите apcupsd на виртуальную машину Linux - в Ubuntu вы можете выполнить sudo apt-get install apcupsd установить последнюю версию. Проект NUT тоже хорош, но я традиционалист.
  5. Установите утилиту plink, выполнив sudo apt-get install putty-tools
  6. Подключитесь к хосту ESXI, выполнив plink root @ . Вы можете немедленно закрыть соединение. Цель состоит в том, чтобы сохранить ключ хоста, чтобы plink не запрашивал его снова, когда мы запускаем его через скрипт
  7. Edit /etc/apcupsd/apcupsd.conf и изменяем элементы ниже, чтобы они соответствие: UPSNAME <имя, которое вы хотите иметь для вашего ИБП> ИБП USB UPSTYPE USB # DEVICE DIRECTIVE должно быть пустым для USB. УСТРОЙСТВО Также убедитесь, что / etc / default / apcupsd имеет ISCONFIGURED = yes
  8. Отредактируйте / etc / apcupsd / apccontrol и прокрутите до doshutdown дело. Сделайте так: doshutdown) echo «ИБП $ {2} инициировал последовательность выключения» | $ {WALL} # Завершить работу косвенно, запустив хост ESXi для выполнения # завершение работы с помощью инструментов VMWare / usr / bin / plink root @ -pw <ваш корневой pw> "/sbin/shutdown.sh && / sbin / poweroff" ;;
  9. Перезапустите apcupsd с помощью sudo service apcupsd restart и посмотрите, работает ли что-то, вызвав apcaccess . Если нет, проверьте журналы и dmesg
  10. . Убедитесь, что на всех виртуальных машинах, которым необходимо корректно завершить работу в случае сбоя питания, установлены инструменты VMWare. Также убедитесь, что они входят в список запуска / завершения работы виртуальной машины (в веб-клиенте vSphere перейдите по адресу: vCenter -> <ваш хост> -> Управление -> Настройки -> Запуск / завершение работы виртуальной машины ) . Убедитесь, что действие выключения - выключение гостевой ОС.

После того, как вы все это запустите, скриптлет doshutdown из шага 8 запускается при сбое питания. Это, в свою очередь, вызывает сценарий shutdown.sh на хосте ESXi, который сигнализирует пакету VMWare Tools в каждой виртуальной машине на вашем хосте выполнить полное завершение работы через гостевую ОС. По моему опыту, он работает лучше, чем программное обеспечение PowerChute от APC.

Если вам нравится контролировать вещи с ваших виртуальных машин, вы можете настроить на них подчиненные экземпляры apcupsd, которые подключаются к главной виртуальной машине Linux управления ИБП. В ваших подчиненных файлах apcupsd.conf должна быть такая запись:
UPSTYPE net : 3551
Записи, подобные UPSCABLE , в данном случае не имеют значения. Это работает и с версией apcupsd для Windows (доступной здесь ) также. Вы можете использовать прилагаемый apctray.exe , чтобы проверить текущее состояние вещей.

Я думаю, это в значительной степени покрывает это.

14
ответ дан 2 December 2019 в 20:20

Я использовал решение MrMajestyk и только изменил доступ ssh через plink с доступом ssh без пароля с использованием открытого ключа rsa. Ключ rsa, сгенерированный на виртуальной машине apcupsd, должен быть включен в / etc / ssh / keys-root / authorized_keys хоста vmware.

0
ответ дан 2 December 2019 в 20:20

Теги

Похожие вопросы