По каким правилам работает миграция в Red Hat Enterprise Virtualization

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

 
Часть функционала включена автоматически и есть возможность регулировать только "уровень сервиса", часть же требует настройки или включения в настройках системы. К примеру балансировка нагрузки работает по умолчанию. Для настройки функции энергосбережения потребуется включить поддержку специального устройства в свойствах хоста. В качестве примера можно взять IBM RSA устройство:
 
 
Мне кажется интересным, от чего же отталкивается система, распределяя нагрузку на хосты или выполняя миграцию виртуальных машин. Давайте попробуем ответить на эти вопросы. 
 
К примеру, какие правила действуют при выборе хоста, на котором будет запущена виртуальная машина:
  1. Хост для запуска виртуальной машины выбирается исходя из наименьшей загрузки центрального процессора
  2. Если загрузка CPU достигла предела, машины будут смигрированны на другие хосты одна за одной до тех пор, пока уровень загрузки не опуститься ниже предельного уровня
Экономия энергии:
  1. Хост для запуска виртуальной машины выбирается исходя из наименьшей загрузки центрального процессора
  2. Если загрузка CPU достигла предела, машины будут смигрированны на другие хосты одна за одной до тех пор, пока уровень загрузки не опуститься ниже предельного уровня
  3. Если загрузка CPU ниже определенного минимального уровня, система мигрирует оставшиеся машины на другие хосты, руководствуясь правилом 1 и выключает хост.
Правила миграции виртуальных машин:
  1. На хостах не должен протекать процесс миграции в данный момент
  2. Критерий для выбора кандидата на миграцию:
    1. Виртуальная машина не должна быть назначена хосту в принудительном режиме
    2. Машина не должна находиться в процессе миграции в данный момент
    3. Машина должна иметь минимальную загрузку CPU. Если таких машин несколько, используется первая из списка.

Как видим, система RHEV не принимает в расчет использование RAM или подробности операций I/O. Это может показаться странным, однако в этом есть своя логика. Так как быстродействие виртуальной машины зависит от загруженности процессора, делается акцент на оптимальное использование процессорной мощности, при этом считается, что количество памяти и скорость ввода/вывода одинакова для всех хостов.

362