@sla0nru

Существует ли «правильная» реализация persistent/stick соединений для балансировки RDP?

Задача на первый взгляд довольно простая: требуется в отсутствии connection broker'а организовать балансировку RDP соединений на несколько терминальных серверов.

Казалось бы, ipvs, haproxy и другие предоставляют готовое решение, но проблема в том, что реализация persistent/stick соединений в этих инструментах такова, что запись из таблицы persistent/stick удаляется по истечению заданного тайм-аута независимо от того активно ли сейчас соединение, соответствующее этой записи. После удаления записи из таблицы обрыв соединения и повторное подключение приведет клиента на произвольный бекэнд, а не на тот, где осталась его сессия. Хочется максимально снизить вероятность такого исхода. Можно увеличить тайм-аут до нескольких суток, но этот вариант, по-сути, убивает балансировку, поэтому он пока не рассматривается.

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

Собственно, в этом и заключается вопрос: существуют ли средства балансировки с описанной реализацией persistent/stick соединений, когда отсчёт времени до удаления записи из таблицы persistent/stick активируется не по началу соединения, а по его завершению?
  • Вопрос задан
  • 402 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы