Балансировка нагрузки в облаке с помощью DRS

6 декабря 2018, 13:38

Одни из главных задач облачного провайдера предоставляющего виртуальную инфраструктуру в аренду — обеспечение доступности, надежности и стабильной производительности. Для того чтобы эти задачи решались эффективно, подбирается мощная аппаратная платформа и качественное программное обеспечение, но, когда число виртуальных машин становится очень большим, возникает неравномерная нагрузка на физические хосты.  Эту проблему можно решить двумя способами — ручным контролем и распределением, что требует много человеческих ресурсов, или применением инструментов балансировки нагрузки, таких как VMware DRS (Distributed Resource Scheduler). Корпоративные облачные провайдеры, предоставляющие услугу IaaS, выбирают второй вариант, как работает данная технология и почему мы рекомендуем ее использовать рассмотрим в данной статье.

Зачем использовать DRS

С помощью технологии DRS можно максимально эффективно использовать аппаратные мощности физических серверов. Благодаря этому облачный провайдер повышает качество своих услуг, улучшает утилизацию ресурсов, снижает затраты на собственную инфраструктуру и может реализовать такие полезные функции как миграция виртуальных машин между физическими хостами без их остановки. Администраторы облачных сервисов осуществляют только мониторинг и контроль работы системы, ручное перемещение становится неактуальным, так как балансировщик автоматизирует миграцию и выравнивает нагрузку.

Работа автоматического балансировщика в задачах распределения нагрузки более эффективна, чем ручная миграция. Это подтверждено экспериментами, в ходе которых администратор облачной платформы сначала сам распределял нагрузку между серверами, а после этого включал DRS. Система автоматически анализировала нагрузку и находила иную схему размещения виртуальных серверов — более эффективную.

Принцип работы DRS

Главное требование для работы DRS — объединение физических хостов в кластер. В отличие от vMotion (сервис переноса виртуальных машин между хостами), только в пределах кластера может осуществляться автоматическая миграция ВМ с целью распределения нагрузки без их остановки или перезапуска. Для пользователей этот процесс совершено бесшовный.

Администратор виртуальной инфраструктуры создает правила, по которым распределяются ресурсы хостов, так, например, он может зарезервировать определенных хост за виртуальной машиной, или исключить его из кластера вовсе. После запуска DRS постоянно контролирует нагрузку на хостах и, в случае ее резкого роста на одном из них, переносит виртуальные машины на другой, менее нагруженный. Существуют три режима работы DRS:

  • Автоматический — в данном режиме система сама перераспределяет нагрузку без участия администратора;
  • Полуавтоматический — в данном режиме система создает рекомендации по миграции, а решение об их применении принимает администратор;
  • Ручной —  в данном режиме система только рассчитывает миграции.

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

На какие метрики опирается DRS

Для того чтобы признать хост «несбалансированным» и начать распределять с него виртуальные машины по другим узлам кластера, система DRS опирается на отклонение двух метрик — загрузки CPU и оперативной памяти. По ним производится оценка среднего уровня и стандартного отклонения от него. Средний уровень служит исходным значением для регулярной повторной оценки нагрузки на узлы, чтобы выполнить математический расчет восстановления баланса в случае отклонения. DRS оценивает нагрузку физического хоста и самих виртуальных машин, которые на нем запущены, это необходимо для определения приоритета миграции — машины, у которых показатели мощности близки к критичным, будут перенесены в первую очередь.

Вычисление баланса производительности хостов в кластере выполняется по формуле:

В скобках представлен математический оператор, округляющий собственное значение до целого числа. Так, например, потенциальное перемещение в кластере, состоящем из четырех хостов, выполнение которого снизит среднеквадратическое отклонение нагрузки хоста до 0,14, будет иметь результат приоритета 3. Каждому перемещению можно назначить свой приоритет от 1 до 5, соответственно, чем выше приоритет у перемещения, тем большее значение для устранения дисбаланса оно имеет.

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

Настройка распределения ресурсов

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

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

Как использовать DRS

Услуга DRS для клиента облачного провайдера должна быть совершенно бесплатной, а не предоставляться как дополнительная услуга. Каждый поставщик услуг IaaS на платформе VMware может включить DRS для обеспечения лучшего качества предоставляемых сервисов. Выбирая облачного провайдера, следует обратить внимание на поддержку DRS — это гарант ориентированности на клиента и желания предоставлять высокий уровень сервиса.

Использование технологии Distributed Resource Scheduler преследует главную цель надежного IaaS-провайдера — обеспечить высокий уровень сервиса, стабильную и быструю работу инфраструктуры клиента, а также гарантию конкурентной цены. Технологии не решают всех проблем, возникающих при использовании облачных вычислений, но они разгружают системных инженеров и администраторов от рутинных задач, доверяя их автоматике — человек в свое время, решает более важные задачи.

Обсуждение