Сервер удалённых рабочих столов - это машина, на которой одновременно работают сеансы многих сотрудников. Приложения крутятся на сервере, пользователю едет картинка, обратно - нажатия клавиш и движения мыши. В мире Windows эта роль называется Remote Desktop Services, RDS; в разговоре её чаще зовут терминальным сервером.
Смысл понятен на примере: вместо пятидесяти рабочих станций, на каждой из которых надо ставить и обновлять программы, вы обслуживаете один сервер. Ниже - из чего RDS состоит, сколько под него нужно железа по официальным нормам Microsoft, и когда своё железо выгоднее аренды.
Путаницы в терминах здесь больше, чем в любой другой теме про Windows-инфраструктуру. Разберём по порядку.
| Термин | Что это | Как соотносится |
|---|---|---|
| RDP | Протокол передачи картинки и ввода | Транспорт. По нему работает всё остальное |
| RDS (Remote Desktop Services) | Роль Windows Server, платформа целиком | Включает и сеансовый режим, и VDI, и публикацию отдельных приложений |
| Сеансовый режим (session-based) | Много сеансов в одной общей ОС на сервере | То, что обычно называют «терминальным сервером» |
| VDI | Своя виртуальная машина на каждого пользователя | Тоже разворачивается через RDS, но это другая модель |
| RemoteApp | Публикация отдельной программы без рабочего стола | Режим внутри RDS |
Главное различие - между сеансовым режимом и VDI. В сеансовом все пользователи делят одну операционную систему, одно ядро и общие ресурсы: дёшево, плотно, но чужой зависший процесс задевает соседей, а персонализация ограничена. В VDI у каждого своя виртуальная машина со своей ОС: полная изоляция и свобода настроек, но и железа нужно кратно больше. Что выбрать и сколько это стоит по ресурсам, разбирается в статье про VDI-сервер и требования к железу.
Отдельно стоит сказать про саму аббревиатуру. В поиске «RDS» живёт своей жизнью: так называется система передачи данных в автомагнитолах (Radio Data System), российская дрифт-серия и управляемые базы данных у облачных провайдеров. Если вы пришли сюда за одним из них - вам не сюда.
Причин обычно четыре, и все они про управляемость.
Обновления в одной точке. Вышла новая версия 1С - поставили на сервер, и все сотрудники работают в ней с понедельника. Никаких обходов кабинетов и разбирательств, у кого какая сборка.
Данные не уезжают на устройства. Сотрудник работает в сеансе, файлы остаются в серверной. Ноутбук потеряли в такси - учётную запись отключили, и на этом история закончилась.
Работа не привязана к офису. Отключили электричество, прорвало трубу, человек уехал в другой город - подключение к тому же рабочему столу с любого устройства.
Требования к клиентским машинам падают. Вычисления идут на сервере, на столе достаточно тонкого клиента или старого ноутбука. Правда, экономия здесь не бесплатная: то, что вы сняли с рабочих станций, вы докупили в сервер.
Обратная сторона тоже есть, и её лучше знать заранее: сервер становится единой точкой отказа. Пока работала схема «у каждого свой компьютер», поломка задевала одного человека. Теперь остановка сервера останавливает всех сразу.
Развёртывание собирается из ролей. В небольшой компании их ставят на одну машину, в крупной разносят.
| Роль | Что делает | Обязательна |
|---|---|---|
| RD Session Host | Держит пользовательские сеансы, на нём запускаются приложения | Да, это и есть рабочая лошадь |
| RD Connection Broker | Распределяет подключения между узлами, возвращает пользователя в его прежний сеанс | Да в штатном развёртывании: без него нет коллекций и возврата в свой сеанс |
| RD Licensing | Хранит и выдаёт клиентские лицензии RDS CAL | Да, иначе через 120 дней доступ прекратится |
| RD Gateway | Шлюз для подключений из интернета поверх HTTPS | Только при доступе извне, но тогда обязательно |
| RD Web Access | Витрина опубликованных рабочих столов и приложений в браузере | Нет, по удобству |
Про RD Licensing стоит сказать отдельно, потому что о нём чаще всего забывают. После установки роли RDS даётся льготный период в 120 дней, в течение которого ферма работает без лицензий - это время на настройку и проверку. Когда период кончается, пользователь без выданной сервером лицензии в сеанс просто не войдёт. Сюрприз обычно случается в разгар рабочего дня через четыре месяца после запуска. Как устроены сами лицензии и чем RDS CAL отличается от обычных клиентских, разбирается в статье про лицензирование Windows Server.
RD Connection Broker нужен даже там, где узел один: без него пользователь, у которого разорвалась связь, при повторном подключении рискует попасть в новый сеанс вместо своего прежнего, с открытыми документами.
Здесь чаще всего берут цифру с потолка. У Microsoft есть официальные рекомендации по сайзингу узлов сеансов, и они устроены не через «гигабайты на пользователя», а через плотность: сколько пользователей помещается на одно виртуальное ядро.
| Тип нагрузки | Кто это | Пользователей на vCPU (максимум) | Минимум на узел |
|---|---|---|---|
| Лёгкая | ввод данных, простые учётные приложения, терминалы | 6 | 8 vCPU, 16 ГБ RAM |
| Средняя | офисная работа, документы, статические веб-приложения | 4 | 8 vCPU, 16 ГБ RAM |
| Тяжёлая | разработка, почта с большими архивами, динамические веб-приложения | 2 | 8 vCPU, 16 ГБ RAM |
| Максимальная | графика, видео, САПР, машинное обучение | 1 | 6 vCPU, 56 ГБ RAM |
Важная оговорка про vCPU. В таблице речь о виртуальных, то есть логических ядрах - потоках. На процессоре с многопоточностью одно физическое ядро даёт два логических. Если считать по физическим, ошибётесь примерно вдвое: 16-ядерный процессор с многопоточностью - это 32 vCPU.
Считается просто. Трид