Способ централизованного реагирования на отказ сети или отказ сервера в кластере высокой доступности и восстановления виртуальной машины в кластере высокой доступности и система, реализующая данный способ
METHOD FOR CENTRALIZED RESPONSE TO A NETWORK FAILURE OR SERVER FAILURE IN A HIGH AVAILABILITY CLUSTER AND VIRTUAL MACHINE RECOVERY IN A HIGH AVAILABILITY CLUSTER AND A SYSTEM IMPLEMENTING THIS METHOD

[0001] Настоящее изобретение относится к области вычислительной техники, а именно к системам для создания и администрирования виртуальной инфраструктуры на группе серверов в центрах обработки данных.
[0002] Применительно к данной заявке используемые термины имеют следующие значения:
[0003] «Heartbeat» (перевод с англ. «сердцебиение») – периодический сигнал, генерируемый программным обеспечением для индикации корректной работы или для синхронизации других частей компьютерной системы;
[0004] «IPMI» (англ. Intelligent Platform Management Interface) – интеллектуальный интерфейс управления платформой, предназначенный для автономного мониторинга и управления функциями, встроенными непосредственно в аппаратное и микропрограммное обеспечения серверных платформ, в том числе для выполнения операций автономного включения, выключения и перезагрузки ЭВМ;
[0005] «Агент» – программа, которая вступает в отношение посредничества с пользователем или другой программой;
[0006] «База данных» – совокупность данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования данными, независимая от прикладных программ;
[0007] «Виртуализация» – группа технологий, основанных на преобразовании формата или параметров программных или сетевых запросов к компьютерным ресурсам с целью обеспечения независимости процессов обработки информации от программной или аппаратной платформы информационной системы;
[0008] «Виртуальная машина» (далее – ВМ) – виртуальная вычислительная система, которая состоит из виртуальных устройств обработки, хранения и передачи данных и которая дополнительно может содержать программное обеспечение и пользовательские данные;
[0009] «Гипервизор» – программа, создающая среду функционирования других программ, в том числе других гипервизоров за счет имитации аппаратных средств вычислительной техники, управления данными средствами и гостевыми операционными системами (далее – ОС), функционирующими в данной среде.
[0010] «Гостевая операционная система» – операционная система, установленная в ВМ;
[0011] «Демон» – программа в системах класса UNIX, работающая в фоновом режиме без прямого общения с пользователем;
[0012] «Кластер» – группа компьютеров, объединённых высокоскоростными каналами связи, представляющая с точки зрения пользователя единый аппаратный ресурс;
[0013] «Хост» - любое устройство, предоставляющее сервисы формата «клиент-сервер» в режиме сервера по каким-либо интерфейсам и уникально определённое на этих интерфейсах. В более широком смысле под хостом могут понимать любой компьютер, подключённый к локальной или глобальной сети;
УРОВЕНЬ ТЕХНИКИ
[0014] Как было указано выше заявляемое изобретение относится к системам для создания и администрирования виртуальной инфраструктуры на группе серверов в центрах обработки данных. На серверах выполняются виртуальные машины (ВМ), в которых запущены гостевые операционные системы (ОС) с различными приложениями. Серверы могут объединяться в кластеры для осуществления различных функций, например, динамическая миграция ВМ (англ. «live migration»), балансировка нагрузки для равномерного использования ресурсов серверов («DRS кластер») и автоматическое восстановление виртуальных машин при отказах оборудования, или сети (кластер высокой доступности) (англ. High Availability Cluster).
[0015] Высокая доступность (англ. High Availability, cокращен. HА) предоставляет собой функции для обнаружения отказов гостевых операционных систем виртуальных машин (ВМ) или оборудования, на которых они запущены. При обнаружении отказов HA автоматически восстанавливает виртуальные машины на других хостах в кластере без ручного вмешательства.
[0016] На каждом физическом сервере должны выполняться одна или несколько рабочих нагрузок, таких как виртуальные машины, экземпляр серверного приложения (веб-сервер или сервер приложений, и/или экземпляр приложения для обработки данных, например, клиент распределенных вычислений).
[0017] Экземпляры программного приложения могут быть связаны, например, храниться в одном или нескольких устройствах хранения данных, так что экземпляр программного приложения может быть перенесен или перезапущен на любом хосте с доступом к хранилищу данных, который соответствует экземпляру программного приложения.
[0018] Существующая технология кластеризации высокой доступности имеет ограничения в отношении доступности виртуальных машин. Например, когда отказ в сети управления происходит для подмножества хостов кластера, для этих изолированных хостов может быть потеряна возможность обмениваться данными по сети управления с другими хостами в кластере.
[0019] Кроме того, один из хостов в изолированном разделе может потерять подключение к сети виртуальных машин, что приведет к тому, что этот конкретный хост станет полностью изолированным от всех других хостов. Это приводит к потере доступа к сети для всех виртуальных машин, работающих на этом конкретном хосте, что дополнительно приводит к потере доступа к этой виртуальной машине пользователей или клиентов до тех пор, пока, по крайней мере, сетевое подключение виртуальной машины не будет вручную исправлено для соответствующего хоста.
[0020] Из существующего уровня техники наиболее близким по технической сущности и достигаемому техническому результату к заявляемому изобретению является способ обработки сетевого разделения в кластере высокого давления (НА-кластер) и система для его реализации [патент US10521315B1, дата публикации 31.12.2019].
[0021] В патенте US10521315B1 предложены методы управления подключением виртуальной машины для хостов в изолированном НА-кластере.
[0022] Способ включает в себя определение того, что первый хост, на котором выполняется виртуальная машина, в НА-кластере находится в изолированном разделе. При обнаружении отказа сети виртуальной машины для первого хоста выполняется обработка сетевого отказа, который включает в себя передачу выполнения виртуальной машины на первом узле на узел, имеющий сетевое подключение.
[0023] В НА - кластере может быть назначен главный или основной хост, и на него могут быть возложены обязанности по мониторингу состояния других хостов (подчиненных хостов или вторичных хостов) в кластере и организации автоматического восстановления ВМ.
[0024] В предложенных вариантах осуществления функции мониторинга и восстановления ВМ осуществляют агенты HA. Агент HA также включает инструкции для работы в качестве главного хоста и для работы в качестве вторичного хоста.
[0025] Описанный в патенте US10521315B1 способ обработки сетевого разделения в кластере высокого давления может выполняться любым из хостов, при этом каждый хост может выбирать главный хост, действовать как главный хост и действовать как вторичный хост, в зависимости от обстоятельств.
[0026] В системе обработки сетевого разделения в НА-кластере по патенту US10521315B1 требуется установка на все физические серверы кластера агента HA, а также Fault Domain Manager (FDM), который фактически является частью Virtualization Manager. Агент HA, находясь в роли вспомогательного хоста, выполняет, в частности, функции выбора главного хоста, обмена данными с другими серверами через общую систему хранения данных, отключения или перезагрузки виртуальных машин в случае отказа в гостевой операционной системе. В роли главного хоста агент HA также принимает решения о перезапуске виртуальных машин на доступных серверах.
[0027] Необходимость установки на каждый физический сервер обязательного специализированного программного обеспечения НА - кластера фактически делает систему обработки сетевого разделения в НА - кластере по патенту US10521315B1 распределенным решением.
[0028] Таким образом, можно выделить основной недостаток ближайшего аналога, который заключается в необходимости установки специализированного программного обеспечения кластера высокой доступности – агентов высокой доступности на каждый физический сервер. Это может быть невозможно, либо избыточно, при использовании серверов с установленным программным обеспечением в минимальной конфигурации, например, при использовании дистрибутива Linux c открытым гипервизором Kernel-based Virtual Machine (далее - КVM) и другими свободно распространяемыми утилитами для управления виртуальными машинами.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0029] Техническая проблема, на решение которой направлено заявляемое изобретение, заключается в организации инфраструктуры автовосстановления виртуальных машин на кластере без необходимости установки на все физические серверы специализированного программного обеспечения – агентов высокой доступности.
[0030] Технический результат, достигаемый при реализации заявляемого изобретения, заключается в обеспечении выявления сетевого отказа или отказа сервера в кластере высокой доступности и восстановления доступности виртуальной машины (ВМ) на доступном сервере в кластере без необходимости установки агентов высокой доступности на каждый физический сервер. Установка агентов высокой доступности на каждый физический сервер может быть невозможна, либо избыточна, при использовании серверов с установленным программным обеспечением в минимальной конфигурации, например, при использовании дистрибутива Linux c открытым гипервизором KVM и другими свободно распространяемыми утилитами для управления виртуальными машинами.
[0031] Заявляемый технический результат достигается за счет того, что способ централизованного реагирования на отказ сети или отказ сервера в кластере высокой доступности и восстановления виртуальной машины в кластере высокой доступности (2), содержащего набор виртуальных машин (ВМ), развернутых на группе ЭВМ (1, 2 … N) (1) c установленным гипервизором (7), снабженными платой-IPMI (6), ЭВМ-контроллер (4), ЭВМ-СХД (5), содержащая базу данных (9) гостевой операционной системы виртуальных машин (ВМ), коммутатор Ethernet (3), обеспечивающий связь между элементами системы посредство IPMI интерфейса, при этом ЭВМ-контроллер (4) содержит управляющий программный комплекс, включающий «демон (10) опроса ЭВМ из кластера», «демон (11) определения состояний ЭВМ кластера», «демон (12) ограждения узлов ЭВМ кластера», «демон (13) восстановления ВМ», а также базу данных (8), в которой хранятся конфигурационные данные гипервизора (7) выключенных виртуальных машин (ВМ) и служебные настройки, включающие по меньшей мере флаг включения функции высокой доступности, флаг включения автоматического выбора ЭВМ для восстановления, перечень и порядок ЭВМ, на которых необходимо выполнить восстановление ВМ, флаг включения выбора ЭВМ для восстановления ВМ с наименьшей загрузкой оперативной памяти, количество попыток восстановления ВМ, временной промежуток между попытками восстановления ВМ, характеризуется тем, что:
демон (10) опроса ЭВМ (1) из кластера подключается  по соответствующим протоколам к ЭВМ (1), принимает  сигнальные сообщения «heartbeat» от ЭВМ (1), ВМ и плат-IPMI (6), формирует информационные сообщения и помещает их в очередь для обработки демоном (11) определения состояний ЭВМ (1);
демон (11) определения состояний ЭВМ (1) в кластере (2) выявляет отсутствие информационный сообщений в очереди в течение определенного времени и меняет запись состояния ЭВМ (1) в базе данных (8) ЭВМ–контроллера (4) на «узел недоступен»;
демон (12) ограждения узлов ЭВМ (1) кластера (2) периодически считывает запись статуса ЭВМ (1) в базе данных (8) ЭВМ-контроллера (4) и при обнаружении состояния «узел недоступен» выполняет операцию принудительного выключения ЭВМ (1) через плату–IPMI (6) – «ограждение» и вносит в базу данных (8) ЭВМ-контроллера (4) запись о том, что данная ЭВМ (1) находится в состоянии «узел огражден»;
демон (13) восстановления ВМ периодически считывает в базе данных (8) ЭВМ-контроллера (4) запись состояния ЭВМ (1) и состояния «ограждения» ЭВМ (1) и при обнаружении состояния «узел огражден» начинает операцию восстановления ВМ на другой ЭВМ (1), при этом демон (13) восстановления ВМ опрашивает в базе данных (8) ЭВМ–контроллера (4) флаг включения автоматического выбора ЭВМ (1) для восстановления;
в случае, если флаг включения автоматического выбора ЭВМ (1) для восстановления включен, то демон (13) восстановления ВМ опрашивает по очереди записи в базе данных (8) ЭВМ–контроллера (4) с уровнем загрузки оперативной памяти на каждой ЭВМ (1) и делает попытку восстановления ВМ на ЭВМ (1) с состоянием «доступен» с наименьшей загрузкой оперативной памяти;
в случае, если флаг включения автоматического выбора ЭВМ (1) для восстановления отключен, то демон (13) восстановления ВМ считывает из базы данных (8) ЭВМ – контроллера (4) запись с перечнем и порядком ЭВМ (1), на которых необходимо выполнить восстановление ВМ;
демон (13) восстановления ВМ опрашивает флаг включения выбора ЭВМ (1) для восстановления ВМ с наименьшей загрузкой оперативной памяти;
в случае, если флаг включения выбора ЭВМ (1) для восстановления ВМ с наименьшей загрузкой оперативной памяти отключен, то демон (13) восстановления ВМ предпринимает попытку восстановления ВМ на первой ЭВМ (1) из перечня с состоянием «доступен»;
в случае, если флаг включения выбора ЭВМ (1) для восстановления ВМ с наименьшей загрузкой оперативной памяти включен, то демон (13) восстановления ВМ делает попытку восстановить ВМ на ЭВМ (1) с состоянием «узел доступен» с наименьшей загрузкой оперативной памяти;
в случае, если попытка восстановления ВМ неуспешна, то демон (13) восстановления ВМ делает попытку восстановления ВМ на следующей ЭВМ (1) с наименьшей загрузкой оперативной памяти или следующей ЭВМ (1) по порядку из выбранного пользователем перечня с состоянием «узел доступен», при этом перед каждый следующей попыткой демон (13) восстановления ВМ должен ожидать завершение тайм-аута, заданного пользователем при настройке функции высокой доступности ВМ;
восстановление ВМ осуществляется путем передачи демоном (13) восстановления ВМ на ЭВМ (1) конфигурационных данных гипервизора (7).
Также технический результат достигается за счет того, что система централизованного реагирования на отказ сети или отказ сервера в кластере высокой доступности и восстановления виртуальной машины в кластере высокой доступности (2), включает набор виртуальных машин (ВМ), развернутых на группе ЭВМ (1, 2 … N) (1) с установленным гипервизором (7), снабженными платой - IPMI (6), ЭВМ-контроллер (4), ЭВМ–СХД (5), содержащая базу данных (9) гостевой операционной системы виртуальных машин (ВМ), коммутатор Ethernet (3), обеспечивающий связь между элементами системы посредство IPMI интерфейса, при этом ЭВМ–контроллер (4) содержит управляющий программный комплекс, включающий «демон (10) опроса ЭВМ из кластера», «демон (11) определения состояний ЭВМ кластера», «демон (12) ограждения узлов ЭВМ кластера», «демон (13) восстановления ВМ», а также базу данных (8), в которой хранятся конфигурационные данные гипервизора (7) выключенных виртуальных машин (ВМ), служебные настройки, включающие по меньшей мере флаг включения функции высокой доступности, флаг включения автоматического выбора ЭВМ для восстановления, перечень и порядок ЭВМ, на которых необходимо выполнить восстановление ВМ, флаг включения выбора ЭВМ для восстановления ВМ с наименьшей загрузкой оперативной памяти, количество попыток восстановления ВМ, временной промежуток между попытками восстановления ВМ.
[0032] Заявляемое техническое решение имеет централизованную архитектуру, в которой все управляющие решения принимаются модулем контроллером, устанавливаемым на отдельный сервер или виртуальную машину – ЭВМ – контроллер (4). ЭВМ – контроллер (4) осуществляет управление физическими серверами ЭВМ (1) с запущенными виртуальными машинами. Таким образом, на физические серверы в контуре управления ЭВМ – контроллера (4) может не требоваться установка специализированного программного обеспечения высокой доступности – агентов высокого давления.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0033] Заявляемое изобретение обеспечивает создание и администрирование виртуальной инфраструктуры на группе серверов в центрах обработки данных. На серверах выполняются виртуальные машины (ВМ), в которых запущены гостевые операционные системы с различными приложениями. Серверы могут объединяться в кластеры для осуществления различных функций, например, динамическая миграция ВМ («live migration»), балансировка нагрузки для равномерного использования ресурсов серверов («DRS кластер») и автоматическое восстановление виртуальных машин при отказах оборудования или сети (кластер высокой доступности).
[0034] Реализация изобретения поясняется чертежами, на которых изображены:
Фиг.1 – типовая схема инфраструктуры для организации функции высокой доступности;
Фиг.2 – функциональная схема механизма высокой доступности ВМ;
Фиг.3 – блок -схема алгоритма, реализуемого демоном восстановления ВМ.
На чертежах позиции имеют следующие обозначения:
1 – ЭВМ, формирующие кластер высокой доступности;
2 – кластер высокой доступности;
3 – коммутатор Ethernet;
4 – ЭВМ – контроллер;
5 – ЭВМ – СХД;
6 – IPMI – плата;
7 – гипервизор;
8 – данные гостевой ОС;
9 – база данных;
10 – демон опроса ЭВМ из кластера;
11 – демон определения состояний ЭВМ из кластера;
12 – демон ограждения узлов ЭВМ кластера;
13 – демон восстановления ВМ.
[0035] Типовая схема инфраструктуры под управлением ЭВМ – контроллера (4) представлена на фиг. 1. Виртуальная машина (ВМ) устанавливается на группе ЭВМ (ЭВМ 1, 2 … N) (1) с одинаковой процессорной архитектурой, формирующих кластер высокой доступности (2) (далее – «кластер»). ЭВМ (1) для запуска ВМ объединены в сеть с ЭВМ-контроллером (4) и ЭВМ-СХД (5) через коммутатор Ethernet (3).
[0036] ЭВМ (1) содержит материнскую плату с интерфейсом IPMI – IPMI-плата (6) для запуска ВМ, которая должна быть подключена к общей сети Ethernet.
[0037] На ЭВМ (1) установлен гипервизор (7), конфигурационные данные которого хранятся в базе данных (8) ЭВМ-контроллера (4), на котором также установлен управляющий программный комплекс. Данные гостевой ОС (9) хранятся на ЭВМ-СХД (5) в виде файлов или блочных дисковых разделов.
[0038] ЭВМ-контроллер (4) устанавливается на отдельный сервер или виртуальную машину (ВМ) и выполняет следующие основные функции:
- управление виртуальной инфраструктурой на группе серверов с графического веб-интерфейса;
- хранение информации о состоянии всей виртуальной инфраструктуре в базе данных;
- мониторинг и журналирование событий;
- балансировка нагрузки для равномерного использования ресурсов серверов;
- мониторинг доступности виртуальных машин и восстановление на доступных серверах кластера;
- аутентификация пользователей и разграничение доступа.
[0039] В минимальной конфигурации развертывания инфраструктуры ЭВМ-контроллером (4) централизованно выполняется вся логика управления, в том числе принимаются все решения о восстановлении ВМ ЭВМ (1) в кластере (2).
[0040] В общем виде ВМ ЭВМ (1) в выключенном состоянии представляет собой конфигурационные данные гипервизора (7) и может также включать данные гостевой ОС (9) в виде файлов (в форматах qcow2, iso) или дисковых блочных разделов. Конфигурационные данные гипервизора (7) выключенной ВМ постоянно хранятся в базе данных (8) ЭВМ-контроллера (4).
[0041] ВМ во включенном состоянии представляет собой процесс гипервизора (7) с конфигурационными данными ВМ и данными гостевой ОС (9), загруженными в энергозависимую оперативную память ЭВМ (1) (физического сервера). Процесс гипервизора (7) создается на основе конфигурационных данных гипервизора, которые ЭВМ – контроллер (4) из базы данных (8) передает на физический сервер, например, по протоколу SSH.
[0042] Данные гостевой ОС (9) могут храниться как в энергонезависимой памяти ЭВМ (1), на которой выполняется ВМ, так и на внешних ЭВМ, в том числе на специализированных системах хранения данных – ЭВМ – СХД (5). Данные процесса гипервизора (7) могут храниться только в памяти ЭВМ (1).
[0043] Исходя из этого, возможно отделить ЭВМ (1), на которой непосредственно производится вычислительный процесс выполнения ВМ, и ЭВМ (1), на которых хранятся данные ВМ. Так как для запуска ВМ на любой ЭВМ (1) с одинаковой процессорной архитектурой достаточно, чтобы были доступны данные конфигурации и гостевой ОС (9), то становится возможным перемещать ВМ между несколькими ЭВМ (1) с минимальным перерывом, необходимым для загрузки данных в оперативную память ЭВМ (1).
[0044] На этом принципе основывается заявляемый способ централизованного реагирования на отказ сети или отказ сервера в кластере высокой доступности и восстановления виртуальной машины в кластере высокой доступности. Если конфигурационные данные гипервизора (7) хранятся в базе данных (8) ЭВМ – контроллера (4) и данные гостевой ОС (9) хранятся на внешней системе хранения данных ЭВМ – СХД (5), то возможно с помощью ЭВМ – контроллера (4) автоматизировать восстановление ВМ на любой ЭВМ (1) из кластера (2) без необходимости установки агентов высокой доступности на каждый физический сервер – ЭВМ (1).
[0045] Разработанные алгоритмы реагирования на отказ сети или отказ сервера в кластере высокой доступности и восстановления виртуальной машины в кластере высокой доступности реализуются управляющим программным комплексом, установленным на выделенной ЭВМ – контроллер (4), взаимодействуя с ЭВМ (1) и развернутыми на них виртуальными машинами (ВМ).
[0046] На ЭВМ–контроллере (4) установлены следующие программные компоненты, формирующие управляющий программный комплекс (фиг. 2):
- демон (10) опроса ЭВМ из кластера;
- демон (11) определения состояний ЭВМ из кластера;
- демон (12) ограждения узлов ЭВМ на кластере;
- демон (13) восстановления ВМ.
[0047] Предварительного пользователь должен через графический интерфейс ЭВМ – контроллера (4) кластера или отдельных ВМ ввести следующие служебные настройки, которые должны быть занесены в базу данных (8) ЭВМ-контроллера (4):
- флаг включения функции высокой доступности;
- флаг включения автоматического выбора ЭВМ для восстановления ВМ;
- перечень и порядок ЭВМ, на которых необходимо выполнить восстановление ВМ (действует при отключенном флаге автоматического выбора ЭВМ);
- флаг включения выбора ЭВМ для восстановления ВМ с наименьшей загрузкой оперативной памяти (далее – ОП) (действует при отключенном флаге автоматического выбора ЭВМ);
- количество попыток восстановления ВМ (по умолчанию – 5);
- тайм-аут (временной промежуток) между попытками восстановления ВМ (по умолчанию устанавливается – 60 секунд).
[0048] При установке настроек для кластера (2), все ВМ в кластере должны наследовать этим настройки.
[0049] В штатном режиме работы кластера (2) ЭВМ – контроллер (4) должен обрабатывать так называемые heartbeat-сигналы от серверов – ЭВМ (1) и ВМ.
[0050] В предложенном способе централизованного реагирования предлагается обрабатывать следующие типы heartbeat-сигналов:
- сигналы от ЭВМ (1): ping-запрос или делать попытки подключиться по SSH;
- сигналы активности ВМ: проверка активности записи в образ ВМ через определённые периоды времени;
- сигналы от платы IPMI (6).
[0051] Демон (10) опроса ЭВМ из кластера подключается по соответствующим протоколам к ЭВМ (1), принимает  сигнальные сообщения «heartbeat» от ЭВМ (1), ВМ и платы-IPMI (6), формирует  информационные сообщения и помещает  их в очередь для обработки демоном (10) определения состояний ЭВМ (1).
[0052] Демон (11) определения состояний ЭВМ (1) в кластере (2) выявляет отсутствие информационных сообщений в течение определенного времени (тайм-аута) (по умолчанию – 60 секунд) и меняет  запись состояния ЭВМ (1) в базе данных (8) ЭВМ -контроллера (4) на «узел недоступен».
[0053] Демон (12) ограждения узлов ЭВМ кластера (2) периодически считывает запись статуса ЭВМ (1) в базе данных (8) ЭВМ – контроллера (4) и при обнаружении состояния «узел недоступен» выполняет операцию принудительного выключения ЭВМ (1) через интерфейс IPMI (6) – «ограждение». Операция «ограждения» необходима, чтобы гарантировать выключение ВМ на недоступной ЭВМ (1) для исключения возможности повреждения данных вследствие одновременного выполнения операции записи двух экземпляров ВМ на один участок дисковой памяти. Демон (12) ограждения узлов ЭВМ кластера направляет сигнал принудительного выключения ЭВМ (1) на плату IPMI (6). В случае успешного принудительного выключения ЭВМ (1) плата-IPMI (6) возвращает демону (12) ограждения узлов ЭВМ кластера положительный сигнал.  После чего демон (12) ограждения узлов ЭВМ кластера вносит в базу данных (8) ЭВМ-контроллера (4) запись, подтверждающую, что данная ЭВМ (1) находится в состоянии «узел огражден».
[0054] Далее выполняется алгоритм восстановления ВМ, реализуемый демоном (13) восстановления ВМ (фиг. 3).
[0055] Демон (13) восстановления ВМ периодически считывает запись состояния ЭВМ (1) и состояния «ограждения» ЭВМ (1) в базе данных (8) ЭВМ-контроллера (4) и при обнаружении состояния ЭВМ (1) «узел огражден», начинает операцию восстановления ВМ на другой ЭВМ (1). Демон (13) восстановления ВМ опрашивает в базе данных (8) ЭВМ – контроллера (4) флаг включения автоматического выбора ЭВМ (1) для восстановления ВМ.
[0056] Если данный флаг включен, то демон (13) восстановления ВМ  опрашивает по очереди записи в базе данных (8) ЭВМ – контроллера (4) с уровнем загрузки ОП на каждой ЭВМ (1) и делать попытку восстановления ВМ на ЭВМ (1) с состоянием «доступен» с наименьшей загрузкой ОП.
[0057] Если флаг включения автоматического выбора ЭВМ (1) для восстановления ВМ отключен, то демон (13) восстановления ВМ считывает из базы данных (8) ЭВМ – контроллера (4) запись с перечнем и порядком номером ЭВМ (1), на которых необходимо выполнить восстановление ВМ.
[0058] Демон (13) восстановления ВМ опрашивает флаг включения выбора ЭВМ (1) для восстановления ВМ с наименьшей загрузкой ОП.
[0059] Если данный флаг отключен, то демон (13) восстановления ВМ предпринимает попытку восстановления ВМ на первой ЭВМ (1) из перечня с состоянием «доступен».
[0060] Если флаг включения выбора ЭВМ (1) для восстановления ВМ с наименьшей загрузкой ОП включен, то демон (13) восстановления ВМ делает попытку восстановить ВМ на ЭВМ (1) с состоянием «узел доступен» с наименьшей загрузкой ОП.
[0061] Если попытка восстановления ВМ неуспешна, то демон (13) восстановления ВМ делает попытку восстановления на следующей ЭВМ (1) с наименьшей загрузкой ОП или следующей ЭВМ (1) по порядку из выбранного пользователем перечня с состоянием «узел доступен». Перед каждой следующей попыткой восстановления ВМ демон (13) восстановления ВМ должен ожидать завершение тайм-аута, заданного пользователем при служебной настройке функции высокой доступности ВМ, занесенных в базу данных (8) ЭВМ – контроллера (4). Количество попыток восстановления ВМ задается пользователем при служебной настройке функции высокой доступности ВМ.
[0062] Восстановление ВМ осуществляется путем передачи демоном (13) восстановления ВМ ЭВМ (1) конфигурационных данных гипервизора (7) по протоколу SSH и команды включения ВМ.
[0063] Если были отключены все ЭВМ (1) и коммутатор Ethernet (3), входящие в инфраструктуру кластера (2), то после включения может возникнуть следующий сценарий: операционная система ЭВМ (1) может загрузиться позже, чем управляющий программный комплекс на ЭВМ-контроллере (4), что повлечет за собой установку флага «узел недоступен» для ЭВМ (1), их принудительное выключение и попытки восстановления ВМ.
[0064] Для исключения данного сценария управляющий программный комплекс ЭВМ-контроллере (4) должен ожидать завершение тайм-аута 600 сек. прежде, чем запустить демон (13) восстановления ВМ.