Облачные вычисления: Управляйте ресурсами

Управление ресурсами в системе, сложной по своей природе, такой как среда облачных вычислений, требует различных подходов к измерению и предоставлению ресурсов.

Дэн Маринеску

Адаптированная выдержка из книги «Cloud Computing: Theory and Practice» (Elsevier Science & Technology books)

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

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

Стратегии управления облачными ресурсами связаны с тремя моделями предоставления облачных услуг — Infrastructure as a Service (инфраструктура как сервис, IaaS), Platform as a Service (платформа как сервис, PaaS) и Software as a Service (ПО как сервис, SaaS), отличающимися друг от друга. Во всех случаях провайдеры облачных услуг имеют дело с большими меняющимися нагрузками, которые словно пытаются опровергнуть утверждение, что облако эластично. В некоторых случаях, когда удается предвидеть пиковые нагрузки, можно выделить ресурсы заблаговременно. Например, пиковые нагрузки свойственны «сезонным» веб-сервисам.

Если пик не был запланирован, ситуация несколько усложняется. В случае незапланированных пиковых нагрузок можно воспользоваться Auto Scaling при условии, что имеется пул ресурсов, которые, можно отбирать или выделять по запросу, и система мониторинга, позволяющая принимать решения о перераспределении ресурсов в режиме реального времени. Auto Scaling поддерживается PaaS-сервисами, такими как Google App Engine. Использовать Auto Scaling в случае IaaS сложнее из-за отсутствия стандартов.

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

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

Политики и механизмы

Под политикой обычно понимают решения по управлению участниками системы безопасности, тогда как механизмы представляют собой средства реализации политик. Отделение политик от механизмов — один из основополагающих принципов информатики. Батлер Лэмпсон (Butler Lampson) и Пер Бринч Хансен (Per Brinch Hansen) привели веские аргументы в пользу такого разделения в контексте проектирования ОС.

Можно приблизительно поделить политики управления облачными ресурсами на следующие пять классов:

  1. Управление доступом
  2. Выделение ресурсов
  3. Балансирование нагрузки
  4. Оптимизация энергопотребления
  5. Гарантии качества обслуживания (Quality-of-Service, QoS)

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

Выделение ресурсов означает предоставление ресурсов отдельным экземплярам. Экземпляр — это вызов сервиса (service activation). Для того чтобы находить ресурсы, на которые налагаются глобальные оптимизационные ограничения, требуется выполнять поиск в обширном пространстве, в котором очень быстро меняется состояние отдельных систем.

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

Общепринятое понимание термина «балансирование нагрузки» — равномерное распределение нагрузки между набором серверов. Например, рассмотрим случай, когда имеется четыре идентичных сервера —A, B, C и D. Их нагрузки составляют соответственно 80, 60, 40 и 20 процентов от их мощности. При идеальном балансировании нагрузки все серверы будут работать с одной и той же нагрузкой — 50 процентов мощности каждого сервера.

В облачных вычислениях критически важной целью является минимизация стоимости предоставления услуг. В частности, сюда входит и минимизация энергопотребления. Это приводит к другому пониманию термина «балансирование нагрузки». Вместо того чтобы равномерно распределять нагрузку между всеми серверами, стремятся к тому, чтобы сконцентрировать ее и использовать минимальное количество серверов, переключив остальные серверы в режим ожидания, в котором они потребляют меньше энергии. В нашем примере можно перенести нагрузку с D на A и с C на B. Тогда A и B будут полностью загружены, а C и D можно будет перевести в режим ожидания.

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

Технологии динамического управления напряжением и тактовой частотой (dynamic voltage and frequency scaling, DVFS), такие как Intel SpeedStep и AMD PowerNow, уменьшают напряжение и частоту, чтобы сократить потребление энергии. Первоначальной причиной введения этих технологий была необходимость экономить энергию на портативных устройствах, но затем они распространились практически на все процессоры, в том числе и на используемые в высокопроизводительных серверах. В результате понижения напряжения и тактовой частоты производительность процессора падает. Однако она падает значительно медленнее, чем энергопотребление.

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

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

Управляйте облаком

Методики выделения ресурсов в компьютерных облаках должны основываться на строгом подходе, а не на импровизации. Вот четыре основных механизма реализации политик управления ресурсами:

  • Теория управления: в теория управления используется обратная связь, чтобы гарантировать стабильность системы и предсказывать поведение при переходах между состояниями, но она позволяет предсказывать только локальное поведение.
  • Машинное обучение: основное преимущество технологий машинного обучения — то, что им не нужна модель производительности системы. Вы просто применяете эту методику для координации нескольких автономных менеджеров систем.
  • Модель коммунальных услуг: при подходе, основанном на модели коммунальных услуг, требуются модель производительности и механизм приведения цены в соответствие с производительностью на уровне пользователей.
  • Ориентация на рынок/экономические механизмы: для таких механизмов не нужна системная модель, например, это может быть проведение объединенных аукционов для продажи пакетов ресурсов.

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

Значительная часть опубликованных работ посвящена управлению ресурсами при интерактивных нагрузках, в некоторых работах рассматривают не интерактивные нагрузки и лишь в нескольких — гетерогенные нагрузки, сочетающие в себе эти два вида. Если вы заранее запланируете, как управлять этими нагрузками, то при переходе на работу в облаке возникнет меньше проблем.

Дэн С. Маринеску

Дэн С. Маринеску (Dan C. Marinescu)был профессором по информатике в университете Пардью с 1984 по 2001 гг. Затем перешел в департамент информатики университета Центральной Флориды. Работал приглашенным преподавателем в IBM T. J. Watson Research Center, институте информатики в Пекине, Scalable Systems Division Intel Corp., Deutsche Telecom AG и INRIA Rocquancourt во Франции. В сферу его исследовательских интересов входят параллельные и распределенные системы, научные вычисления, квантовые вычисления и квантовая теория информации.

См. информацию об этой и других книгах Elsevier на сайте Elsevier Science & Technology books.