Hosting & Servers

VDI / терминальный сервер

Два способа вынести рабочие столы пользователей на сервер в ЦОД: своя виртуальная машина каждому (VDI) или общие сессии в одной ОС (терминальный сервер).

Что такое VDI / терминальный сервер

VDI расшифровывается как Virtual Desktop Infrastructure — инфраструктура виртуальных рабочих столов. Идея простая: рабочий стол пользователя выполняется не на его компьютере, а на сервере в ЦОД, а до пользователя по сети доезжает только картинка. Обратно уходят нажатия клавиш и движения мыши.

Терминальный сервер решает ту же задачу другим способом. На Windows Server поднимается роль RDS (Remote Desktop Services, до 2008 года — Terminal Services), и все пользователи работают в сессиях внутри одной общей ОС.

Зачем это нужно: данные не покидают ЦОД (украли ноутбук — украли стекло и пластик), тяжёлые приложения работают рядом с базой, а не тянут её через интернет, парк рабочих мест обновляется в одном месте, и подключиться можно с чего угодно.

VDI и терминальный сервер: разница

Терминальный сервер (RDS) VDI
Модель одна ОС, много сессий своя ВМ каждому пользователю
Изоляция общая — сосед может съесть CPUполная, ресурсы нарезаны
Права администратора выдать нельзя можно, в пределах своей ВМ
Софт должен уметь работать в multi-session любой, как на обычном ПК
При падении ложится у всех сразу ложится у одного
Плотность на железе высокая ниже, ОС дублируется
Стоимость дешевле дороже
Лицензии Windows Server + RDS CAL ОС на каждую ВМ + брокер подключений

Практический вывод: терминальный сервер — дешёвый способ дать 30 бухгалтерам одно и то же приложение. VDI берут, когда пользователям нужны разные наборы софта, права администратора, изоляция друг от друга или гарантированные ресурсы.

Про лицензии стоит помнить отдельно: для терминального сервера RDS CAL покупаются сверх лицензии на сам Windows Server, по пользователям или по устройствам. Без сервера лицензирования роль работает в льготном периоде и затем перестаёт принимать подключения.

В VDI ВМ бывают персистентные (личная машина, изменения сохраняются) и неперсистентные (клонируется из золотого образа, при выходе откатывается). Второй вариант дешевле в обслуживании, но требует, чтобы профили и данные хранились отдельно от ВМ.

RDP, VNC и другие протоколы

Протокол — это то, как картинка и ввод ходят между сервером и пользователем.

RDP расшифровывается как Remote Desktop Protocol — протокол Microsoft (в разговоре «рдп»), штатный способ подключиться к Windows. Работает на порту 3389 (TCP, и UDP как дополнительный транспорт). Клиент в Windows — mstsc, в Linux — Remmina или FreeRDP. Передаёт не пиксели, а команды отрисовки, поэтому экономен к каналу. На Linux сервером RDP работает xrdp.

VNC расшифровывается как Virtual Network Computing — открытая система удалённого доступа поверх протокола RFB (Remote Framebuffer), порт 5900 плюс номер дисплея (:1 → 5901). В отличие от RDP просто гоняет содержимое экрана как картинку: работает где угодно и с любой ОС, но прожорливее к каналу и не даёт отдельных сессий — вы видите то же, что и человек за монитором. Классическая VNC-авторизация слабая и трафик не шифрует, поэтому VNC заворачивают в SSH или VPN. Реализации: TigerVNC, TightVNC, x11vnc, noVNC (доступ прямо из браузера).

Ещё встречаются: ICA/HDX (Citrix), Blast Extreme и PCoIP (VMware), SPICE (для ВМ на QEMU/KVM).

Из готовых платформ VDI строят на Citrix Virtual Apps and Desktops, VMware Horizon и Microsoft AVD; на российском рынке есть импортозамещающие решения, например Termidesk.

Что нужно для запуска

  • CPU и RAM — считаются на пользователя и умножаются на всех. Офисный профиль скромен, но браузер с десятком вкладок давно не скромен.
  • ДискNVMe. Утренний boot storm, когда сотня рабочих столов стартует одновременно, убивает медленные диски.
  • GPU — нужен для CAD, 3D и видео. Отдаётся через GPU passthrough (карта целиком одной ВМ) или через vGPU (карта делится между ВМ).
  • Сеть — тонкому клиенту важнее стабильная задержка, чем толщина канала: рывки курсора раздражают сильнее, чем медленная картинка.

Безопасность

Главное правило: порт 3389 не должен смотреть в интернет. RDP, открытый наружу, находят сканерами за часы, дальше идёт перебор паролей, а история протокола знает уязвимости уровня BlueKeep, когда для захвата машины не нужен был даже пароль.

Правильно: доступ через VPN или RD Gateway, двухфакторная аутентификация, ограничение по IP на межсетевом экране, блокировка после неудачных попыток. Смена порта с 3389 на другой отсеивает только ленивые сканеры и защитой не является.

Связанные термины

  • Виртуальная машина — основа VDI
  • Гипервизор — на чём выполняются рабочие столы
  • GPU passthrough — проброс видеокарты в ВМ под CAD и 3D
  • VPN — как правильно пускать пользователей внутрь
  • ЦОД — где физически стоят рабочие столы
  • VPS — с чего обычно начинают небольшой терминальный сервер

Готовы запустить GPU-задачу?

Запустить GPU-сервер