Корректное завершение работы бесплатной версии VMWare ESXi 5.1 с помощью APC PowerChute Business Edition

Правильное завершение работы гипервизора ESXi настолько же важно как завершение работы любой операционной системы. И если, например для Windows настройка PowerChute Business Edition (PCBE) не должна составить особого труда, то для использования PCBE в ESXi есть свои нюансы.  Теперь по порядку.

Установка vSphere Management Assistant (vMA)

vSphere Management Assistant – это готовая виртуальная машина, которая выполняет функции управления хостами и виртуальными машинами через интерфейс командной строки.
Скачать vMA можно с официального сайта по ссылке. Инсталляционный пакет представляет собой ZIP-архив, объем которого составляет 562 Mb (для vMA 5.0).
После закачки архива его необходимо распаковать на локальный компьютер. В результате распаковки у вас должны быть 4 файла с расширениями: . vmdk, . cert, . mf, . ovf.
Далее необходимо импортировать виртуальную машину в ESXi. Для этого запускаем VMware vSphere Client и выбираем пункт Deploy OVF Template из меню File.


Выбираем OVF-файл на локальном компьютере (в данном примере vMA-5.0.0.2-724898_OVF10.ovf) и нажимаем «Next».
Далее следуя шагам мастера импорта, соглашаемся с условиями пользовательского соглашения, указываем название виртуальной машины, хранилище и тип диска.


В последнем окне мастера импорта нажимаем Finish и начинается процесс установки vMA.

Настройка VMA

При первом включении vMA вам будет предложено произвести настройку сети для виртуальной машины и ввести имя хоста.


Далее вам будет предложено ввести пароль для административной учетной записи vi-admin. Когда пароль будет введен, vMA полностью загрузится и будет готова к работе.


Подключение к vMA физического COM-порта сервера ESXi

Подключение COM-порта должно происходить при выключенной виртуальной машине vMA. Нам нужно зайти в свойства виртуальной машины и добавить оборудование.



В диалоге добавления нового оборудования выбираем пункт Serial Port.



Далее указываем, что мы будем использовать физический порт сервера.



В следующем окне диалога оставляем все по умолчанию.


После чего завершаем процесс добавления COM-порта и включаем виртуальную машину.

Установка PowerChute Business Edition Agent на vMA

Для установки PCBE нужно скачать установочный пакет с официального сайта APC и скопировать его на vMA. Как это сделать описано тут.

Далее запускаем инсталлятор при помощи команды:

sudo ./install_pbeagent_linux.sh



На первом этапе инсталляции нам предложат выбрать какой тип порта используется в вашем ИБП. В моем случае это DB9.



На следующем этапе нужно ввести имя пользователя и пароль для доступа к PowerChute Business Edition Agent, указать тип сигнального кабеля и номер COM-порта.


Далее нужно добавить сервер ESXi для выключения при помощи PCBE. Для этого вводим ip-адрес, имя пользователя (root) и пароль хоста ESXi.


На последнем этапе установки нам предложат запустить PowerChute Business Edition Agent. Выбираем Yes.

Скрипт shutdownHostViaSOAPAPICall.pl и PCBE

Завершать работу хоста мы будем при помощи скрипта shutdownHostViaSOAPAPICall.pl
 

Скачиваем этот скрипт на локальный компьютер и помещаем его в какую-нибудь папку (в нашем примере APC_shutdown). Вводим в следующих строках скрипта имя пользователя (root) и пароль хоста ESXi.

my $host_username = 'root';
my $host_password = '<пароль ESXi>';


Далее в этой же папке создаем пустой текстовый файл hosts. Файл hosts должен содержать список ip-адресов хостов ESXi, на которых скприпт будет завершать работу.
 

Как вы уже, наверное, заметили название скрипта слишком длинное, поэтому для удобства использования можно переименовать его (например в shutdown.pl)

Теперь нам нужно скопировать папку APC_shutdown на vMA. Скопируем ее в директорию пользователя vi-admin.



Меняем права на файл shutdown.pl


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

cd /home/vi-admin/APC_shutdown
sudo ./shutdown.pl hosts


Если появляется следующая ошибка,




то открываем файл shutdown.pl для редактирования и добавляем строку $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0; перед строкой use strict;

В результате выполнения скрипта хост ESXi должен завершить работу виртульных машин в соответствии с порядком определенном в разделе Virtual Machine Startup and Shutdown в VMware vSphere Client и выключиться сам.

Далее создаем командный файл shutdown.sh, который будет запускать скрипт. Вот его содержание:


#!/bin/sh
echo APC shutdown is start
/home/vi-admin/APC_shutdown/shutdown.pl   /home/vi-admin/APC_shutdown/hosts

 

Копируем его в папку /opt/APC/PowerChuteBusinessEdition/Agent/cmdfiles/



И меняем на его права.



Настройка PowerChute Business Edition Agent на vMA

Теперь настроим непосредственно сам PCBE Agent. Подключаемся через web-браузер по адресу https://<ip-адрес vMA >:6547
 

Браузер выдаст предупреждение, что соединение является недоверенным. Добавляем исключение.


Далее вводим имя пользователя и пароль, которые мы указали при инсталляции PCBE Agent.



После входа выбираем пункт Shutdown Settings и устанавливаем параметры Low Battery Signal и OS Shutdown Duration. В пункте Low Battery Signal указывается время до полного разряда батареи, при  котором возникнет это событие. OS Shutdown Duration обозначает время необходимое для полного выключения ОС (в нашем случае ESXi).



Теперь заходим в раздел Actions и выбираем пункт Low Battery.


Здесь включаем выполнение командного файла и выбираем, какой файл будет выполняться. А также отмечаем пункт Initiate Shutdown Sequence.



Теперь рассмотрим, что будет происходить, когда пропадет электричество. PCBE Agent будет ждать, когда наступит событие Low Battery. После будет выполнен командный файл. Затем Agent пошлет команду на завершение работы ОС и по завершении времени, указанном в OS Shutdown Duration, ИБП должен выключиться.

На этом можно было бы, и завершить статью, но на самом деле при таких настройках завершается работа ESXi, но сам ИБП не выключается. Почему так происходит? Дело в том, что PCBE Agent не успевает послать сигнал ИБП о том, что наступило событие  OS Shutdown, т.к. до наступления этого события командный файл shutdown.sh завершает работу vMA вместе с агентом. 

Как тут быть? Очевидно, что нужно чтобы сначала агент смог послать ИБП сигнал о начале завершении работы ОС, а уже потом  выключать хост при помощи командного файла. Для этого в командном файле shutdown.sh нужно добавить еще одну строку:



Т.е. перед выполнением скрипта будет пауза 10 секунд, которая позволит агенту послать ИБП сигнал о начале завершении работы ОС. Тут можно было бы точно завершить статью, но нет, есть еще один подводный камень))

Он связан с особенностями работы PCBE Agent. Дело в том, что есть в настройках агента параметр Command File Execution Duration, который задает время выполнения командного файла. И даже если задать время 0 мин 0 сек, время выполнения все равно будет равным 1 минуте и через PCBE Agent это никак не исправить. 

Что делать? Тут есть два варианта. Первый: установить паузу в командном файле больше 1 минуты (например, sleep 70). Второй: все-таки каким-то образом изменить этот параметр. Делается это через PCBE Server. Нужно подключится с PCBE Server с помощью PCBE Console. Добавить наш агент. В свойствах агента нужно выбрать пункт Shutdown Sequence. 



Как видно из рисунка параметр Operating System Delay равен 1 минуте. Так вот, это параметр можно уменьшить только при условии, что не будет установлено выполнение командного файла. Тут имеется ввиду командный файл, который задается в PCBE Agent в пункте Shutdown Settings. А т.к. мы не задавали выполнение командного файла в этом пункте, то смело уменьшаем Operating System Delay до минимума.



Теперь завершение работы ОС в PCBE Agent будет происходить без всяких задержек.

Еще один момент. Если вы хотите сохранить заряд батареи и чтобы хост выключался после определенного времени работы от батареи ИБП, нужно аналогично событию Low Battery настроить реакцию на событие Time On Battery Threshold Exceeded.




Теперь точно все. Удачи.

Комментариев нет:

Отправить комментарий