При кількості термінальних серверів більше одного, стає актуальним питання розподілу навантаження між ними.
Способів вирішення цього завдання є кілька. Найбільш поширені з них:
Вручну
Найпримітивніший спосіб. У кожного клієнта створюється два ярлики на робочому столі: "Основний сервер" і "Резервний сервер".
При цьому у половини клієнтів ярлик "Основний сервер"
вказує на "Сервер 1", "Резервний сервер" - на "Сервер 2", а в іншої половини - навпаки.
Таким чином досягається певний поділ навантаження між серверами, а також за недоступності одного з серверів,
користувачі в ручному режимі можуть підключитися до працюючого сервера і продовжити роботу.
Round-robin DNS
Round-robin DNS
На DNS сервері створюється кілька записів типу Host(A) з однаковим ім'ям (наприклад terminal.domain.local) і різними IP адресами.
Встановлюючи з'єднання, клієнти вертаються до terminal.domain.local, а DNS-сервер на перший запит видає IP адресу першого сервера,
на другий - другого і так далі по колу. Цей спосіб розподілу навантаження - більш правильний ніж попередній, проте має ряд недоліків::
Клієнти розподіляються між серверами по черзі незалежно від завантаженості серверів
Якщо якийсь із серверів не доступний, до нього все одно намагатимуться підключатися
Якщо сесія користувача вже створена на одному із серверів, зовсім не обов'язково, що при
повторному підключенні він потрапить на той же сервер, внаслідок чого створюється багато неактивних сесій
на різних серверах
Microsoft Session Directory
Рішення від Microsoft, призначене для балансування навантаження термінальних серверів.
Не підтримується на Windows Server Standard Edition (тільки Enterprise и Datacenter)
Показники завантаження сервера є навантаження мережного інтерфейсу, а чи не процесора, пам'яті, дискової підсистеми, кількість сесій тощо.
2X LoadBalancer
Мабуть, одне з найкращих рішень для балансування навантаження Microsoft Terminal Services та Citrix XenApp (Presentation Server), які існують на сьогодні.
Всі клієнти підключаються до однієї IP адреси LoadBalancer-а, котрий розподіляє навантаження між термінальними серверами. При цьому:
Користувачі підключаються до своїх існуючих сесій, якщо такі є
Навантаження розподіляється виходячи з фактичної завантаженості серверів (завантаженості процесорів, обсяг зайнятої/вільної пам'яті,
кількість сесій)
Підключення відбувається повністю "прозоро" для користувачів за допомогою стандартних клієнтських програм
Використовуючи клієнт 2X LoadBalancer Client, є можливість організувати тунель (через порт 80, наприклад),
яким передаватиметься весь трафік між клієнтом і LoadBalancer-ом. За необхідності весь трафік у тунелі може
шифруватися за допомогою SSL (підтримуються ключі 1024, 2048 та 4096 біт)
|