Примеры использования DRS с иллюстрациями

Пример для алгоритма help_overloaded_hypervisors

Заданные параметры конфигурации:

  • METRIC_WEIGHT_CPU = 0.5

  • METRIC_WEIGHT_MEM = 0.5

  • METRIC_RESOLUTION = 5

  • MOVE_SYN_THRESHOLD = 80

  • MOVE_SYN_DIFF_AFTER = 10

Метрики гипервизоров (числа показывают процентное использование ресурсов определённого типа гипервизора):

Hypervisor

RAM

CPU

HV1

100

60

HV2

100

80

HV3

70

30

HV4

30

50

Вычисленная отсортированная синтетическая нагрузка гипервизоров:

Hypervisor

Score

HV2

90

HV1

80

HV3

50

HV4

40

Нагрузка на гипервизорах 1 и 2 не меньше заданного порога, и гипервизоры считаются перегруженными. После проведения оптимизации нагрузка на гипервизорах:

Hypervisor

Score

HV1

70

HV2

70

HV3

60

HV4

60

Пример для алгоритма equal_hypervisors_load

Заданные параметры конфигурации:

  • cpu_weight = 1.0

  • ram_weight = 0.0

  • network_weight = 0.0

  • metrics_time_duration_in_minutes = 5

  • allowed_load_above_average = 0

Метрики гипервизоров (числа показывают процентное использование ресурсов определённого типа гипервизора):

Hypervisor

CPU

HV1

100

HV2

60

HV3

80

HV4

50

Изначальная нагрузка на гипервизорах:

Изначальная нагрузка на стенде

Изначальная нагрузка на стенде

Вычисленная отсортированная синтетическая нагрузка гипервизоров:

Hypervisor

Score

HV1

100

HV3

80

HV2

60

HV4

40

Средняя нагрузка составляет 70 ((100 + 80 + 60 + 40) / 4). Гипервизор нуждается в разгрузке, если его нагрузка не меньше суммы средней нагрузки и allowed_load_above_average. В данном случае порог составляет 70 (70 + 0). Гипервизоры 1 и 2 будут разгружаться.

Изменение параметров нагрузки гипервизоров

Изменение параметров нагрузки гипервизоров

После проведения оптимизации нагрузка на гипервизорах:

Hypervisor

Score

HV1

70

HV2

70

HV3

70

HV4

70

Результат балансировки гипервизоров

Результат балансировки гипервизоров

Пример для алгоритма balance_network

Заданные параметры конфигурации:

  • metric_time_duration_in_minutes = 5

  • cpu_weight = 0

  • ram_weight = 0

  • network_weight = 1

  • ratio_between_max_and_min_loaded_hypervisors = 2.0

Сетевая нагрузка гипервизоров (числа показывают процентное использование сетевых ресурсов гипервизора):

Hypervisor

Score

HV2

90

HV1

80

HV3

50

HV4

40

Алгоритм за одну итерацию берёт только максимально нагруженный (HV2) и минимально нагруженный (HV4) гипервизоры и создаёт только одну рекомендацию по миграции ВМ. Для определения необходимости балансировки используется формула: HV2 / HV4 = actual_ratio. Если ratio_between_max_and_min_loaded_hypervisors меньше actual_ratio, наиболее нагруженный гипервизор нуждается в разгрузке.

В данном случае actual_ratio = 90 / 40 = 2.25, что больше заданного порога 2.0. Это означает, что будет создана одна рекомендация по миграции ВМ с HV2 на HV4. После применения рекомендации алгоритм повторяется до тех пор, пока ratio_between_max_and_min_loaded_hypervisors не станет больше actual_ratio.