Масштабирование узлов сеансов с помощью служба автоматизации Azure и Azure Logic Apps для Виртуального рабочего стола Azure

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

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

Примечание.

Собственное решение автомасштабирования Виртуального рабочего стола Azure общедоступно для пулов и пулов личных узлов и будет автоматически масштабировать виртуальные машины узла сеансов в соответствии с расписанием масштабирования. Для упрощения настройки рекомендуется использовать автомасштабирование. Дополнительные сведения см. в статье Планы автомасштабирования.

Принцип работы средства масштабирования

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

Средство масштабирования можно использовать для следующих способов:

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

Средство масштабирования использует сочетание учетной записи служба автоматизации Azure, runbook PowerShell, веб-перехватчика и приложения логики для работы. При запуске средства приложение логики вызывает веб-перехватчик для запуска модуля Runbook. Затем модуль Runbook создает задание.

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

  • Пик. Время достижения максимального параллелизма сеанса пользователя.
  • Вне пикового уровня: время, когда ожидается достигнуть минимального параллелизма сеанса пользователя.

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

Примечание.

SessionThresholdPerCPU не ограничивает количество сеансов на виртуальной машине. Этот параметр определяет только время запуска новых виртуальных машин для балансировки нагрузки подключений. Чтобы ограничить количество сеансов, необходимо выполнить инструкции по настройке параметра MaxSessionLimit соответствующим образом.

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

Примечание.

Если вы вручную настроите виртуальную машину узла сеанса в режим стока, задание не будет управлять виртуальной машиной узла сеанса. Если виртуальная машина узла сеанса запущена и настроена в режим стока, она будет рассматриваться как недоступная, что приведет к запуску дополнительных виртуальных машин для обработки нагрузки. Прежде чем вручную установить для них режим стока, рекомендуется пометить тегами все виртуальные машины Azure. Вы можете присвоить тегу имя с помощью параметра MaintenanceTagName при создании планировщика приложений логики Azure позже. Теги помогут отличить эти виртуальные машины от тех, которыми управляет средство масштабирования. Установка тега обслуживания также не позволяет средству масштабирования вносить изменения в виртуальную машину до удаления тега.

Если задать для параметра LimitSecondsToForceLogOffUser нулевое значение, задание позволяет параметру конфигурации сеанса в указанных групповых политиках обрабатывать сеансы выхода пользователей. Чтобы просмотреть эти групповые политики, перейдите в разделПолитики>конфигурации> компьютераАдминистративные шаблоны>Компоненты WindowsСлужбы удаленных рабочих столов,> сеансы узла >удаленных рабочих столов.> Если на виртуальной машине узла сеансов есть какие-либо активные сеансы, задание оставит виртуальную машину узла сеанса запущенной. Если активных сеансов нет, задание завершит работу виртуальной машины узла сеансов.

В любой момент задание также учитывает значение MaxSessionLimit пула узлов, чтобы определить, превышает ли текущее количество сеансов 90 % от максимальной емкости. Если это так, задание запустит дополнительные виртуальные машины узла сеансов.

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

Однако средство также имеет следующие ограничения:

  • Это решение применяется только к виртуальным машинам узла с несколькими сеансами в пуле.
  • Это решение управляет виртуальными машинами в любом регионе, но может использоваться только в той же подписке, что и учетная запись служба автоматизации Azure и приложение логики Azure.
  • Максимальная среда выполнения задания в runbook составляет 3 часа. Если запуск или остановка виртуальных машин в пуле узлов занимает больше времени, задание завершится ошибкой. Дополнительные сведения см. в разделе Общие ресурсы.
  • Для правильной работы алгоритма масштабирования необходимо включить по крайней мере одну виртуальную машину или узел сеансов.
  • Средство масштабирования не поддерживает масштабирование на основе ЦП или памяти.
  • Масштабирование работает только с существующими узлами в пуле узлов. Средство масштабирования не поддерживает масштабирование новых узлов сеансов.

Примечание.

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

Дальнейшие действия