Поделиться через


Масштабирование узлов сеансов с помощью службы автоматизации 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 в режим стока, проставить на них теги. Когда вы в дальнейшем создадите Планировщик приложений логики Azure, тегу можно присвоить параметр MaintenanceTagName. Теги помогут отличить эти виртуальные машины от тех, которыми управляет средство масштабирования. Установка тега обслуживания также предотвратит внесение изменений в виртуальную машину со стороны средства масштабирования, до тех пор, пока этот тег не будет удален.

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

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

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

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

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

Примечание.

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

Следующие шаги