понедельник, 15 января 2018 г.

Немного о дизайне VDI. Часть 3. Верхнеуровневая архитектура

Продолжаем говорить о дизайне VDI. Предыдущие части доступны по ссылкам:
Часть 1. Введение
Часть 2. Постановка задачи

3.1 Концептуальная схема

После выработки и фиксации основных требований наступает черед разработки верхнеуровневой архитектуры.

Разработка верхнеуровневой архитектуры позволяет сформировать общее понимание назначения и принципов работы системы. Отличие верхнеуровневой архитектуры (HLD – high level design) от низкоуровневой архитектуры (LLD – low level design) заключает в широте охвата и меньшей детализации. На уровне High Level Design нет необходимости спускаться до уровня физических компонентов – указания количества и моделей серверов, процессоров, клиентских устройств, конкретных настроек ПО. HLD должен однозначно отвечать на вопросы – из каких блоков/подсистем состоит система и как они взаимодействуют друг с другом.

Начать проектирование можно с простой концептуальной схемы, которая будет показывать основные блоки, из которых состоит VDI:
  • Виртуальные десктопы.
  • Инфраструктура.
  • Клиенты.
Виртуальные десктопы (виртуальные рабочие станции / виртуальные ПК) представляют собой виртуальные машины с установленной ОС и набором приложений. Помимо ОС и приложений виртуальные десктопы также могут хранить пользовательские настройки (рабочее окружение) и различные документы, с которыми работают пользователи.

Одной из первых задач при проектировании данного блока является типизация/группировка виртуальных десктопов по определенному набору параметров (аппаратным характеристикам, установленной ОС и приложениям, типу создания и обновления), что позволяет уменьшить количество уникальных десктопов, упростить сайзинг ресурсов, развертывание, поддержку и резервирование таких десктопов.

Помимо крайне редкого случая One size fits all, когда предполагается использовать всего один тип виртуального десктопа для всех пользователей, можно группировать виртуальные десктопы по отделам (как правило сотрудники одного отдела выполняют однотипные функции, имеют одинаковые компьютеры и используют одинаковый набор приложений), либо более укрупненно – по категориям пользователей. Примеры распространенных категорий пользователей:

Task Worker – пользователь, работающий с определенным ПО и выполняющий ограниченный набор операций. Пример – сотрудники call-центра, сотрудники поддержки 1-й линии, помощники менеджеров. Task Worker’ы обычно используют только офисный пакет, web-браузер, почтовый клиент, и для них не требуется установка дополнительного ПО.

Knowledge Worker – пользователь, работающий с различным набором ПО, включая ПО для создания и редактирования документов, просмотра видео и flash-анимации. Для работы таким пользователям может потребоваться различное периферийное оборудование: принтеры, сканеры, аудио-гарнитуры, web-камеры, а также возможность подключения USB накопителей для копирования файлов. Пользователи могут работать не только из офиса, но и удаленно подключаться к виртуальным десктопам через Интернет.

Power User – продвинутый пользователь. Такие пользователи занимаются ресурсоемкими задачами для которых требуются производительные виртуальные десктопы. К этой категории можно отнести разработчиков ПО. Таким пользователя обычно требуется административный доступ к виртуальному десктопу для установки и работы со сторонним ПО.

Designer – отдельная категория продвинутых пользователей. Используют различные приложения для работы с графикой (ПО для редактирования изображений, ПО для 3D моделирования, CAD/CAM системы). Таким пользователям требуется специализированное оборудование – графические ускорители, мониторы с высоким разрешением, мощные тонкие клиенты для обеспечения надлежащего уровня производительности при работе с графикой.
Contractor – подрядчик. Временные сотрудники, которые работают с определенным набором ПО. Пользователям может потребоваться административный доступ и/или установка дополнительного ПО, а также удаленный доступ из Интернет.

VIP User – привилегированные пользователи. Несмотря на то, что данная категория обычно самая малочисленная, VIP пользователи предъявляют самые высокие требования к производительности, доступности и функциональным возможностям VDI.

Выделив основные категории пользователей станет возможным определить оптимальные вычислительные ресурсы, необходимые для работы виртуальных десктопов каждого типа, необходимый набор ПО, тип десктопов, способ их создания и т.д. Более подробно о типах десктопов будет рассказано в разделе 4. Подсистема VMware Horizon.

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

Способ разбиения инфраструктуры составные части может различаться в каждом конкретном случае, например, можно выделить серверное оборудование, дисковое хранилище, сеть передачи данных в отдельные модули, входящие в состав подсистемы виртуализации, либо описать их в качестве подсистем, с которыми взаимодействует подсистема виртуализации. Это же касается и вспомогательных сервисов, они могут быть реализованы в качестве подсистем, входящих в состав VDI инфраструктуры, либо, что чаще встречается на практике, это могут быть выделенные системы, которые уже эксплуатируются у заказчика, и с которыми требуется настроить интеграцию для VDI инфраструктуры.

Более подробно о подсистеме виртуализации будет рассказано в разделе "5. Подсистема виртуализации".

О брокерах VDI будет написано в разделе "4. Подсистема VMware Horizon".
Более подробно о вспомогательных сервисах будет рассказано в разделе "12. Дополнительные сервисы (доставка приложений, мониторинг) ".

Наконец, клиентские устройства. Помимо выбора типа клиентских устройств, следует учитывать место, откуда будут подключаться пользователи (внутренние доверенные сети или Интернет), а также периферийные устройства, которые будут подключаться к виртуальным десктопам.

В качестве клиентских устройств могут выступать различные устройства – стационарные компьютеры или ноутбуки под управлением Windows, MAC OS X, Linux, мобильные устройства (смартфоны, планшеты) под управлением iOS, Android, Windows Phone, тонкие или нулевые клиенты, а также устройства, поддерживающие HTML5 веб-браузеры.
О клиентских устройствах мы поговорим в разделе "10. Организация подключения и безопасность".

Доступ из недоверенных сетей может повлечь за собой дополнительные требования к безопасности – двухфакторная аутентификация, отключение возможности копирования файлов, использование только защищенных соединений и т.д.

3.2 Логический дизайн

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

На этом этапе можно составить таблицу соответствия требований и решений, которые обеспечивают их реализацию. Например:
Требование
Компонент
Технология / ПО
Требуется обеспечить централизованное управление виртуальными десктопамиVDI брокерHorizon View
Должен быть обеспечен безопасный доступ из сети ИнтернетУдаленный доступUnified Access Gateway
В случае отказа сервера VDI должно быть обеспечено автоматическое перенаправление подключений на резервный серверБалансирование доступаF5 BIG-IP
Гипервизор должен быть совместим с ПО управления виртуальными десктопамиПлатформа виртуализацииvSphere Desktop
Для экономии дискового пространства все виртуальные десктопы должны создаваться из единого образа с использованием технологии дельта-копийВиртуальные десктопыPersistent Linked Clones
В качестве ОС на виртуальных десктопах должна использоваться поддерживаемая клиентская версия ОС WindowsОС для виртуальных десктоповWindows 10 Enterprise
Подключение к виртуальным десктопом должно осуществляться с существующих ПК пользователей или с тонких клиентовДоступ к виртуальным десктопамКлиент Horizon Client
Тонкие клиенты Dell Wyse
На всех виртуальных десктопах должно быть предустановлено антивирусное ПОАнтивирусная защита ВМKaspersky Security Light Agent
Должен быть обеспечен мониторинг всех компонентов VDI инфраструктурыМониторингvRealize Operations for Horizon
Должна быть предусмотрена возможность установки на виртуальные десктопы дополнительного ПО не входящего в состав эталонного образаДоставка приложенийThinApp, App Volumes
Профили и настройки пользователей должны храниться на выделенном файловом сервереУправление профилями и настройками рабочего стола пользователейUser Environment Manager
Для ПО виртуализации должны использоваться стандартные серверы для установки в 19" стойкуТипы серверовRackmount серверы
Для хранения данных виртуальных машин должно использоваться распределенное хранилище на базе локальных накопителей, устанавливаемых в серверыХранилище данныхvSAN

Выбор тех или иных решений может приводить к возникновению дополнительных требований и ограничений. Например, использование All-flash vSAN требует наличие 10G Ethernet сети; Linked-Clone ВМ не поддерживают Storage vMotion миграцию; не все приложения могут быть упакованы и доставлены при помощи ThinApp или App Volumes.

При проектировании больших инфраструктур также следует помнить об максимумах, поддерживаемых в той или иной версии продукта. Один сервер View Connection Server может обслуживать до 4000 виртуальных десктопов (или до 2000 в версии 7.1 и ниже), чего более чем достаточно для большинства VDI инфраструктур, а группа серверов (Pod) до 20000 одновременных подключений (до 10000 в Horizon 7.1 и ниже). Несколько Pod могут объединяться между собой в федерацию (данный режим носит название – Cloud Pod Architecture) для организации работы еще большего числа пользователей (Horizon 7.0 поддерживает до 50000 одновременных подключений, Horizon 7.2 – до 120000 подключений, а Horizon 7.3 – до 140000 подключений). О других ограничениях можно узнать из документа VMware Horizon 7 Sizing Limits and Recommendations https://kb.vmware.com/kb/2150348

В зависимости от количества пользователей можно выделить несколько типов инсталляций VDI.

Небольшие инсталляции до 200 виртуальных десктопов (2-3 хоста), где, как правило, служебные ВМ и виртуальные десктопы в целях оптимизации использования ресурсов размещаются на одних и тех же хостах.

Для больших VDI сред (более 2000 ВМ) может потребоваться развернуть несколько серверов vCenter Server. Несмотря на то, что один сервер vCenter поддерживает до 10000 одновременно запущенных ВМ (в vCenter Server 6.5 – до 25000), он может стать узким местом при выполнении операций по созданию, запуску или обновлению виртуальных десктопов. В Horizon для одного сервера vCenter по умолчанию настроен лимит на количество одновременных операций по созданию десктопов (не более 20 для обычных десктопов, не более 8 – для Linked Clone десктопов), что может привести к длительным процедурам создания или обновления ВРС.

Так, например, если развертывание одной ВМ с использованием Linked Clones занимает 5 минут, то при стандартных настройках View для развертывания 1000 ВМ на одном vCenter потребуется порядка 10.5 часов. Для развертывания 2000 ВМ на одном vCenter может потребоваться уже 21 час. Кроме того, отказ vCenter может повлечь за собой невозможность управления большим количеством десктопов. В этом случае установка нескольких серверов vCenter позволить уменьшить домен отказа и распараллелить операции по обслуживанию десктопов.

Обратной стороной такого решения является необходимость обслуживания нескольких серверов vCenter, PSC, Composer, а также настройка Enhanced Linked Mode для получения возможности управления несколькими инсталляциями vCenter из единой консоли.
Помимо развертывания нескольких серверов vCenter в больших инсталляциях также разделяют кластеры vSphere в зависимости от характера нагрузки. Можно выделить два типа кластеров.

Первый тип кластера – ресурсный. В этом кластере находятся хосты, которые обслуживают виртуальные десктопы.
Второй тип кластера – служебный или инфраструктурный. В этом кластере находятся хосты, которые обеспечивают работу служебных ВМ – брокеров VDI, серверов vCenter, балансировщиков нагрузки, файловых серверов, СУБД, серверов для вспомогательных сервисов и т.д.

Разнесение ВМ по разным кластерам продиктовано следующими соображениями.
Снижение затрат на лицензирование. Windows Server требуется лицензировать только на хостах с запущенными ВМ Windows Server. Это же касается лицензий на СРК, если требуется бекапить только служебные ВМ.

Оптимизация нагрузки. Хосты в ресурсном кластере и инфраструктурном кластере могут различаться по аппаратной конфигурации. Как правило на хостах ресурсного кластера выше показатель консолидации, такие серверы имеют более мощные процессоры, больше ОЗУ по сравнению с инфраструктурными хостами. Во многих случаях, когда в организации уже развернута виртуальная инфраструктура, служебные ВМ размещаются на существующих мощностях.

Безопасность. Для хостов, обеспечивающих работу служебных ВМ и виртуальных десктопов, могут выполняться разные настройки безопасности, они могут подключаться к разным сетям, управляться администраторами.

Каждый ресурсных кластер (или группа кластеров) управляется своим сервером vCenter Server, имеет свой набор хранилищ и виртуальных сетей. Все это в совокупности образует стандартизованный блок, который обслуживает свой набор виртуальных десктопов (1000 – 10000 ВМ). Все управляющие серверы ресурсных блоков могут размещаться на вычислительных мощностях инфраструктурного блока. Использование блочного подхода позволит упростить масштабирование и обслуживание инфраструктуры за счет унификации архитектуры и модульности.

Такая инфраструктура может масштабироваться как горизонтально – путем увеличения количества ресурсных блоков, так и вертикально – блок могут расширяться за счет добавления дополнительных хостов, хранилищ и виртуальных сетей, по мере увеличения числа пользователей.

Для огромных VDI сред (от 10000 виртуальных десктопов) может потребоваться развернуть несколько Pod инсталляций Horizon View и объединить их в общую федерацию. На рисунке показан пример инфраструктуры на 16000 виртуальных десктопов.

От чего зависит размер и конфигурация одного блока? Во-первых – от ограничений, накладываемых ПО (vCenter Server, ESXi), во-вторых – от конфигурации виртуальных десктопов и физических хостов.

Текущие максимумы vSphere позволяют создавать кластеры вплоть до 64 узлов. При этом в кластере может быть запущено до 8000 ВМ, защищаемых при помощи HA. При использовании хранилища VSAN в кластере может быть развернуто до 6000 ВМ. Эти лимиты с лихвой перекрывают рекомендации вендора по количеству ВМ, управляемых одной инсталляцией vCenter Server – 4000 ВМ (или 2000 в старых версиях).
https://blogs.vmware.com/performance/2015/03/failover-time-vcenter-server-6-0-protected-vsphere-ha.html

Но даже для таких "небольших" инсталляций есть варианты. Что лучше – развернуть один кластер на 4000 ВМ или несколько кластеров меньшего размера?

Большой по размеру кластер позволяет резервировать меньших ресурсов для обеспечения заданного уровня доступности и эффективнее балансировать нагрузку между узлами.
Сравним два варианта – два кластера по 11 узлов и один 22 узловой кластер. При одинаковом уровне резервирования ресурсов по схеме N+1, в первом случае потребуется зарезервировать ресурсы 2 узлов, а во втором – всего один. Кроме того, 22 узловой кластер позволит обеспечить уровень резервирования N+2 при одинаковых накладных расходах с двумя 11-узловыми кластерами, что позволит гарантированно переживать отказ сразу двух хостов или же переживать отказ одного хоста в момент проведения работ по обслуживанию в кластере.
С другой стороны, для корректной работы механизмов HA и DRS, требуется, чтобы все узлы кластера имели идентичную конфигурацию хранилищ и сети – все общие хранилища должны быть подключены ко всем хостам, хосты должны иметь идентичную конфигурацию групп портов или подключаться к одному распределенном виртуальному коммутатору. Создавая несколько кластеров, вы тем самым уменьшаете размер домена отказа, но в тоже время повышаете накладные расходы на администрирование.

Говоря о распределении ВМ в крупных инсталляциях может возникнуть закономерный вопрос: что является более оптимальным – равномерное распределение десктопов по всем блокам/кластерам/хостам или ассиметричная конфигурация? Например, при необходимости размещения 9000 ВМ у вас есть вариант использовать три блока по 3000 ВМ или три блока по 4000/4000/1000 ВМ. Каждый из вариантов имеет свои плюсы.

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

Второй вариант – сложнее в первоначальной настройке из-за ассиметричной конфигурации, однако в дальнейшем проще в масштабировании, т.к. потребует настроить только один блок из трех.

На размер блока также влияет показатель консолидации – количество запускаемых ВМ на одном хосте, который напрямую связан с аппаратной конфигурацией ВМ и хостов. Например, для размещения 100 ВМ, каждая из которых имеет по 4 ГБ ОЗУ серверу потребуется 440 ГБ (с учетом 10% запаса для работы гипервизора и накладные расходы). Это весьма далеко от оптимальных значений по объему оперативной памяти (как правило, в серверах устанавливается 384 ГБ или 512 ГБ ОЗУ модулями по 16, 32 или 64 ГБ для организации многоканального режима работы). Поэтому в данном случае более оптимальным может являться размещение на одном сервере 85 или 115 ВМ.

Большое влияние на архитектуру VDI оказывает требование по обеспечению катастрофоустойчивой защиты виртуальных десктопов. Если говорить о доступных вариантах, то катастрофоустойчивая VDI инфраструктура может быть реализована следующими методами:
  • Развертывание двух полностью независимых инфраструктур (основной и резервной).
  • Частичное резервирование инфраструктур с возможность ручного или полуавтоматического переключения или внешних механизмов, обеспечивающих катастрофоусточивость (репликацию томов СХД, резервное копирование и использование сценариев автоматического развертывания и т.д.).
  • Создание территориально-распределенной инфраструктуры, обеспечивающей автоматическое переключение между площадками, которые могут работать в режиме active-active (Stretched Cluster).
Для всех вариантов могут использоваться механизмы, обеспечивающие балансировку подключений между площадками. Более подробно о вариантах обеспечения катастрофоустойчивости в главе "11. Доступность, Резервное копирование и аварийное восстановление".

3.3 Выбор версий и определение совместимости ПО

Несмотря на то, что выбор конкретных версий используемого ПО не является первоочередной задачей при планировании верхнеуровневой архитектуры, они могут наложить серьезные ограничения на планируемую инфраструктуру, в первую очередь, из-за ограничений по совместимости (в организации может быть развернуто ПО резервного копирования, мониторинга или безопасности, которое не совместимости с последними версиями ПО VDI). Кроме того, часть функциональных возможностей доступны только в определенных версиях ПО (например, Blast появился в Horizon 7.0, дедупликация и компрессия в VSAN 6.2 и выше и т.д., поддержка vCenter Server Appliance HA в vCenter 6.5 и т.д.). Для решения этой задачи требуется подготовить матрицу совместимости. Пример таблицы.
Horizon
vSphere
vSAN
vCenter
vROps for Horizon
7.36.5d6.66.5d6.5.1
7.06.06.06.06.1

Совместимость версий продуктов VMware Можно посмотреть по ссылке: https://partnerweb.vmware.com/comp_guide2/sim/interop_matrix.php

При выборе ПО также следует руководствоваться сроками окончания поддержки на те или иные версии ПО: https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/support/product-lifecycle-matrix.pdf

Продолжение доступно по ссылкам:

понедельник, 25 декабря 2017 г.

PCoIP Log Analyzer для анализа журналов PCoIP

Update: вышла обновленная версия (v2.1), теперь в формате модуля для PowerShell, содержащего команды для анализа журналов

Для собственных нужд написал модуль на PowerShell для разбора журналов pcoip_server, создаваемых агентом VMware Horizon Agent.

Модуль доступен для загрузки со страницы проекта: https://github.com/omnimod/PCoIPLogAnalyzer

С помощью команд из модуля можно проанализировать файл журнала и получить разнообразную полезную информацию о PCoIP сессии.

Результаты также можно экспортировать в текстовый файл, CSV таблицу, или создать HTML отчет с графиками.

Для установки модуля просто скопируйте файл PCoIPLogAnalyzer.psm1 на свой компьютер. Затем выполните команду Import-Module PCoIPLogAnalyzer.psm1 для добавления команд в PowerShell. Модуль содержит следующие команды:

  • Get-PCoIPStatistics
  • Import-PCoIPLog
  • Show-PCoIPStatistics
  • Export-PCoIPStatistics

Команда Get-PCoIPStatistics предназначена для анализа файла журнала и создания отчетов и имеет несколько параметров запуска:
Get-PCoIPStatistics -FilePath <string> [-ResultPath <string>] [-Format <string>] [-NoScreenOutput] [-MaxSamples <int>]

Параметры:
  • FilePath <string> - (обязательный) Указывает путь к pcoip_server файлу журнала для анализа.
  • ResultPath <string> - (опциональный) Указывает путь к создаваемому файлу отчета.
  • Format <string> - (опциональный) Задает формат создаваемого отчета. Допустимые значения: CSV, HTML или TEXT. По умолчанию если параметр не задан, файл отчета создается в текстовом формате (TEXT).
  • NoScreenOutput - (опциональный) Если указан, то пропускает вывод информации на экран.
  • MaxSamples <int> - (опциональный) Устанавливает максимальное количество выводимых строк в таблицах. Если не задан, используется значение по умолчанию: 500.
Примеры:
Проанализировать файл журнала и вывести информацию на экран:
Get-PCoIPStatistics -FilePath "C:\Temp\pcoip_server_2017_12_19_000034d0.txt"

Проанализировать файл журнала, вывести информацию на экран и сохранить отчет в HTML файле:
Get-PCoIPStatistics -FilePath "C:\Temp\pcoip_server_2017_12_16_00000230.txt" -ResultPath "C:\Temp\report.html" -Format HTML

Команда Import-PCoIPLog анализирует журнал и выдает в результате работы объект PSObject, содержащий различную полезную информацию из журнала.
Import-PCoIPLog -FilePath <string>

Параметры:
  • FilePath <string> - (обязательный) Указывает путь к pcoip_server файлу журнала для анализа.
Примеры:
Проанализировать файл журнала и сохранить результат в переменной:
$PCoIPLog = Import-PCoIPLog -FilePath "C:\Temp\pcoip_server_2017_12_19_000034d0.txt"

Известные ограничения

  1. Текущая версия поддерживает только pcoip_server файлы журналов, созданные агентом VMware Horizon Agent версии 5.3, 6.x 7.x. Модуль не тестировался на журналах из других версий.
  2. Текущая версия не отображает часть статистики из файлов журналов, созданных агентом, установленным на рабочие станции с адаптером PCoIP Hardware Host Card (Teradici Remote Workstation Card).
  3. Для корректного отображения стилей и графиков в HTML файле, компьютеру требуется доступ к ресурсам https://code.jquery.com и https://cdnjs.cloudflare.com для загрузки дополнительных javascripts сценариев и таблиц стилей CSS.

понедельник, 4 декабря 2017 г.

Немного о дизайне VDI. Часть 10. Организация подключения и безопасность

10.1 Варианты подключения к виртуальным десктопам

Продолжаем говорить о дизайне VDI. Предыдущие части доступны по ссылкам:
Часть 1. Введение
Часть 2. Постановка задачи
Часть 3. Верхнеуровневая архитектура
...
Часть 6. Лицензирование VDI

Подключение к виртуальным десктопам может осуществляться одним из трех способов:
  • Подключение через брокер или прокси-сервер с использованием механизма туннелирования сессионного трафика.
  • Подключение через брокер или прокси-сервер без использования механизма туннелирования.
  • Прямое подключение с клиентского устройства к виртуальному десктопу.
Первые два варианта требуют для своей работы функционирующего брокера подключений (в случае Horizon – View Connection Server), а при доступе из Интернет и пограничного сервера (View Security Server, Unified Access Gateway, либо стороннее устройство). Брокер является единой точкой подключения, выполняет аутентификацию пользователя и выдает перечень десктопов доступных для подключения. Дальнейшая схема различается в зависимости от того используется режим туннелирования или нет. При туннелировании трафика клиентское устройство устанавливает вторичное подключение к брокеру (или прокси-серверу), который, в свою очередь, подключается к десктопу. Весь трафик сессии от клиента до виртуального десктопа идет через брокер. Это позволяет легко реализовать сценарии подключения пользователей из сети Интернет, без необходимости использования VPN или настройки публичных IP-адресов для виртуальных десктопов.

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

Последний вариант (Direct connection agent) позволяет клиенту напрямую подключаться к десктопу без использования брокера. Данный режим в основном используется в небольших тестовых инсталляциях или при недоступности брокера.

Выбор протокола для подключения также влияет на архитектуру VDI. На текущий момент Horizon поддерживает следующие протоколы для подключения к виртуальным десктопам.
Функции
RDP
PCoIP
Blast (Extreme)
HTML5 (Blast)
Способ подключения
Клиент Horizon Client
Клиент Horizon Client
Клиент Horizon Client
Веб-браузер
Транспорт
TCP
UDP
TCP или UDP
TCP
Туннелирование через View Security Server, UAG
Да
Да
Да
Да
Возможность прямого подключения к десктопу
Да, (Direct connection agent или клиент RDP)
Да, (Direct connection agent)
Да, (Direct connection agent)
Да, View HTML Access)
Многомониторные конфигурации
Да
Да
Да
Да
Передача буфера обмена (Clipboard Redirection)
Да
Да
Да
Да
USB Redirection
Да
Да
Да
Нет
Serial Port Redirection
Нет
Да
Да
Нет
Virtual Printing / проброс принтера
Да
Да
Да
Нет
Воспроизведение звука
Да
Да
Да
Да
Проброс микрофона
Да
Да
Да
Да
Проброс сканеров
Нет
Да
Да
Нет
Проброс локальных дисков
Да
Да
Да
Нет
Flash Redirection
Нет
Да
Да
Нет
Поддержка Multimedia Redirection
Да
Да
Да
Нет
Поддержка RTAV
Нет
Да
Да
Да
Поддержка Skype for Business
Нет
Да
Да
Нет
Аппаратное кодирование протокола
Да, зависит от ОС
Да, Teradici PCoIP Hardware Accelerator
Да, графические адаптеры NVIDIA GRID/Tesla
Да, графические адаптеры NVIDIA GRID/Tesla
Аппаратное декодирование протокола
Да, зависит от клиента
Только на нулевых клиентах Teradici
Да, графические адаптеры
Только в веб-браузере Chrome, графические адаптеры
Поддержка Lossless режима
Да, зависит от ОС
Да
Да
Да

При выборе протокола следует учитывать, что поддержка многих функций зависит также от используемого клиентского устройства и версии ОС, установленной на виртуальном десктопе.

Протоколы PCoIP или Blast являются более оптимальным выбором, поскольку помимо более широких функциональных возможностей, обеспечивают лучшее качество изображения, меньшие задержки и утилизацию канала, чем RDP, хотя большую роль здесь играет версия ОС (Windows 10 обеспечивает гораздо лучшие показатели сжатия и качества в сравнении с Windows 7 или Windows 8: https://cloudblogs.microsoft.com/enterprisemobility/2016/01/11/remote-desktop-protocol-rdp-10-avch-264-improvements-in-windows-10-and-windows-server-2016-technical-preview/).

HTML5 клиент может применяться в качестве вспомогательного варианта, в тех случаях, когда пользователь подключается с специализированных клиентских устройств и не имеет возможности установить полнофункциональный клиент Horizon Client. Несмотря на свою "платформонезависимость", ряд функций, такие как аппаратное декодирование и многомониторные конфигурации поддерживаются только для браузера Google Chrome.

Еще один немаловажный показатель – это приспособленность протокола к работе на нестабильных, медленных каналах. Согласно документу Blast Extreme Display Protocol in Horizon 7 (https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/vmware-horizon-7-view-blast-extreme-display-protocol.pdf) протокол PCoIP способен работать на каналах с потерями пакетов, достигающих 15%, в то время как Blast может «пережить» до 20% потерь.

Последний фактор – это простота публикации протокола на межсетевых экранах. Лидером здесь является RDP, поскольку для его работы при использовании режима туннелирования требуется открыть только один порт – TCP 443. Для Blast помимо TCP 443 требуется открыть TCP 8443 и опционально UDP 8443, хотя в случае использования Unified Access Gateway есть возможность туннелирования трафика только через TCP 443. Для PCoIP помимо TCP 443 требуется открыть доступ по портам TCP 4172 и UDP 4172. В большинстве случаев, когда не работает подключение по PCoIP, и пользователь видит перед собой черный экран, это означает, что администраторы забыли открыть доступ по порту UDP 4172.

10.2 Клиентские устройства

Выбор протокола связан с используемыми клиентскими устройствами. Horizon поддерживает следующие типы клиентских устройств:
  • Стационарные компьютеры и ноутбуки с ОС Windows, MAC OS X, Linux или Chrome OS.
  • Тонкие клиенты под управлением Windows Embedded / IoT, Linux или иных ОС, например, тонкие клиенты Dell Wyse, HP, Lenovo, Atrust, Igel, Fujitsu и других производителей.
  • Нулевые клиенты с аппаратной поддержкой PCoIP на базе чипов Teradici.
  • Мобильные устройства – планшеты и смартфоны с ОС iOS, Android, Windows Phone.
  • Устройства, оснащенные HTML5 совместимым браузером.
Критериями выбора клиентского устройства (помимо стоимости) являются: производительность, функциональные возможности, удобство эксплуатации, надежность и защищенность.

Производительность тонкого клиента напрямую влияет на частоту прорисовки и качество изображения, а, следовательно, на удобство и комфорт работы пользователя. В большинстве случаев производительности процессоров уровня Core i3 или Pentium достаточно для обеспечения работы в большинстве приложений, а вот процессоры Intel Atom или AMD G-series, не говоря уже о процессорах с архитектурой ARM, могут не справиться с обработкой изображения в высоком разрешении с частой перерисовкой экрана (воспроизведение видео, работа графикой, многомониторные конфигурации).

Решить проблему с недостаточно производительными процессорами позволяют тонкие клиенты, поддерживающие VMware Blast. Данный протокол использует кодек H.264 и для декодирования изображения может задействовать графический адаптер клиентского устройства, тем самым снижая нагрузку на процессор и ускоряя процесс обработки изображения, что позволяет обеспечивать приемлемый уровень производительности даже на ТК начального уровня. На текущий момент далеко не все клиенты, поддерживающие VMware Blast, поддерживают аппаратное декодирование (например, ТК Dell Wyse с ОС ThinOS версии 8.4.110 и ниже), кроме того следует помнить о некоторых нюансах работы (http://blog.vmpress.org/2017/05/vmware-blast-h264.html).

Альтернативой ТК с аппаратной поддержкой Blast являются нулевые клиенты на базе процессоров Teradici (TERA2 2321 и 2220). Данные ТК обеспечивают высокий уровень производительности, сопоставимый со стационарными компьютерами, экономичны, просты в настройке и эксплуатации, однако из-за ограничений Teradici OS не поддерживают многие функции Horizon.

Если говорить о функциональных возможностях, то здесь лидерами являются компьютеры с ОС Windows и клиентами Horizon Client. Версии Horizon Client под MAC OS X или Linux не поддерживают проброс сканеров или последовательных портов, а у нулевых клиентов Teradici также отсутствует поддержка протоколов RDP и Blast, функций Flash Redirection, MMR, RTAV, Virtual Printing и пр.

Linux является крайне популярной ОС для установки на тонкие клиенты (у каждого производителя найдется пара-другая моделей ТК с Linux). Некоторые вендоры предоставляют оптимизированную версию ОС Linux, которая может быть установлена на существующие компьютеры, превращая их в ТК. Среди популярных решений можно отметить:
  • Thinstation.
  • Dell Wyse PC Extender.
  • Igel Universal Desktop Converter.
  • Stratodesk NoTouch Desktop.
Важный нюанс, хотя большинство современных тонких клиентов с Linux базируются на процессорах с архитектурой Intel x86, до сих пор остается некоторое количество устаревших моделей на базе процессоров ARM. Horizon Client для ARM процессоров имеет функциональные ограничения (отсутствие RTAV и Flash URL Redirection) по сравнению с Horizon Client для Linux на x86 процессорах. Клиенты для платформ iOS, Android, Windows Phone и HTML5 клиент функционально крайне ограничены, однако представляют интерес благодаря мобильности, имея доступ к Интернет, пользователь всегда может подключиться к своему виртуальному десктопу.

Пару слов следует сказать о ТК Dell Wyse с ОС ThinOS. Данные клиенты интересны как альтернатива нулевым клиентам благодаря простоте настройки, поддержке нескольких брокеров и протоколов подключения, небольшому размеру образа ОС и возможности установки дополнительных пакетов. Функционально ТК с ThinOS находятся где-то между нулевыми клиентами и клиентами под ОС Linux.

Большинство моделей ТК также обладают возможностью централизованной настройки и обновления при помощи сервера управления (Dell Wyse Device Manager или Wyse Management Suite, HP Device Manager, Atrust Device Manager, PCoIP Management Console и другие). ТК с ОС Windows могут также управляться стандартными инструментами вроде групповых политик или Microsoft SCCM.

При выборе модели следует учитывать политику производителя в отношении выпуска обновлений. Некоторые производители требуют действующей поддержки или приобретения подписки для получения доступа к обновлениям прошивок ТК.

Что касается безопасности, на ТК с ThinOS и нулевых клиентах Teradici у пользователей отсутствует доступ к файловой системе, поддерживается экспорт логов на внешнее хранилище или сервер управления, а также имеется разграничение пользовательского и административного режима. На многих Windows и Linux ТК может быть активирован режим защиты от записи, который позволяет после перезагрузки автоматически откатывает все изменения, сделанные на ТК. Такой режим помимо повышения безопасности может усложнить установку дополнительных приложений и обновлений на ТК, т.к. потребует предварительного отключения защиты. Показателен размер установочного образа ОС (прошивки) для ТК разных типов:
  • Нулевой клиент Teradici: 5 – 10 МБ.
  • Тонкий клиент с ThinOS: 20 – 30 МБ.
  • Тонкий клиент с Linux: 600 – 1200 МБ.
  • Тонкий клиент с Windows: 2 – 8 ГБ.
В таблице представлено сравнение функциональных возможностей клиентов по платформам. В качестве специализированных клиентских устройств рассматриваются только нулевые клиенты Teradici и ТК Dell Wyse с ОС Thin OS. Большинство оставшихся ТК на рынке в качестве ОС используют ОС Windows или Linux.

Ознакомиться со всеми функциональными возможностями клиентов под различные платформы можно на странице документации по клиентам (https://www.vmware.com/support/viewclients/doc/viewclients_pubs.html).

10.3 Удаленный доступ

Для организации удаленного доступа используются пограничные серверы, в качестве которых могут выступать VMware Security Server, VMware Unified Access Gateway (UAG) или решения от сторонних производителей (F5 Big-IP, Citrix Netscaler Gateway и др.).

Основные отличия Security Server от UAG приведены в таблице:
Описание
Security Server
Unified Access Gateway
Тип установкиНа Windows Server 2008 R2 и вышеLinux Virtual Appliance
Интеграция с View Connection Server1 к 1
Один Security Server связывается (pairing) только с одним Connection Server, использование балансировщика между security server и connection server не поддерживается
Многие к 1 или многие ко многим
К одному и тому же Connection Server могут подключаться несколько UAG. При балансировании Connection Server несколько UAG могут подключаться к нескольким Connection Server
Порты/протоколы для интеграции с Connection ServerIPSEC при использовании режима (IPSec security) или TCP 4001, TCP 4002 и т.д.HTTPS (TCP 443)
Поддерживаемые функцииMMR
USB Redirection
Two-factor Authentication (RSA SecurID или Radius)
Smart-Card Authentification
USB Redirection
MMR
USB Redirection
Two-factor Authentication (RSA SecurID или Radius)
Smart-Card Authentification
USB Redirection
НастройкиНастройки туннелирования и аутентификации задаются на уровне парного Connection ServerНастройки туннелирования и аутентификация задаются на уровне UAG
МаксимумыМаксимальное кол-во одновременных подключений: 2000​• PCoIP Sessions = 2,000
• Blast Extreme Sessions – UDP = 1,000
• Blast Extreme Sessions – TCP = 2,000

Основное отличие Security Server от UAG заключается в том, что UAG представляет собой предустановленный виртуальный апплайнс на базе ОС Linux и не требует лицензии Windows.

UAG гораздо проще в установке и настройке, он использует только HTTPS протокол для интеграции с Connection Server и не требует открытия большого кол-ва портов между Security Server и Connection Server.

Security Server поддерживает режим развертывания по схеме 1 к 1, для каждого Connection Server’а создается один парный Security Server, варианты, когда к одному Connection Server’у подключаются два Security Server или, наоборот, когда один Security Server подключается к двум Connection, не поддерживается. Для обеспечения безопасности передаваемых данных между Security Server и Connection Server может быть настроен IPSec.

Использование Security Server’ов на больших инсталляциях связано с определенными ограничениями в случаях, когда вам необходимо сделать разные настройки туннелирования и аутентификации для разных пользователей, подключающихся из внутренних и внешних сетей. Например, вы хотите, чтобы для внутренних пользователей аутентификация по смарт-картам была опциональна и не использовалось туннелирование, а для внешних пользователей использовалось туннелирование и была бы обязательна аутентификация по смарт-картам или SAML аутентификация при интеграции с Identity Manager (…и еще там тэги разные для разных пулов и Connection Server’ов).

Так как данные настройки задаются на парном Connection Server и не могут быть переопределены на Security Server, все варианты комбинаций не получится задать в рамках одного POD’а и обеспечить при этом отказоустойчивость подключений.

UAG поддерживает больше сценариев развертывания по сравнению с Security Server, помимо варианта один Connection Server – один UAG, несколько UAG могут подключаться к одному и тому же Connection Server, или один UAG может подключаться к нескольким Connection Server через балансировщик нагрузки.

Также UAG позволяет настроить проксирование трафика BLAST Extreme через единый порт (TCP 443), в отличие от Security Server, который требует открыть и TCP 443, и TCP 8443. Помимо предоставления доступа к VDI инфраструктуре Horizon, UAG также может использоваться для публикации Identity Manager и AirWatch, и все через один IP адрес.

Решения от сторонних производителей (Citrix и F5) предоставляют функции PCoIP Proxy сервера и могут заменить собой Security Server или UAG. Кроме проксирования PCoIP трафика, сторонние решения также могут осуществлять балансирование нагрузки, выступать в качестве серверов публикации приложений, выполнять SSL Offload и т.д.

Обычно серверы Security Server или UAG размещаются в DMZ сети, однако следует помнить, что клиент устанавливает туннелированное подключение через Security Server/UAG, минуя Connection Server, соответственно, между ними и виртуальными десктопами должна быть настроена маршрутизация трафика и открыт доступ по соответствующим протоколам.

Более подробно о портах и протоколах, необходимых для работы Horizon, вы можете узнать из документа: https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/vmware-horizon-7-end-user-computing-network-ports.pdf.

10.4 Балансирование нагрузки

Настройка балансировщика подключений между несколькими Connection Server или пограничными серверами преследует собой две цели:
  • Распределение нагрузки в больших инсталляциях, когда производительности одного сервера недостаточно.
  • Обеспечение отказоустойчивости на случай выхода из строя одного из серверов.
Конечно, всегда есть вариант сообщить пользователям адреса нескольких Connection Server или пограничных серверов и выдать простую инструкцию вида: "–Если не удается подключиться к одному серверу, попробуйте подключиться к другому.", однако такой вариант с ручным переключением подходит только для небольших инсталляций и для терпеливых пользователей.

Самым простым в настройке вариантом балансировки является DNS Round Robin. Для каждого IP-адреса сервера Connection Server (или пограничного сервера) создается A-запись с одним и тем же именем (например, vdi.company.local), которое используется клиентами для подключения. При запросе клиентом адреса у DNS сервера, сервер возвращает список IP адресов. Для каждого запроса порядок адресов меняется, таким образом, один клиент подключиться к серверу Connection Server, который в списке адресов находится на первом месте, второй клиент подключится ко второму серверу, и так далее. DNS Round Robin позволяет равномерно распределить входящие подключения по серверам, однако имеет несколько недостатков. Во-первых, DNS Round Robin не выполняет проверку доступности серверов, поэтому при отказе сервера продолжает возвращать список, включающий его IP адрес, что может привести к тому, что клиент предпримет попытку подключиться к нерабочему серверу.

Во-вторых, отсутствие persistence, одному и тому же клиенту, при каждом запросе выдается список, в котором меняется порядок IP-адресов, из-за чего могут возникать различные проблемы с подключением.

В-третьих, при использовании DNS Round Robin не отслеживается количество активных подключений к каждому серверу и уровень его загрузки.

Другой вариант предполагает использование балансировщика сетевой нагрузки: встроенного (Windows Network Load Balancer), либо внешних (Citrix NetScaler, F5 BIG-IP, KEMP Loadmaster, NSX Edge, HAProxy и др.). Среди преимущества использования внешних балансировщиков:
  • Упрощение сетевой конфигурации серверов View Connection Server по сравнению с NLB.
  • Поддержка различных алгоритмов балансировки (failover, round-robin, балансировка по числу активных соединений, балансирование по загрузке серверов).
  • Проверка здоровья балансируемого сервиса (health check).
  • SSL offloading – позволяет выполнять шифрование соединения только на стороне клиента-балансировщика, и передавать трафик между балансировщиком и Connection Server в незашифрованном виде, что снижает нагрузку на серверы View.
  • Глобальная балансировка (Global Load Balancing) для территориально-распределенных инсталляций VMware Horizon.
Для Horizon внешние балансировщики могут быть настроены в одном из двух режимов:
  • Балансирование только первоначального HTTPS соединения.
  • Балансирование всего трафика (включая PCoIP или Blast).
Балансирование только служебного трафика создает существенно меньшую нагрузку на балансировщики, но требует прямого доступа с клиентов до Connection Server или пограничных серверов по протоколам PCoIP / Blast, что потребует дополнительных IP-адресов в случае публикации из Интернет и настройки межсетевого экрана. Первичное соединение по HTTPS выполняется через балансировщик (например, balancer.company.local), который перенаправляет трафик на один из Connection Server. После выбора десктопа клиент устанавливает туннелированное подключение с соответствующим сервером View Connection или пограничным сервером (например, view01.company.local).


В случае балансирования всего трафика через балансировщик идет не только служебный трафик, но также трафик удаленной сессии PCoIP/Blast. Это приводит к большей нагрузке на балансировщик, а также требует настройки дополнительных правил балансирования для сессионного трафика (по портам TCP/UDP 4172 для PCoIP, и TCP/UDP 8443/443 для Blast, зато позволит упростит публикацию из Интернет, т.к. публичный IP адрес потребуется только для балансировщика. Кроме того, при использовании балансировщика с функциями L7 (application) firewall, такое устройство может использоваться для защиты серверов View от различных сетевых атак.

Если вы планируете балансировать весь траффик, а не только первоначальное подключение по HTTPS, то на балансировщиках требуется включить sticky sessions/affinity, чтобы трафик PCoIP/Blast перенаправлялся на тот же Connection Server, через который было установлено первоначальное соединение.


Еще одна важная функция, которую предоставляют внешние балансировщики, это проверка здоровья балансируемого сервиса (health check). Балансировщик периодически выполняет подключение к балансируемому серверу для проверки его состояния. В случае если проверка завершается неудачно, балансировщик может временно исключить сервер из списка и перенаправлять подключения на оставшиеся серверы. Для HTTPS трафика предпочтительно использовать проверку здоровья на уровне приложения. Например, при публикации Connection Server балансировщик может выполнять проверку здоровья путем выполнения HTTP GET запроса для получения файла иконки сайта ("/favicon.ico"). Этот вариант позволит избежать у пользователей проблем с подключением, возникающих при использовании менее строгих вариантов проверки здоровья, например, при помощи ping’а или telnet’а на определенный порт.

Если к VDI инфраструктуре не предъявляются повышенные требования к безопасности, и нет необходимости использования application firewall на балансировщике, то вариант с балансированием только HTTPS является предпочтительным. Для балансирования HTTPS трафика будет достаточно балансировщика начального уровня, это позволит снизить затраты на развертывание (многие балансировщики лицензируются по функциональным возможностям и пиковой полосе пропускания).

10.5 Двухфакторная аутентификация

Двухфакторная аутентификация предоставляет дополнительный уровень защиты при подключении и позволяет снизить риски при утечке или подборе логина и пароля учетных записей пользователей. Horizon поддерживает следующие механизмы двухфакторной аутентификации:
  • RSA SecurID
  • RADIUS
  • Смарт-карты
Аутентификация RSA SecurID работает в связке с RSA Authentication Manager и требует наличия у пользователя программного или аппаратного генератора временных паролей SecurID. При подключении к Connection Server у пользователя будет запрошен логин и временный пароль, и в случае успешной аутентификации на RSA пользователю потребуется ввести логин и пароль своей учетной записи (второй фактор).

При интеграции Horizon с VMware Identity Manager и настройке SAML аутентификации может быть задействован механизм True SSO, позволяющий избавиться от необходимости ввода логина и пароля при аутентификации через RSA SecurID на портале Identity Manager.

Принцип работы механизма True SSO основан на генерировании и использовании одноразовых цифровых сертификатов пользователей. В инфраструктуре развертывается дополнительный сервер Horizon Enrollment Server, который отвечает за запрос сертификатов от имени пользователя и передачу сертификата серверу View для дальнейшей аутентификации пользователей.

Интеграция Horizon с RADIUS серверами позволяет обеспечить работу различных механизмов двухфакторной аутентификации, например, JaCarta Authentication Server – аналог RSA SecurID.

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

Поскольку двухфакторная аутентификация настраивается на уровне отдельных Connection Server, то для реализации разных способов аутентификации для различных категорий пользователей (например, для обычных и защищенных пользователей) требуется развернуть несколько экземпляров Connection Server и настроить несколько адресов для подключения.

понедельник, 27 ноября 2017 г.

Баг: Blast + Единый клиент JaCarta + ThinOS = черный экран

Недавно наткнулся на проблему с черным экраном при подключении к виртуальной рабочей станции по протоколу VMware Blast с тонкого клиента Dell Wyse с ОС ThinOS при аутентификации с использованием смарт-карты JaCarta. После подключения на экране на короткое время показывается экран входа в ОС, а затем черный экран вместо рабочего стола.

В Event Log тонкого клиента отображается следующее событие:
12:24:37 pool: trap 14, EIP 0x6fcbee26, CR2 0xff18dc37
В журналах Blast на виртуальной рабочей станции появляются следующие сообщения:
2017-11-10 11:40:01.142+0300 [ERROR] 0x150c vncsession::VNCSessionVVCAsyncSocketError: Error callback, error: 4, asock:0000000001F9F620
2017-11-10 11:40:01.142+0300 [WARN ] 0x150c vncsession::VerifyCloseReason: Close reason was never set. Setting to reason:5.
2017-11-10 11:40:01.142+0300 [ERROR] 0x150c vncsession::HandleAsyncSocketError: Error:4 on asock:0000000001F9F620, CloseReason:5.
2017-11-10 11:40:01.142+0300 [INFO ] 0x150c vncsession::HandleAsyncSocketError: Forcibly close VNCSession due to Asyncsocket error
2017-11-10 11:40:01.142+0300 [INFO ] 0x150c vncsession::Stop: Stopping VNCSession, reason:5.
Баг встречается только в том случае, если для аутентификации используются смарт-карты JaCarta, а внутри ВМ установлен Единый Клиент JaCarta.

Для решения проблемы есть следующие обходные варианты:
  1. Перезагрузить клиент (или извлечь смарт-карту если на View Connection Server включена настройка Disconnect user sessions on smart card removal) и заново войти в сессию.
  2. Использовать протокол PCoIP вместо Blast.
  3. Использовать аутентификацию по паролю вместо смарт-карты.
  4. Удалить Единый Клиент JaCarta и вместо него установить JaCarta PKI для Windows.

среда, 22 ноября 2017 г.

Видео: автоматическая настройка тонкого клиента Dell Wyse с ThinOS

В продолжение статьи о тонких клиентах Dell Wyse с операционной системой ThinOS выкладываю небольшое видео с демонстрацией автоматической настройки и обновления ТК через файл wnos.ini.

вторник, 7 ноября 2017 г.

Немного о дизайне VDI. Часть 6. Лицензирование VDI

Продолжение цикла статей о дизайне VDI. Предыдущие части доступны по ссылкам:
Часть 1. Введение
Часть 2. Постановка задачи
Часть 3. Верхнеуровневая архитектура
Часть 4. Подсистема VMware Horizon
Часть 5. Подсистема виртуализации

6.1 Требования к лицензированию VDI сред

Не малую долю в стоимость внедрения VDI вносит необходимость лицензирования ПО. Для работы VDI могут потребоваться следующие лицензии:
  • Лицензии на брокеры VDI и ПО виртуализации (VMware Horizon, vSphere, vCenter, vSAN).
  • Лицензии на клиентские ОС (Microsoft Windows 7, Windows 10).
  • Лицензии на ОС для служебных ВМ и терминальных серверов (Microsoft Windows Server 2016, Windows Server CAL, RDS CAL).
  • Лицензии на прикладное ПО, запускаемое на виртуальных десктопах (Microsoft Office, антивирусное ПО, WinRAR и прочее).
  • Лицензии на вспомогательное ПО: СУБД, мониторинг, резервное копирование, управление клиентскими устройства и прочее.

6.2 Лицензирование VMware Horizon

Лицензии VMware Horizon включают в себя право на использование различных продуктов и технологий VMware, но в первую очередь, необходимы для работы ключевого компонента VDI инфраструктуры VMware – сервера View Connection Server. После развертывания View Connection Server требуется вводит лицензионного ключа, без которого сервер не будет принимать подключения от пользователей и выводит ошибку об отсутствии необходимой лицензии.

VMware Horizon может лицензироваться по именованным пользователям (Named User) или по числу одновременных подключений (Concurrent), Concurrent лицензии являются более дорогими (приблизительно на 60% дороже, чем Named). Выбор типа лицензирования зависит от количества одновременно работающих пользователей. Если в вашей организации VDI используется сотрудниками, работающими в несколько смен (производство, Call Center), то Concurrent может быть выгоднее. Если же количество одновременно работающих сотрудников в среднем близко к максимальному, то имеет смысл выбирать Name User. Также следует учитывать, что Named User лицензии доступны только в редакциях Advanced и Enterprise.
Лицензии Horizon поставляются отдельно, либо в составе бандла Workspace ONE в редакции Enterprise, который также включает в себя лицензии на ПО AirWatch.

Существуют два типа поставки лицензий – Add-On и Bundle.

В Bundle помимо самих лицензий Horizon View также входят лицензии vSphere Desktop, vCenter Desktop и vSAN Desktop Advanced (присутствует в Horizon в редакциях Advanced и Enterprise).

vSphere Desktop функционально идентичен vSphere Enteprise Plus, однако отличается по типу лицензирования (в vSphere for Desktop лицензируется не по сокетам/процессорам, а по количеству запущенных ВМ), а также имеет лицензионные ограничения – на хостах с vSphere Desktop возможно запускать только виртуальные десктопы, а также служебные ВМ, обеспечивающие работу VDI инфраструктуры (брокеры View Connection Server и Security Server, серверы vCenter, серверы мониторинга VDI, серверы резервного копирования VDI и т.д.). Аналогичные ограничения касаются vCenter Server Desktop и vSAN Advanced Desktop. С использованием vSAN Advanced Desktop связан еще один момент. Данная редакция не позволяет использовать функцию территориально распределенного кластера (stretched vSAN Cluster), которая присутствует только в Enterprise редакции. По этому причине, при необходимости организации катастрофоустойчивой VDI инфраструктуре на vSAN вам потребуется дополнительно приобрести лицензии vSAN Enterprise, vSAN Enterprise Desktop, либо vSAN Enterprise for Desktop Add-on (http://blog.vmpress.org/2017/08/vmware-vsan-enterprise-for-desktop-add.html).

Если вы решили приобретать лицензии vSphere for Desktop отдельно (например, для VDI сред на базе vSphere + Citrix XenDesktop), там вам следует помнить о необходимости покупки лицензий на сервер управления vCenter Server. К сожалению, VMware не позволяет купить vCenter Server Desktop отдельно вне бандла Horizon, поэтому в этом случае вам потребуется приобрести полноценные лицензии vCenter Server Foundation или Standard.

Вариант Add-On, доступен только для редакции Horizon Standard, дешевле, т.к. не включает в себя лицензии vSphere Desktop и vCenter Standard, и может пригодиться в тех случаях, когда у вас уже есть развернутая и виртуальная инфраструктура VMware vSphere со всеми необходимыми лицензиями, а также для небольших SOHO инсталляций или в филиалах, где на одних и тех же серверах работают виртуальные десктопы и инфраструктурные ВМ.
Существуют три основные редакции Horizon: Standard, Advanced и Enterprise, плюс специальная редакция Horizon for Linux для запуска VDI на виртуальных десктопах с ОС Linux. Сравнение функциональных возможностей редакций Horizon приведены в таблице.

Функции
Horizon Standard
Horizon Advanced
Horizon Enterprise
Horizon for Linux
Лицензирование по пользователям (Per User)
Нет
Да
Да
Нет
Лицензирование по конкурентным подключениям(Concurrent)
Да
Да
Да
Да
Поддержка Windows десктопов
Да
Да
Да
Нет
Поддержка Linux десктопов
Нет
Нет
Да
Да
Поддержка Linked Clones
Да
Да
Да
Да
Поддержка Instant Clones
Нет
Нет
Да
Нет
Поддержка 3D (vSGA, vDGA, vGPU)
Да
Да
Да
Да
Add-on поставка
Да
Нет
Нет
Нет
Bundle поставка
Да
Да
Да
Да
vSphere Desktop
Да
Да
Да
Да
vCenter Desktop
Да
Да
Да
Да
Лицензии Mirage
Нет
Да
Да
Нет
Persona Management
Да
Да
Да
Нет
vSAN for Desktop Advanced
Нет
Да
Да
Нет
Публикация приложений с терминальных серверов
Нет
Да
Да
Нет
ThinApp
Да
Да
Да
Нет
Identity Manager
Нет
Да
Да
Нет
vRealize Operations for Horizon
Нет
Нет
Да
Нет
App Volumes
Нет
Нет
Да
Нет
User Environment Manager
Нет
Нет
Да
Нет

При планировании инфраструктуры следует учитывать, что для одной инсталляции Horizon View может быть указан только один лицензионной ключ. Соответственно, использование разных редакций (Standard, Advanced, Enterprise) и разных типов лицензирования (Named User, Concurrent) может быть осложнено из-за невозможности отслеживания и назначения лицензий конкретным пользователям. VMware явно не запрещает использовать разные лицензии в рамках одной инсталляции, но не рекомендует этого делать.

Дополнительная информация по лицензированию Horizon доступна по ссылке: https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/vmware-horizon-pricing-packaging-guide.pdf


6.3 Лицензирование клиентских ОС

Для виртуальных десктопов поддерживаются различные ОС:
  • Windows 7, 8, 10
  • Windows Server 2008 R2, 2012.
  • Ubuntu, CentOS, RHEL.
В большинстве VDI сценариев на виртуальные десктопы устанавливается одна из клиентских ОС Windows. Правила лицензирования клиентских ОС едины для любых VDI сред, будь то VMware Horizon, Citrix XenDesktop или Microsoft RDS.

Согласно лицензионной политике Microsoft, доступ к виртуальным десктопам с клиентской ОС должен осуществляться с устройства, имеющего действующую подписку Microsoft VDA (Virtual Desktop Access).

Microsoft VDA может быть приобретена в виде ежегодно обновляемой подписки на каждое устройство, с которого осуществляется доступ к VDI инфраструктуре.

В случае, если доступ к VDI инфраструктуре осуществляется с устройства с установленной лицензионной клиентской ОС Windows с действующей подпиской Software Assurance, VDA предоставляется бесплатно, на срок действия Software Assurance. Данный вариант может использоваться в тех случаях, когда в компании сотрудники компании продолжают работать на физических компьютерах, а VDI используют в качестве вспомогательной системы.

Вторым вариантом является приобретение подписки VDA на ежегодной основе. Этот вариант применяется в тех случаях, когда на компьютере установлена клиентская ОС Windows без действующей подписки, либо доступ осуществляется с устройства, на которое физически нельзя установить ОС Windows (тонкие клиенты с Linux, нулевые клиенты, смартфоны, планшеты, и т.д.).

Также существует еще один вариант с получением права на запуск клиентских ОС при действующей подписке Windows Software Assurance per User, приобретаемой в рамках программ лицензирования Volume Licensing (http://download.microsoft.com/download/5/c/7/5c727885-ec15-4920-818b-4d140ec6c38a/Windows_SA_per_User_at_a_Glance.pdf).

В качестве альтернативы клиентским версиям Windows для VDI могут быть использованы серверные ОС Windows. Одним из преимуществ Windows Server Datacenter является возможность запуска неограниченного количества экземпляров ОС при условии, что лицензированы все ядра физического сервера.

Однако, при использовании Windows Server в качестве клиентской ОС вам также потребуется приобрести RDS CAL на каждое устройство или пользователя, который работает с VDI. Лицензия RDS CAL может быть приобретена отдельно, либо получена в составе подписки VDI Suite, которую требуется ежегодно продлять (по аналогии с Microsoft VDA).

В свете изменения политики лицензирования серверной ОС Windows Server 2016 с сокетов на ядра, и соответствующим увеличением стоимости лицензий для серверов, имеющих многоядерные процессоры, данный вариант стал менее привлекательным по сравнению с VDA подпиской. Другим недостатком серверных ОС Windows по сравнению с клиентскими, является то, что часть ПО может не работать на серверных ОС по лицензионным или техническим причинам. Не все производители поддерживают запуск своего ПО на серверных ОС.

Для специфических сценариев возможно развертывание виртуальных десктопов с ОС Linux. Horizon поддерживает следующие дистрибутивы Linux:
  • Ubuntu
  • RHEL
  • CentOS
  • NeoKylin
В основном сценарии работы с Linux затрагивают области работы проектировщиков с различными CAD/CAM системами. В том случае, когда вам требуется поддержка ОС Linux вам может потребоваться приобрести ее у разработчика дистрибутива. Например, Red Hat предоставляет несколько вариантов приобретения поддержки на RHEL для ВМ:
  • Приобретение поддержки на каждую ВМ по отдельности (Red Hat Enterprise Linux Desktop или Red Hat Enterprise Linux Workstation).
  • Приобретение поддержки на физический сервер и все ВМ, которые на нем запускаются (например, Red Hat Enterprise Linux for Virtual Datacenters)
Дополнительные материалы:

6.4 Лицензирование серверных ОС для служебных ВМ

Многие службы, необходимые для работы VMware Horizon работают поверх ОС Windows Server, что требует приобретения соответствующих лицензий.
Ранее мы уже обсуждали, что для многих инсталляций VDI рационально запускать служебные ВМ, обеспечивающие работу VDI, на отдельных хостах. Это позволит упростить и удешевить лицензирование.
Согласно лицензионной политике Microsoft, Windows Server лицензируется по ядрам процессоров физического сервера. При этом должны соблюдаться следующие лицензионные требования:
  • На один физический процессор должно быть отлицензировано не менее 8 ядер (даже в том, случае, если у вас используются процессоры с меньшим кол-вом ядер).
  • На один физический сервер должно быть отлицензировано не менее 16 ядер (даже в том, случае, если в сервере установлен всего один процессор).
  • Согласно лицензионной политике организации имеют право переносить (перепривязывать) лицензии с одного сервера на другой не чаще, чем раз в 90 дней.
В таблице приведен пример необходимого количества лицензий Windows Server на ядра в зависимости от конфигурации сервера.
Кол-во ядер в процессоре
1-процессорный сервер
2-процессорный сервер
4-процессорный сервер
1-ядерный процессор 16 16 32
2-ядерный процессор 16 16 32
4-ядерный процессор 16 16 32
6-ядерный процессор 16 16 32
8-ядерный процессор 16 16 32
10-ядерный процессор 16 20 40
12-ядерный процессор 16 24 48
14-ядерный процессор 16 28 56
16-ядерный процессор 16 32 64
18-ядерный процессор 18 36 72
20-ядерный процессор 20 40 80
22-ядерный процессор 22 44 88
24-ядерный процессор 24 48 96
26-ядерный процессор 26 52 104
28-ядерный процессор 28 56 112
30-ядерный процессор 30 60 120
32-ядерный процессор 32 64 128

Windows Server 2016 доступен в двух основных редакция: Standard и Datacenter. Помимо функциональных различий редакций, для Standard и Datacenter действуют разные правила в отношении запускаемых ВМ. При лицензировании редакции Standard на физическом сервере возможно запустить до двух экземпляров ОС (OSE - Operating System Environments), например, две ВМ, при условии, что на самом физическом сервере не устанавливается никаких приложений.

При необходимости запуска уже четырех ВМ потребуется увеличить количество привязанных лицензий в два раза, для шести – в три, и так далее.
При лицензировании Datacenter на физическом сервере можно запустить неограниченно количество экземпляров ОС (OSE).

Редакция Standard может быть более выгодной для небольших инсталляций, в которых требуется запускать пару-другую ВМ с ОС Windows, однако вы должны следить за тем, чтобы не было нарушений лицензионной политике. В случае, когда вы объединяете хосты в HA & DRS кластер, ВМ могут переноситься с одного хоста на другой, что может повлечь нарушение лицензионной политики. Для этого вам может потребоваться привязать дополнительные лицензии Windows Server Standard к каждому хосту, а также использовать политики VM to Host Affinity.

Помимо лицензирования самого сервера вам также потребуется приобрести Device CAL/User CAL на каждое устройство или пользователя, который работает с серверами Windows.
Пару слов следует сказать о лицензировании СУБД Microsoft SQL Server. SQL Server может потребоваться для работы различных компонентов виртуальной инфраструктуры – vCenter Server, View Composer, View Connection Server, App Volumes и Identity Manager. Помимо бесплатной SQL Server Express для Horizon View, поддерживаются старшие редакции Standard, Enterprise и Datacenter, которые предоставляют расширенные возможности по резервному копированию и обеспечению доступности БД.

SQL Server может лицензироваться по ядрам сервера (Core) или по числу инсталляций и пользователям (Server + CAL). С лицензированием Server + CAL действует правило мультиплексирования, которое в разных источниках и разными представителями вендоров и дистрибьюторов трактуется по-разному, поэтому более простым вариантом лицензирования будет лицензирование по ядрам. В случае использования SQL Server Standard можно лицензировать ядра виртуальной машины (минимально, 4 ядра).

Дополнительные материалы:

6.5 Лицензирование приложений

При лицензировании приложений следует рассматривать юридическую и техническую сторону вопроса.

Если какое-то ПО лицензируется на устройство (per device), то в случае использования VDI несмотря на то, что виртуальные рабочие станции запускаются на меньшем количестве серверов, производитель ПО может потребовать приобрести лицензии на программное обеспечение по количеству виртуальных рабочих станций или устройств, с которых осуществляется доступ к VDI. Примером такого ПО является Microsoft Office, которое использует принцип Remote Use Rights.

С технической точки зрения следует учитывать механизм, который используется для привязки и учета лицензий.

Так, например, лицензия может привязываться к имени компьютера или MAC-адресу сетевого адаптера, поэтому после создания/клонирования десктопа из шаблона может потребоваться заново привязать и активировать лицензию.

В тех случаях, когда требуется контроль за количеством выданных лицензий, следует уточнить – какой механизм подсчета используется. Так, например, некоторое ПО различает рабочие станции по идентификатору безопасности SID или уникальному сертификату, который генерируется и сохраняется на компьютере во время установки. В случае использования механизма клонирования Linked Clones совместно с Quick Prep, все рабочие станции будут иметь одинаковый SID компьютера и набор файлов, что нарушит работу механизма подсчета лицензий.

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

Дополнительные материалы:

6.6 Технические аспекты активации

Для активации Windows и Office в больших VDI инфраструктурах рекомендуется использовать – KMS сервер.

Для сторонних продуктов следует проработать вопрос лицензирования в VDI средах. Многие продукты уже учитывают наличие VDI инфраструктур (например, ПО антивирусной защиты). Однако, в ряде случаев может потребоваться дополнительные действия при автоматизированном развертывании виртуальных десктопов. В частности, можно подготовить скрипт, выполняющий добавление лицензионного ключа и активацию приложений. Запуск скрипта можно настроить в автоматическом режиме в настройках пула при создании нового десктопа. Важным моментом является то, что ряд приложений могут генерировать уникальные номера в момент установки и для корректного подсчета лицензий и активации, может потребоваться удалять информацию об этих идентификаторах из эталонного образа перед началом клонирования. Кроме того, лицензия может привязываться к SID компьютера, поэтому я ряде случаев вариант с Quickprep подготовкой клонированных образов может не подойти, и придется использовать Sysprep подготовку.

Продолжение доступно по ссылкам: