понедельник, 14 августа 2017 г.

vSAN All-Flash с дедупликацией и компрессией для домашней лаборатории

Обновление 12.12.2017: Найден обходной вариант, который позволяет настроить VSAN и включить дедупликацию и компрессию без использования vCenter Server. Смотрите ниже по тексту.

Для тех, кто планирует построить свою домашнюю лабораторию на базе гипервизора VMware ESXi и программной СХД VMware vSAN, может пригодится следующая уловка, позволяющая включить поддержку дедупликации и компрессии на standalone хосте.

Думаю, что многие из вас находили статьи по т.н. bootstrap установке, когда vSAN настраивает без сервера управления vCenter Server и без какого-либо промежуточного хранилища. В частности такой способ развертывания используется в гиперконвергентных платформах VxRail и VxRack. С учетом постоянно снижающейся стоимости flash накопителей и наличия готовых платформ типа Intel NUC, становится возможным собрать весьма производительный, компактный и недорогой сервер для домашней лаборатории.

С гибридными конфигурациями vSAN все достаточно просто, в Интернете можно найти множество детальных руководств по такой настройке, однако, если вы решите использовать дедупликацию и компрессию на all-flash конфигурациях, то вам потребуется сделать несколько дополнительных шагов.

Поддержка компрессии и дедупликации появилась в vSAN 6.2, соответственно, вам потребуется использовать ESXi 6.0 U2 или выше.

Среди плюсов данного режима развертывания - отсутствие необходимости использования сервера управления vCenter Server для настройки и дальнейшей эксплуатации vSAN.
Для настройки также необходим функционирующий сервер vCenter Server. Это, пожалуй, главный недостаток данного варианта по сравнению с типовым vSAN Bootstrap, но это необходимый шаг для настройки Space Efficiency на дисковых группах с all-flash накопителями. В моем случае я развернул временный сервер vCenter на другом компьютере. После выполнения настроек сервер vCenter можно будет выключить и удалить.

Для настройки vSAN включите SSH на хосте и подключитесь к нему.

Включите на интерфейсе VMKernel поддержку vSAN, например:
esxcli vsan network ipv4 add -i vmk0
Проверьте, что интерфейс успешно добавлен:
esxcli vsan network list
При помощи команды vdq -q проверьте, что накопители опознаются гипервизором как SSD, а накопитель, предназначенный для хранения данных, имеет аттрибут isCapacityFlash:
vdq -q
[
   {
      "Name"     : "naa.6000c29f63422c9b752b4e16b0853303",
      "VSANUUID" : "",
      "State"    : "Ineligible for use by VSAN",
      "Reason"   : "Has partitions",
      "IsSSD"    : "0",
"IsCapacityFlash": "0",
      "IsPDL"    : "0",
   },
   {
      "Name"     : "naa.6000c2914ef142687a2ea87a31a4c207",
      "VSANUUID" : "522af0ce-c313-dbfb-21b7-ba8e0b509778",
      "State"    : "In-use for VSAN",
      "Reason"   : "None",
      "IsSSD"    : "1",
"IsCapacityFlash": "0",
      "IsPDL"    : "0",
   },
   {
      "Name"     : "naa.6000c29dc7b03388ce238783d25a085c",
      "VSANUUID" : "52964ee8-1ad3-51ee-8850-8315e0ebceb6",
      "State"    : "In-use for VSAN",
      "Reason"   : "None",
      "IsSSD"    : "1",
"IsCapacityFlash": "1",
      "IsPDL"    : "0",
   },
]
Если накопитель не опознается как SSD устройство, то вы можете вручную пометить его. Выполните команду:
esxcli storage nmp device list
Выполните команды, подставив нужный идентификатор naa и satp из вывода предыдущей команды:
esxcli storage nmp satp rule add --satp=VMW_SATP_LOCAL --device naa.600508b1001cdb71c7edb8e80eb6abf3 --option "enable_ssd"
esxcli storage core claiming unclaim --type=device --device naa.600508b1001cdb71c7edb8e80eb6abf3
esxcli storage core claimrule load
esxcli storage core claimrule run
esxcli storage core claiming reclaim --device naa.600508b1001cdb71c7edb8e80eb6abf3
Если накопитель не помечен как CapacityFlash вы можете использовать команду, чтобы назначить на него нужный тэг (если этого не сделать, вы получите сообщение об ошибке при попытке добавить накопитель в дисковую группу в качестве capacity накопителя):
esxcli vsan storage tag add -d naa.6000c29dc7b03388ce238783d25a085c -t capacityFlash
Подключитесь к серверу vCenter, в виртуальной инфрастуруктуре создайте кластер и активируйте в нем поддержку vSAN.

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

Переведите хост в режим обслуживания (maintenance mode) и уберите его из кластера. Выведите хост из режима обслуживания.

Перед настройкой кластера требуется включить поддержку дедупликации и компрессии для триальной лицензии VSAN. Сделать это можно из консоли SSH хоста, выполнив команду:
vsish -e set /config/VSAN/strOpts/LicensedFeatures vit,allflash,stretchedcluster,erasurecoding,storageefficiency,encryption
В консоли SSH хоста создайте новый кластер vSAN:
esxcli vsan cluster new
Проверьте, что хост корректно добавился в кластер:
esxcli vsan cluster get
Cluster Information
   Enabled: true
   Current Local Time: 2017-08-11T22:01:45Z
   Local Node UUID: 598e2050-a425-2c28-5426-005056aacefb
   Local Node Type: NORMAL
   Local Node State: MASTER
   Local Node Health State: HEALTHY
   Sub-Cluster Master UUID: 598e2050-a425-2c28-5426-005056aacefb
   Sub-Cluster Backup UUID:
   Sub-Cluster UUID: 598e2050-a425-2c28-5426-005056aacefb
   Sub-Cluster Membership Entry Revision: 0
   Sub-Cluster Member Count: 1
   Sub-Cluster Member UUIDs: 598e2050-a425-2c28-5426-005056aacefb
   Sub-Cluster Membership UUID: 05298e59-0555-5bb1-c414-005056aacefb
   Unicast Mode Enabled: true
   Maintenance Mode State: OFF

Отредактируйте политики хранения на хосте, добавив опцию forceProvisioning. Данная опция игнорирует остальные параметры политики при создании объекта на vSAN в том случае, если они не могут быть соблюдены (а это как раз наш случай, т.к. для standalone хоста параметр hostFailuresToTolerate=1 соблюсти не получится):
esxcli vsan policy setdefault -c cluster -p "((\"hostFailuresToTolerate\" i1) (\"forceProvisioning\" i1))"
esxcli vsan policy setdefault -c vdisk -p "((\"hostFailuresToTolerate\" i1) (\"forceProvisioning\" i1))" 
esxcli vsan policy setdefault -c vmnamespace -p "((\"hostFailuresToTolerate\" i1) (\"forceProvisioning\" i1))"
Проверьте настройки политики при помощи команды:
esxcli vsan policy getdefault
Policy Class  Policy Value
------------  --------------------------------------------------------
cluster       (("hostFailuresToTolerate" i1) ("forceProvisioning" i1))
vdisk         (("hostFailuresToTolerate" i1) ("forceProvisioning" i1))
vmnamespace   (("hostFailuresToTolerate" i1) ("forceProvisioning" i1))
vmswap        (("hostFailuresToTolerate" i1) ("forceProvisioning" i1))
vmem          (("hostFailuresToTolerate" i1) ("forceProvisioning" i1))

Включите поддержку дедупликации и компрессии:
esxcli system settings advanced set -o "/VSAN/DedupScope" -i 2
Проверьте значение параметра:
esxcli system settings advanced list -o "/VSAN/DedupScope"
Добавьте диски в дисковую группу:
esxcli vsan storage add -d naa.6000c29dc7b03388ce238783d25a085c -s naa.6000c2914ef142687a2ea87a31a4c207
Проверьте, что диски добавлены и на них включена поддержка дедупликации и компрессии:
esxcli vsan storage list
naa.6000c2914ef142687a2ea87a31a4c207
   Device: naa.6000c2914ef142687a2ea87a31a4c207
   Display Name: naa.6000c2914ef142687a2ea87a31a4c207
   Is SSD: true
   VSAN UUID: 522af0ce-c313-dbfb-21b7-ba8e0b509778
   VSAN Disk Group UUID: 522af0ce-c313-dbfb-21b7-ba8e0b509778
   VSAN Disk Group Name: naa.6000c2914ef142687a2ea87a31a4c207
   Used by this host: true
   In CMMDS: true
   On-disk format version: 5
   Deduplication: true
   Compression: true
   Checksum: 6910810568216580648
   Checksum OK: true
   Is Capacity Tier: false
   Encryption: false
   DiskKeyLoaded: false

naa.6000c29dc7b03388ce238783d25a085c
   Device: naa.6000c29dc7b03388ce238783d25a085c
   Display Name: naa.6000c29dc7b03388ce238783d25a085c
   Is SSD: true
   VSAN UUID: 52964ee8-1ad3-51ee-8850-8315e0ebceb6
   VSAN Disk Group UUID: 522af0ce-c313-dbfb-21b7-ba8e0b509778
   VSAN Disk Group Name: naa.6000c2914ef142687a2ea87a31a4c207
   Used by this host: true
   In CMMDS: true
   On-disk format version: 5
   Deduplication: true
   Compression: true
   Checksum: 4407850188756192377
   Checksum OK: true
   Is Capacity Tier: true
   Encryption: false
   DiskKeyLoaded: false
   
Если вы используете неподдерживаемы устройства, отключите мониторинг, чтобы лишний раз не обращать внимание на оповещения:
esxcli system settings advanced set -o /LSOM/VSANDeviceMonitoring -i 0 
При развертывание ВМ из web-консоли ESXi я наткнулся на небольшой баг. При подключении к ESXi напрямую через web-клиент, имя хранилища отображается с пробелом "vSAN Datastore", тогда как в интерфейсе vSphere Web Client и через CLI, как "vSANDatastore", это приводит к ошибке при попытке развернуть ВМ через ESXi Web Client. Исправить это можно, просто переименовав хранилище в vSANDatastore.

К сожалению, ESXi Web Client не отображает достаточное количество информации о vSAN, поэтому об эффективности работы дедупликации и компрессии придется судить "на глаз".

понедельник, 7 августа 2017 г.

VMware vSAN Enterprise for Desktop Add-on

В прошлом году я писал об изменениях в лицензировании VMware vSAN в связи с выходом версии 6.2 (http://blog.vmpress.org/2016/03/vmware-virtual-san-62.html).

Одним из неприятных моментов в лицензировании vSAN для VDI сред было то, что бандлы Horizon Advanced и Horizon Enterprise включали в себя лицензии vSAN for Desktop Advanced, которые не позволяли создавать растянутые (stretched) хранилища vSAN для катастрофоусточивых инсталляций. Заказчикам, которым требовался данных функционал, должны были выкладывать кругленькие суммы за полноценные лицензии Virtual SAN Enterprise или Virtual SAN for Desktop Enterprise вдобавок к лицензиям Horizon, что приводило к ощутимому увеличению бюджета проекта.

VMware вняли просьбам заказчиков и в июле этого года добавили в прайс-листы новую лицензию VMware vSAN 6 Enterprise for Desktop - Horizon Add-on. Данная лицензия предназначена для заказчиков, у которых есть купленные бандлы Horizon Advanced или Horizon Enterprise, и за небольшую (приблизительно 1/4 от стоимости Horizon Enterprise for Desktop) доп.плату позволяет получить лицензии Virtual SAN for Desktop Enterprise, и связанные с ним фичи: Stretched Cluster и Quality of Service.

Соответствующие позиции уже доступны для заказа через партнеров:
ST6-ED-HA10-C - VMware vSAN 6 Enterprise for Desktop - Horizon Add-on 10 Pack (CCU)
ST6-ED-HA100-C - VMware vSAN 6 Enterprise for Desktop - Horizon Add-on 100 Pack (CCU)

понедельник, 10 июля 2017 г.

VCAP6-DCV Design

Недавно я сдал второй экзамен 3V0-622 на получение статуса VCAP-DCV Design и VMware Certified Implementation Expert (VCIX).

К экзамену я готовился долго, планировал сдавать его еще в прошлом году, но тогда как-то не сложилось, а сейчас, наконец-то, пересилил себя и пошел сдавать. В принципе, начитавшись разного в Интернете, мысленно я был готов расстаться еще с 325$ за вторую попытку (для России действует скидка, у зарубежных коллег за экзамен просят 450$), но не случилось. :)

В отличие от экзамена VCAP Deploy, о котором я рассказывал ранее, дизайнерский экзамен оценивает навыки кандидата в области проектирования виртуальных инфраструктур и включает в себя всего 18 вопросов, но зато каких! В части вопросов требуется правильно соотнести объекты из двух столбцов, например, требования заказчика и технологии, которые позволят их реализовать, или правильно определить в поставленной задаче требования, допущения, риски или ограничения проекта. Другие вопросы - это тестовые кейсы, в которых по исходной информации требуется нарисовать дизайн решения в графическом интерфейсе, отдаленно напоминающим Visio. Лучше всего представление об экзамене может дать симулятор www.virtualtiers.net, созданный Греггом Робертсоном.

На сдачу экзамена дается 210 минут, и в моем случае времени хватило с избытком. Когда я закончил экзамен, в запасе оставалось порядка 45 минут.

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

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

Практический опыт проектирования является лучшим способом подготовки к вопросам по дизайну. Что касается дополнительных материалов, то помимо тех, что приведены в Blueprint к экзамену, я также настоятельно рекомендую следующие книги:
  • VCAP5-DCD Official Cert Guide, несмотря на то, что книга была написана по 5 версии, она все еще остается актуальной.
  • VMware vSphere 6.X Datacenter Design Cookbook очень простая книга, которая позволит освежить знания vSphere.
  • It Architect: Foundation in the Art of Infrastructure Design, книга, которую также часто рекомендуют для подготовки. На мой взгляд она немного избыточна для VCAP, но для подготовки к VCDX должна быть в самый раз.
Ну и, конечно, нельзя не упомянуть о серии вебинаров vBrownBag.

По теме дизайне довольно мало тестовых экзаменов, помимо virtualtiers.net, также можно посмотреть http://vmusketeers.com/vcap6-dcv-design-quiz/

Кстати, не так давно blogs.vmware.com проскакивала информация о количестве VCAP в разных странах. В России их 46, человек 8 я знаю лично. :)

четверг, 15 июня 2017 г.

VMware TestDrive for End-User Computing

Как известно VMware - один из лидеров рынка End User Computing. Компания предлагает различные решения в области организации доступа к удаленным рабочим столам, централизованного резервного копирования и развертывания рабочих станций, доставки приложений, управления мобильными устройствами и рабочим окружением пользователей.
Однако не у всех могут найтись время, ресурсы и компетенции, чтобы развернуть и протестировать работу десятка различных приложений.

Специально для таких случаев VMware организовала программу TestDrive for End-User Computing. TestDrive представляет собой портал (portal.vmtestdrive.com), через который можно получить доступ к продуктам VMware: Workspace One, Horizon View, AppVolumes, User Environment Manager, Horizon Flex, AirWatch, Horizon Cloud и другим, а также продуктам компаний партнеров: Salesforce, Dropbox, Microsoft Office 365.


Кардинальным отличием TestDrive от VMware Hand-On-Lab, является то, что в TestDrive вы имеете доступ к полноценной тестовой инфраструктуре, к которой можно подключиться из любого места, где есть Интернет, продемонстрировать коллегам или заказчикам, а при желании и полноценно поработать без каких-либо ограничений по времени.

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

Ссылки для подключения также доступны из меню портала.

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

Толстый клиент Horizon.

Веб-клиент.

Допустим, вы всегда хотели протестировать работу Horizon View в связке графическим адаптером NVIDIA Tesla, но у вас не было подходящего оборудования? С TestDrive вы можете сделать это в два счета.

Хотите развернуть собственный магазин приложений в организации? VMware Identity Manager в составе пакета Workspace ONE - то, что нужно.

Или вы наслышаны о VMware AirWatch и хотите на деле проверить, как он управляет вашим любимым Apple iPad Mini? Нет ничего проще.

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

Пожалуй, единственным недостатком TestDrive является то, что вы не можете залезть "под капот" тестовой инфраструктуры. В большинстве случаев ваши административные права позволяют только управлять пользователями и мобильными устройствами, а также просматривать кое-какую статистику. Хотя это и не удивительно, т.к. к порталу имеет доступ множество компаний-партнеров и потенциальных заказчиков, и давать всем полноценные административные права - не лучшая идея.

Чтобы получить доступ к TestDrive нужно быть партнером компании VMware и иметь одну из компетенций в области End User Computing (Desktop Virtualization, Mobility Management или Desktop as a Service). После регистрации партеры могут самостоятельно подключаться к порталу, а также присылать приглашения заказчикам.

Так что, если вы хотите самостоятельно протестировать продукты VMware, обращайтесь к партнерам, они с радостью предоставят вам доступ и помогут с тестированием.

среда, 7 июня 2017 г.

Смена пароля для учетной записи admin в VMware Identity Manager

При установке Identity Manager создается встроенное хранилище учетных записей (System Domain) и учетная запись admin, которая является администратором по умолчанию (а часто, и единственной административной учетной записью).

Если для других учетных записей Identity Manager предоставляет механизм восстановления пароля через e-mail, то у учетной записи admin в качестве адреса используется localAdmin@example.com, и просто так пароль не восстановишь.

Решить проблему можно при помощи команды, которую можно запустить, подключившись к серверу Identity Manager локально или по SSH.
sudo /usr/sbin/hznAdminTool setOperatorPassword -pass <новый_пароль> -userName admin

понедельник, 22 мая 2017 г.

Nakivo Backup & Replication

Так получилось, что о существовании Nakivo Backup & Replication я узнал буквально месяц назад, до этого данный продукт старательно обходил меня стороной.

Как нетрудно догадаться из названия, Nakivo Backup & Replication презназначен для резервного копирования и защиты виртуальных сред и конкурирует с такими решениями, как Acronis Backup и Veeam Backup & Replication.

Nakivo привлек меня весьма демократичной ценой. Не то, чтобы Veeam и Acronis стоили каких-то больших денег, но многие заказчики имеют весьма скромные бюджеты и стремятся сэкономить где только можно, и на фоне отказа VMware от встроенного бекапа vSphere Data Protection в будущих версиях vSphere, Nakivo может стать неплохой альтернативой.

Nakivo поддерживает резервное копирование и репликацию виртуальных инфраструктур VMware vSphere, Microsoft Hyper-V, а также облачной платформы Amazon EC2.

СРК Nakivo состоит из трех основных компонентов:
  • Director - предоставляет консоль администрирования и управляет остальными компонентами СРК.
  • Transporter - выполняет резервное копирование, репликацию и восстановление данных. При необходимости может быть развернуто несколько экземпляров Transporter для ускорения выполнения заданий копирования/восстановления, для локализации трафика резерного копирования при установке в филиалах или необходимости шифрования трафика при передаче между площадками. 
  • Backup Repository - обеспечивает хранение резервных копий данных.
В качестве репозиториев могут выступать как локальные диски сервера, так и сетевые каталоги, подключаемые по SMB или NFS, а также Amazon EBS. Для репозиториев поддерживается автоматическая проверка и восстановление испорченных бекапов (Self-healing). Ленточные накопители и VTL не поддерживаются, однако в качестве обходного варианта можно использовать отключение/подключение репозиториев в автоматическом режиме по расписанию, совмещенное с копированием данных на ленту.

Управление Nakivo выполняется через веб-интерфейс. Для автоматизации задач по бекапу и восстановлению доступен CLI и REST API. Интерфейс крайне просто и интуитивен и позволяет разобраться в тонкостях настройки даже без чтения документации.

Помимо варианта установки Nakivo на серверы с ОС Windows, Linux или в виде виртуального апплайнса VMware, Nakivo может быть установлен непосредственно на поддерживаемое NAS хранилище производства QNAP, Synology или Western Digital, что позволит легко и недорого огранизовать СРК для небольших компаний и филиалов.

Nakivo поддерживает стандартный для большинства современных СРК набор функций, вроде безагентского консистентного бекапа файлов и данных приложений внутри виртуальных машин, мгновенного восстановления и запуска ВМ прямо из бекапа, гранулярного восстановления файлов и объектов Microsoft Active Directory и Exchange, дедупликации данных, сжатия трафика при передаче по сети, LAN-Free бекап ВМ на vSphere (Direct SAN Backup или Hot-Add), копирования бекапа на удаленный репозиторий и т.п. Сравнение функциональных возможностей Nakivo с другими продуктами (немного устаревшее) можно найти на сайте whatmatrix.com.

Кстати, работа функции Instant VM Recovery, которая в Nakivo носит название Flash VM Boot, отличается от таковой в Acronis и Veeam. В случае Nakivo бекап монтируется не как NFS хранилище, вместо этого Nakivo создает временную ВМ, презентует хосту бекап в виде отдельного тома по протоколу iSCSI и подключает том к ВМ как сырой диск (RDM). После этого администратор может проверить работу ВМ и при необходимости мигрировать ее на целевое хранилище при помощи Storage vMotion.

Также в Nakivo присутствует возможность проверки работоспособности бекапа (Screenshot verification), которая автоматически запускает ВМ из резервной копии и делает скриншот экрана, после чего отправляет отчет администратору по почте.

Nakivo лицензируется по количеству сокетов серверов виртуализации и доступен в двух основных редакциях - Pro и Enterprise, в Enterprise присутствуют такие возможности, как интеграция с Active Directory для аутентификации с помощью доменных учетных записей, кастомизация веб-интерфейса, поддержка REST API, поддержка много-пользовательского (Multi-tenancy) режима установки, позволяющего делегировать задачи по резервному копированию и восстановлению отдельным подразделениям компании. Для небольших организаций есть вариант приобретения редакции Pro Essentials и Enterprise Essentials, которые отличаются только количеством лицензий приобретаемых на организацию (суммарно, не более 6).

Наконец, всем желающим доступна бесплатная версия Nakivo Backup & Replication Free Edition, которая может выполнять резервное копирование не более двух ВМ.

понедельник, 15 мая 2017 г.

VMware Blast, H.264 и графические адаптеры

Одним из нововведений, появившихся в VMware Horizon 7, стала поддержка протокола Blast Extreme, который использует кодек H.264 (или как еще его называют MPEG-4 AVC) для кодирования и декодирования передаваемого изображения.

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

Использование H.264 не требует выполнения каких-либо дополнительных настроек - по умолчанию агент и клиент Horizon автоматически выбирают совместимые параметры для кодирования и декодирования, однако, при планировании архитектуры VDI и выборе оборудования важно знать несколько нюансов работы данной технологии.

Кодирование (сжатие) изображения на виртуальной рабочей станции в режиме H.264 может выполняться как программным способом, за счет ресурсов центрального процессора, так и аппаратным, за счет графического адаптера. На текущий момент аппаратное кодирование Blast Extreme в Horizon поддерживается только для графических адаптеров Quadro и GRID/Tesla производства NVIDIA (за счет использования NVIDIA NVENC - NVIDIA Hardware Video Encoder) и только в режимах проброса графического адаптера vGPU или vDGA. Ни vSGA, ни графические адаптеры AMD (несмотря на то, что у них тоже есть аппаратный кодек H.264) не поддерживают аппаратное кодирование.

Определить, какой режим кодирования используется, можно посмотрев файлы журналов Blast на виртуальной рабочей станции: "C:\ProgramData\VMware\VMware Blast\Blast-Worker-SessionId<#>.txt".

При обработке H.264 центральным процессором в журнале будут отображаться строки вида:
0x0e14 bora::Log: VNCENCODE 5 VNCEncodeChooseRegionEncoder: region encoder h264. Screen 1/1 @ Resolution: 2560 x 1440
0x0e14 bora::Log: VNCEncodeRegionH264LoadLibrary: Loaded x264 shared library "libx264-144.dll"

При обработке средствами графического адаптера NVIDIA:
0x0138 bora::Log: VNCENCODE 5 VNCEncodeChooseRegionEncoder: region encoder NvFBCToDX9 H264. Screen 1/1 @ Resolution: 2560 x 1440
0x0138 bora::Log: VNCEncodeRegionNvFBCDX9NvEncLoadLibrary: Loaded NVIDIA SDK shared library "NvFBC64.dll": The operation completed successfully

Если кодирование H.264 вообще не используется:
0x0138 bora::Log: VNCENCODE 5 VNCEncodeChooseRegionEncoder: region encoder adaptive. Screen 1/1 @ Resolution: 2560 x 1440

Что касается клиентских устройств, будь то компьютер с клиентом Horizon Client, тонкий клиент под Linux или планшет на iOS, для них декодирование H.264 может выполняться исключительно средствами графического адаптера. Если графический адаптер в клиентском устройстве по каким-либо причинам не поддерживает декодирование H.264 с нужными параметрами, то и виртуальная рабочая станция, и клиент автоматически переключаются на использование JPEG/PNG кодека (или как его еще называют - адаптивный кодек), который обрабатывается только центральным процессором, даже в случае, когда внутри ВМ используется графический адаптер NVIDIA.

Посмотреть режим декодирования можно в журналах (например, для клиента Horizon под ОС Windows: "C:\Users\<%username%>\AppData\Local\Temp\vmware-<username>\vmware-mks-<#>.log").

При использовании аппаратного декодирования:
I125: VNC CLIENT: H264 hardware decoding available
VNC CLIENT: H264 support enabled

При использовании адаптивного кодека:
W115: VNCClientH264FillSlice: H.264 H/W decoder error or unsupported mode (streamId=0, screen x,y,w,h=0,0,2560,1440, mode=0)
VNC DECODER: disabled H.264 for current resolution (2560x1440)
VNCClientH264FillSlice: H.264 successfully disabled for current resolution

Казалось бы, в чем проблема? Все современные графические адаптеры, хоть в Raspberry Pi, хоть в iPhone, хоть встроенные в процессоры Intel и AMD, поддерживают аппаратное декодирование H.264.

Но всегда есть нюансы. Например, в тонком клиенте HP t620 Thin Client, о котором я недавно писал, используется графическое ядро Radeon HD 8280E, которое поддерживает аппаратное декодирование только Full HD видео, несмотря на то, что сам тонкий клиент может работать с двумя мониторами с разрешением 2560 x 1600. Поэтому при использовании мониторов в разрешении более 1920 x 1200, будет использоваться адаптивный кодек.

То же касается, Apple iPad 3, у которого разрешение экрана составляет 2048 x 1536, но также поддерживается только декодирование Full HD H.264 видео. Есть информация, что iPad Air 2 и Iphone 6 поддерживают 4K H.264 кодек, но у меня нет ни одного устройства под рукой, чтобы это проверить.

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

Также следует помнить, что до версии Horizon 7.1 в многомониторных конфигурациях использовался только адаптивный кодек, независимо от того, поддерживал ли клиент H.264 или нет.

Кодирование H.264 может быть отключено на уровне групповых политик (Group Policy шаблон VMware Blast -> H.264: Disabled).

H.264 выполняет сжатие изображения с потерями (Lossy), поэтому при при использовании Lossless режима (Group Policy шаблон VMware Blast -> PNG: Enabled) H.264 также отключается.

Кроме того, адаптивный режим используется в HTML5-клиенте (при подключении через веб-браузер). Единственный браузер, который на текущий момент поддерживает H.264 - это Google Chrome (что позволяет использовать Chromebook в качестве недорогих и мобильных тонких клиентов).

Если говорить о влиянии аппаратного декодирования H.264 на производительность виртуальной рабочей станции, то, например, при использовании адаптивного режима для разрешения 2560 x 1440 при проигрывании Full HD видео, протокол Blast может легко занять порядка 20% ресурсов четырехпроцессорной ВМ. А учитывая, что графический адаптер может еще и выпонять декодирование видео (когда не используется функция Multimedia Redirection), то разницу вы можете увидеть самостоятельно.

Аппаратное кодирование Blast Extreme + аппаратное декодирование видео:

Программное кодирование Blast Extreme + программное декодирование видео: