Download PDF
Download page Балансировка подключений на основе загрузки терминальных серверов метапоставщика.
Балансировка подключений на основе загрузки терминальных серверов метапоставщика
Балансировка подключений на основе загрузки терминальных серверов метапоставщика
Для эффективного распределения ресурсов терминальных серверов метапоставщика реализована поддержка балансировки подключений на основе метрик, которые отправляет «Сессионный агент».
Балансировка подключений будет работать только при выборе протокола доставки «RDP (терминальный доступ)». Более ранние протоколы доставки не поддерживаются.
Процесс балансировки выглядит следующим образом:
- «Сессионный агент», установленный на ноды метапоставщика, собирает метрики узла и хранит их в своей БД;
- «Универсальному диспетчеру» передаются средние значения метрик ноды, подсчет которых задается через параметр «Размер кеша» (см. подраздел Настройка отправки метрик для «Сессионного агента»);
- на основе полученных метрик «Универсальный диспетчер» рассчитывает нагрузку на каждую ноду метапоставщика. Расчет нагрузки хранится в таблице БД «Универсального диспетчера»;
- при запросе пользователя на подключение метапоставщик:
- проверяет, установлен ли в его свойствах параметр «Соиспользование сессий» (см. подраздел Перечень параметров для добавления терминального сервера метапоставщика). Если параметр активирован и у пользователя уже есть активная сессия, то метапоставщик вернет адрес подключения той ноды, на которую терминирована сессия;
- проверяет, активирован ли параметр «Балансировка по метрикам». Если параметр активирован, то метапоставщик получит список всех нод и выполнит балансировку подключения, вернув пользователю ноду, имеющую минимальную нагрузку или любую, если несколько нод имеют одинаково наименьшее значение нагрузки. При этом во время балансировки будут проверены условия как получения метрик, так и их актуальности.
Если активированы оба параметра «Балансировка по метрикам» и «Соиспользование сессий», то проверяется параметр «Предпочитать соиспользование сессий вместо балансировки». В зависимости от его значения новая сессия либо будет направлена на ту же ноду, либо на наименее нагруженную.
Если метрики с какой-либо из нод не получены или стали неактуальны, такая нода будет переведена в режим техобслуживания, а соответствующее событие об этом будет отражено в журнале «Универсального диспетчера» /var/log/termidesk/termidesk.log
.
Следующие события, связанные с механизмом балансировки, регистрируются в журнале фонда метапоставщика:
- достижение максимальной нагрузки ноды: «Значение индекса нагрузки достигло предела в 10000 slv. Узел <IP-адрес> не будет принимать новых пользователей до тех пор, пока нагрузка не снизится»;
- выбор наименее загруженной ноды (событие регистрируется для уровня DEBUG): «Пользователь будет перенаправлен на этот узел: <IP-адрес>, т.к. он наименее загружен»;
- вход пользователя на ноду: «Пользователь <Имя пользователя> успешно вошел в систему». Ограничение: в журнале РМ отражаются события входа всех пользователей, добавленных в фонд метапоставщика и подключившихся к одной ноде. Например, если в фонд добавлена группа с пользователями «user1» и «user2», тогда, несмотря на то, что пользователи получат разные РМ при подключении к одной ноде (назначенной ВМ), событие подключения «user2», присоединившегося позже, также зарегистрируется в журнале РМ «user1».
Из очереди балансировки исключаются поставщики ресурсов и фонды, находящиеся в режиме техобслуживания.