В нашем блоге на Хабре мы рассказываем о том, как различные компании строят свою ИТ-инфраструктуру, и освещаем использующиеся для работы в облаках технологии. Сегодня речь пойдет о востребованном инструменте для балансировки нагрузки — VMware DRS.

Что это такое


VMware DRS (Distributed Resource Scheduler) — это инструмент, который используется для балансировки рабочей нагрузки на доступные ресурсы в виртуальной среде.

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

Иными словами, встроенный балансировщик нагрузки умеет в автоматическом (или ручном) режиме перемещать виртуальные машины по хостам кластера, тем самым выравнивая нагрузку на них.

Как работает DRS


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



Создание кластеров vSphere DRS

Для определения того, находится ли система в сбалансированном состоянии, DRS использует две метрики. Когда текущее стандартное отклонение нагрузки хоста превышает заданную величину, то он признается «несбалансированным». В такой ситуации DRS осуществляет перераспределение виртуальных машин внутри кластера без какого-либо простоя.

Чтобы получить информацию о стандартном отклонении, DRS анализирует загрузку CPU и памяти каждого хоста. Это нужно для определения среднего уровня и стандартного отклонения от него.

Затем каждые несколько минут осуществляется повторная оценка загрузки кластера, в случае обнаружения «перекосов», принимаются соответствующие меры для восстановления баланса. Кроме того, DRS определяет, какие из доступных виртуальных машин должны быть перебалансированы в первую очередь.

ИТ-эксперт Грег Шилдс в одной из своих статей приводил такую формулу уравнения для вычисления баланса хоста по сравнению с другими хостами кластера:



Как работает DRS в 1cloud


Мы в 1cloud стараемся упростить для наших клиентов работу с виртуальной инфраструктурой и облачными ресурсами — для этого реализуются разные небольшие, но удобные фичи вроде заказа сервера с предустановленной панелью управления или создание виртуальных сетей в пару кликов.

Кроме того, мы используем DRS от VMware для работы со всеми хостами нашей инфраструктуры. Это означает, что мониторинг нагрузки осуществляется постоянно для всех хостов, и если на каком-то из них возникают проблемы — например, какие-то приложения начинают потреблять слишком много ресурсов —, то часть клиентских виртуальных машин переносятся на другие хосты такого типа. Таким образом, все виртуальные серверы получают необходимые ресурсы. Кроме того, в системе 1cloud используется технология VMware High Availability — при сбое хоста она перезапускает виртуальные серверы на другом хосте.

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

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

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

Комментарии (20)


  1. gotch
    07.10.2015 16:28
    -3

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


    1. blind_oracle
      07.10.2015 17:37
      +1

      При корректной настройке таких проблем нет. У меня они туда-сюда мигрируются кучами, «ни единого разрыва» (с)


      1. gotch
        08.10.2015 09:38

        У вас видимо очень быстрая сеть и не чувствительные сервисы Microsoft Failover Cluster Services надо дополнительно настраивать для этого сценария.


        1. AntonVirtual
          10.10.2015 12:30

          kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1037959

          vMotion is supported on vSphere 6.0 with Cluster Across Boxes (CAB) only. Requires Virtual Hardware Version 11.

          До 6.0 и вне указанной конфигурации MSCS / MFCS не поддерживается.


    1. 1cloud
      07.10.2015 19:19

      Мы с такими проблемами не сталкивались, честно говоря


    1. AntonVirtual
      10.10.2015 12:36

      Ни разу в моей жизни такого не видел.

      Кластеры же под DRS стало можно совсем недавно заводить. Так что если у вас кластеры разваливались от vMotion, то кто виноват в непрочтении мануалов?


  1. blind_oracle
    07.10.2015 17:36

    Статья ни о чём.


    1. 1cloud
      07.10.2015 19:19

      Если у вас есть какие-то вопросы, задавайте — ответим


      1. blind_oracle
        07.10.2015 20:10

        Вопросов никаких нет, кроме одного — зачем это писать, кроме как для рекламы своего сервиса?
        Vmware DRS/HA сто лет в обед, все кому надо и так про него знают.

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

        А так — ни о чём.


        1. 1cloud
          08.10.2015 10:43

          Мы рассказали о технологии в общем и том, как она работает в нашей системе. Чего вполне достаточно для поста в корпоративном блоге, в общем-то. Сделать топик более информативным можно комментариями, на которые можно развернуто ответить, но конечно проще написать про «пост ни о чем!», чтобы собрать плюсиков, это да.


      1. kabal375
        08.10.2015 10:25
        -1

        Для возникновения вопросов нужно чтобы было за что зацепиться. Это когда в целом посыл ясен, но есть туманности и неопределённости.
        Посыл данной статьи: «Есть такая штука — DRS — она крутая, реализует балансировку нагрузки, и мы её используем». И никаких вопросов не возникает, потому что в статье просто нет того, что обещает заголовок.


        1. 1cloud
          08.10.2015 10:44
          -1

          Описана схема работы технологии и ее применение в нашей системе. Соответствие заголовку — 100%. Если есть вопросы по делу — задавайте, будем рады ответить


          1. kabal375
            08.10.2015 10:53

            Тогда вопрос: Как вы научились настолько объективно оценивать свои результаты?


  1. nickolazz
    07.10.2015 21:29

    Лично я использую Drs/ha всегда и везде, где это применимо:-) на нормальном железе и верных настройках проблем нет никаких. Мне интереснее другое — используете ли вы в своей среде storage DRS?


  1. kelevra
    08.10.2015 07:05

    при сбое хоста она перезапускает виртуальные серверы на другом хосте.
    а что произойдёт при сбое схд, на котором лежат диски виртуальном машины? не сбое диска в схд, а именно самого схд на уровне сети или железа.


    1. reallord
      08.10.2015 09:18

      Все тоже самое как и без миграции. Если нет резервирования и репликации на уровне СХД то все умрет.


      1. AntonVirtual
        10.10.2015 12:34

        Под репликацией обычно понимают одностороннюю репликацию active->passive. Даже если она есть — ничего не изменится, ВМ умрут. Переключение необходимо будет производить вручную / Site Recovery Manager.

        Спасает только виртуализация СХД с активными зеркалами как EMC VPLEX / IBM SVC. Или использование многонодовых SDS.


    1. AntonVirtual
      10.10.2015 12:32

      Смотря что за сбой. Полная смерть СХД ведет за собой остановку всех ВМ, лежавших на этой СХД. Сбой контроллера / пути ведет к переключению путей.
      Магии здесь нет.


  1. AntonVirtual
    10.10.2015 12:36

    Более подробный, хотя и чуть устаревший обзор принципов работы DRS: blog.vadmin.ru/2010/06/drs-deepdive.html


  1. navion
    12.10.2015 17:48

    У вас довольно странный выбор источников, а про DRS и остальную кластеризацию VMware написана целая книжка "VMware vSphere 5.1 Clustering Deepdive".

    Плюс что-то есть в блогах авторов:
    frankdenneman.nl
    www.yellow-bricks.com