понедельник, 30 мая 2016 г.

Подготовка образа Windows Thin PC и установка при помощи VMware Mirage (часть I)

В этой и последующих статьях я планируют описать процедуру подготовки дистрибутива ОС Microsoft Windows Thin PC для работы совместно с VDI инфраструктурой на базе VMware Horizon View и VMware Mirage. VMware Mirage предлагается использовать в качестве средства для централизованной установки Thin PC на ПК, а также обновления образа по мере выхода новых версий.

Одним из способов организации доступа к VDI инфраструктуре является переделывание имеющихся в организации ПК в тонкие клиенты. Среди вариантов присутствуют как коммерческие решения, вроде Dell Wyse PC Extender или Igel Universal Desktop Converter, так и открытые/бесплатные решения, например, Thinstation. Все они строятся на базе ОС Linux с дополнительным ПО, позволяющим создавать и модифицировать образ ОС, а также централизованно управлять, обновлять тонкие клиенты. Но еще одним интересным вариантом является Microsoft Windows Thin PC.

Thin PC строится на базе ОС Microsoft Windows Embedded Standard 7 (Microsoft Windows Thin PC). Данная ОС доступна для загрузки корпоративным пользователям, оформившим подписку Microsoft VDA (что обязательно в тех случаях, когда вы планируете запускать в VDI клиентские ОС Windows).

Thin PC может устанавливаться на любой Intel x86 совместимый компьютер, удовлетворяющий следующим аппаратным требованиям:
  • 1 GHz or faster 32-bit (x86);
  • 1 GB RAM, 16 GB available hard disk space;
  • DirectX 9 graphics device with WDDM 1.0 or later version driver.
Поскольку в основе Thin PC лежит Windows, то это значит, что тонкие клиенты с данной ОС имеют полный набор функциональных возможностей, которые может предоставить то или иное VDI решение (проброс USB устройств, принтеров, сканеров, Multimedia redirection, Flash redirection, URL redirection, аппаратное декодирование видео, однакратный вход в систему, аутентификация по смарт-картам и т.д.).

Поскольку для распространения Thin PC планируется использовать VMware Mirage, то нам потребуется эталонный компьютер, на которой можно будет установить Thin PC, выполнить ряд настроек, оптимизирующих работу ОС, установить дополнительные компоненты, вроде, клиента VMware Horizon Client и Mirage Client. Ряд настроек я рекомендую выполнить заранее, например, добавить в дистрибутив Thin PC необходимые обновления ОС и драйверы, и только после этого установить его на эталонный компьютер.

Предварительные шаги

Для начала требуется подготовить дистрибутив Thin PC к установке.

Подготовка дистрибутива включает в себя следующие шаги:
  1. Интеграция драйверов устройств в дистрибутив.
  2. Интеграция пакетов обновлений ОС в дистрибутив.
  3. Интеграция установочных пакетов приложений в дистрибутив.
  4. Модификация установочного скрипта ОС.
  5. Модификация файла ответов ОС.
  6. Сборка дистрибутива.
Для подготовки дистрибутива тонкого клиента следует использовать рабочую станцию с установленной ОС Microsoft Windows 7 с установленным пакетом Microsoft Windows Automated Installation Kit 7 (WAIK 7).

Загрузите дистрибутив Windows ThinPC. Также рекомендую загрузить пакет Windows Embedded Standard 7 Service Pack 1 Toolkit с сайта https://www.microsoft.com/en-us/download/details.aspx?id=11887 (по ссылке можно загрузить Evaluation версию Windows Embedded, сам Toolkit находится в архиве, разбитом на 8 частей), содержащего огромное количество драйверов и дополнительных пакетов, которые могут пригодиться при подготовке образа.

При желании, вы также можете загрузить языковой пакет для различных языков по ссылке: https://www.microsoft.com/en-us/download/details.aspx?id=26215

На рабочей станции создайте структуру каталогов для хранения дистрибутива, монтирования образов ОС, драйверов, дистрибутивов приложений и т.д.:
  • C:\ThinPC
  • C:\ThinPC\Drivers
  • C:\ThinPC\Image
  • C:\ThinPC\ISO
  • C:\ThinPC\Mount
  • C:\ThinPC\Updates
После получения дистрибутива Thin PC в формате ISO распакуйте его содержимое в каталог "C:\ThinPC\Image" на рабочей станции.

Образ операционной системы (системный диск) хранится в файле-образа X:\sources\install.wim на установочном носителе. В данный образ могут должны быть интегрированы необходимые драйверы и обновления ОС, которые будут автоматически установлены при развертывании ОС на целевые устройства.

Интеграция драйверов в дистрибутив

Для интеграции драйверов устройств выполните следующие действия:
  1. Загрузите и распакуйте драйверы устройств с сайта производителя в папку C:\ThinPC\Drivers. Распакованные файлы драйверов должны содержать файлы описания .INF и системные файлы драйверов (.SYS, .DLL и др.).
  2. Смонтируйте файл install.wim, используя команду:
  3. dism /mount-wim /wimfile:"C:\ThinPC\Image\sources\install.wim" /index:1 /mountdir:"C:\ThinPC\Mount"
  4. Добавьте драйверы в дистрибутив, используя команду:
  5. dism /Image:C:\ThinPC\Mount /Add-Driver /Driver:C:\ThinPC\Drivers /Recurse
  6. Отмонтируйте файл install.wim и сохраните изменения, используя команду:
  7. dism /Unmount-Wim /MountDir:C:\ThinPC\Mount /Commit
Примечание: Если устройство-тонкий клиент снабжено дисковым контроллером, драйвер которого отсутствует в ОС, требуется добавить драйвер и загрузочный образ Win PE (boot.wim). Шаги по добавлению драйверов в загрузочный образ аналогичны вышеприведенным для файла-образа ОС (install.wim).

Подробнее о процедуре интеграции драйверов можно прочитать в статье (https://technet.microsoft.com/ru-ru/library/dd744355(v=ws.10).aspx).

Интеграция пакетов обновлений и дополнительных компонентов ОС в дистрибутив

Для интеграции пакетов обновлений ОС (файлов в формате .MSU или .CAB) в дистрибутив выполните следующие действия:
  1. Загрузите обновления .MSU с сайта (http://catalog.update.microsoft.com/v7/site/Search.aspx?q=windows%20embedded%20standard%207) и сохраните их в корне каталога C:\ThinPC\Updates (не используйте вложенные папки).
  2. Смонтируйте файл install.wim, используя команду:
  3. dism /mount-wim /wimfile:"C:\ThinPC\Image\sources\install.wim" /index:1 /mountdir:"C:\ThinPC\Mount"
  4. Добавьте пакеты обновлений в дистрибутив, используя команду:
  5. dism /Image:C:\ThinPC\Mount /Add-Package /PackagePath:C:\ThinPC\Updates
  6. Отмонтируйте файл install.wim и сохраните изменения, используя команду:
  7. dism /Unmount-Wim /MountDir:C:\ThinPC\Mount /Commit
Например, в дистрибутиве Thin PC по умолчанию отсутствует множество видео кодеков, которые могут пригодиться для воспроизведения видео при использовании функции Multimedia redirection. CAB-пакеты с кодеками находятся в каталоге X:\DS\Packages\FeaturePack\ на диске Windows Embedded Standard 7 Service Pack 1 Toolkit.

Подробнее о процедуре интеграции пакетов обновлений можно прочитать в статье (https://technet.microsoft.com/ru-ru/library/dd744559(v=ws.10).aspx)

Модификация установочного скрипта ОС

Установочный скрипт setupcomplete.cmd выполняется на завершающем этапе установки ОС. Данный скрипт можно использовать для копирования файлов, установки приложений, модификации реестра, включения и отключения служб и компонентов ОС. Для добавления установочного скрипта в дистрибутив выполните следующие действия:
  1. Смонтируйте файл install.wim, используя команду:
  2. dism /mount-wim /wimfile:"C:\ThinPC\Image\sources\install.wim" /index:1 /mountdir:"C:\ThinPC\Mount"
  3. Создайте (если этого не было сделано ранее) файл "C:\ThinPC\Mount\Windows\Setup\Scripts\setupcomplete.cmd". В качестве основы можно использовать файл скрипта, приведенный ниже.
  4. Отмонтируйте файл install.wim и сохраните изменения, используя команду:
  5. dism /Unmount-Wim /MountDir:C:\ThinPC\Mount /Commit
Данный скрипт выполняет следующие операции:
  • активирует встроенную учетную запись администратора;
  • запрещает учетной записи User смену пароля;
  • настраивает автоматический вход в систему под учетной записью User (с пустым паролем);
  • настраивает шаблон профиля пользователя;
  • отключает неиспользуемые службы;
  • отключает восстановление системы;
  • отключает профили брандмауэра;
  • отключает запуск заданий дефрагментации по расписанию.
    REM setupcomplete.cmd

    REM Hide Boot Screen
    bcdedit /Set BOOTUX disabled

    REM *********************************************
    REM Network customization
    REM *********************************************

    REM Disable Windows Firewall Public Profile
    NetSh advfirewall Set publicprofile state off

    REM Disable Windows Firewall Private Profile
    NetSh advfirewall Set privateprofile state off

    REM Disable Windows Firewall Domain Profile
    NetSh advfirewall Set domainprofile state off

    REM Turn off the Network Location wizard
    reg ADD "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Network\NewNetworkWindowOff" /f

    REM Enable Remote Desktop Connection
    reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0x0 /f
    reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0x1 /f
    reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0x1 /f

    REM *********************************************
    REM OS optimization
    REM *********************************************

    REM Disable Action Center icon
    reg ADD "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\policies\Explorer" /v HideSCAHealth /t REG_DWORD /d 0x1 /f

    REM Disable User Account Control
    reg ADD "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\policies\system" /v EnableLUA /t REG_DWORD /d 0x0 /f

    REM Increase disk timeout to 120 seconds
    reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Disk" /v TimeOutValue /t REG_DWORD /d 120 /f

    REM Disable Crush Dump
    reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 0x0 /f

    REM Enable "Automatically Reboot"
    reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v AutoReboot /t REG_DWORD /d 0x1 /f

    REM Disable "Write an event to the system log"
    reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v LogEvent /t REG_DWORD /d 0x0 /f

    REM Disable "Send an alert"
    reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v SendAlert /t REG_DWORD /d 0x0 /f

    REM Do not move deleted files to the Recycle Bin
    reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer" /v NorecycleFiles /t REG_DWORD /d 0x1 /f

    REM Disable system restore
    reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\SystemRestore" /v DisableSR /t REG_DWORD /d 0x1 /f

    REM Disable Windows Update
    reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v DisableWindowsUpdateAccess /t REG_DWORD /d 0x1 /f

    REM Disable Machine Account Password Changes
    reg ADD "HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" /v DisablePasswordChange /t reg_dword /d 0 /f

    REM Disable Hibernate
    powercfg -HIBERNATE OFF

    REM Disable Last Access Time stamp
    fsutil behavior Set DisableLastAccess 1

    REM Disable Prefetch
    reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" /v EnablePrefetcher /t REG_DWORD /d 0x0 /f

    REM Disable the First Run Customize Page
    reg ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Internet Explorer\Main" /v DisableFirstRunCustomize /t REG_DWORD /d 0x1 /f

    REM Configure Application event log
    reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application" /v MaxSize /t REG_DWORD /d 0x100000 /f
    reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application" /v Retention /t REG_DWORD /d 0x0 /f

    REM Configure System event log
    reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\System" /v MaxSize /t REG_DWORD /d 0x100000 /f
    reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\System" /v Retention /t REG_DWORD /d 0x0 /f

    REM Configure Security event log
    reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security" /v MaxSize /t REG_DWORD /d 0x100000 /f
    reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security" /v Retention /t REG_DWORD /d 0x0 /f


    REM *********************************************
    REM Local accounts configuration
    REM *********************************************

    REM Activate Administrator account
    net user Administrator /active:yes


    REM Prevent User account from changing password and password expiration
    net user User /Passwordchg:no
    wmic path Win32_UserAccount where Name='User' set PasswordExpires=false


    REM Enable User account auto logon
    REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d 1 /f
    REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d User /f
    REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d "" /f


    REM Disable scheduled tasks
    schtasks /change /tn "\Microsoft\windows\Application Experience\AitAgent" /disable
    schtasks /change /tn "\Microsoft\windows\Application Experience\ProgramDataUpdater" /disable
    schtasks /change /TN "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" /disable
    schtasks /change /TN "\Microsoft\Windows\Defrag\ScheduledDefrag" /Disable
    schtasks /change /TN "\Microsoft\Windows\Maintenance\WinSAT" /Disable
    schtasks /change /TN "\Microsoft\Windows\Registry\RegIdleBackup" /Disable


    REM *********************************************
    REM Disable services
    REM *********************************************

    REM Disable Application Experience
    sc config AeLookupSvc start= disabled

    REM Disable BitLocker Drive Encryption Service
    sc config BDESVC start= disabled

    REM Disable BranchCache
    sc config PeerDistSvc start= disabled

    REM Disable Diagnostic Service Host
    sc config WdiServiceHost start= disabled

    REM Disable Diagnostic System Host
    sc config WdiSystemHost start= disabled

    REM Disable Problem Reports and Solutions Control Panel Support
    sc config wercplsupport start= disabled

    REM Disable Windows Media Center Sharing Service
    sc config WMPNetworkSvc start= disabled

    Rem Disable Interactive Services Detection
    sc config UI0Detect start= disabled

    REM Disable Function Discovery Resource Publication
    sc config FDResPub start= disabled

    REM Disable Secure Socket Tunneling Protocol Service
    sc config SstpSvc start= disabled

    REM Disable Security Center
    sc config wscsvc start= disabled

    REM Disable SSDP Discovery
    sc config SSDPSRV start= disabled

    REM Disable bSuperfetch
    sc config SysMain start= disabled

    REM Disable Block Level Backup Engine Service
    sc config wbengine start= disabled

    REM Disable Diagnostic Policy Service
    sc config DPS start= disabled

    REM Disable Disk Defragmenter
    sc config Defragsvc start= disabled

    REM Disable HomeGroup Listener
    sc config HomeGroupListener start= disabled

    REM Disable HomeGroup Provider
    sc config HomeGroupProvider start= disabled

    REM Disable IP Helper
    sc config iphlpsvc start= disabled

    REM Disable Microsoft iSCSI Initiator Service
    sc config MSiSCSI start= disabled

    REM Disable Themes
    sc config Themes start= disabled

    REM Disable UPnP Device Host
    sc config upnphost start= disabled

    REM Disable Windows Error Reporting Service
    sc config WerSvc start= disabled

    REM Disable WLAN AutoConfig
    sc config Wlansvc start= disabled

    REM Disable WWAN AutoConfig
    sc config WwanSvc start= disabled

    REM Disable Indexing Service
    sc config CISVC start= disabled

    Модификация файла ответов ОС

    Файл ответов (autounattend.xml) располагает в корне установочного носителя и содержит параметры для автоматизации процедуры установки ОС (выбора версии и редакции ОС, выбора места установки, задания пароля администратора, создания учетной записи пользователя и т.д.). Для модификации файла ответов выполните следующие действия:
    1. Смонтируйте файл install.wim, используя команду:
    2. dism /mount-wim /wimfile:"C:\ThinPC\Image\sources\install.wim" /index:1 /mountdir:"C:\ThinPC\Mount"
    3. С помощью приложения Windows System Image Manager, установленной на рабочей станции, создайте новый файл ответов "C:\ThinPC\Mount\autounattend.xml" или используйте файл ответов ниже.
    4. Отмонтируйте файл install.wim и сохраните изменения, используя команду:
    5. dism /Unmount-Wim /MountDir:C:\ThinPC\Mount /Commit
    Данный файл ответов содержит следующие параметры установки:
    • настройка русского языка в качестве системного;
    • настройка английской и русской раскладки языка;
    • автоматическое форматирование жесткого диска и выбор раздела для установки;
    • установка пароля учетной записи Administrator (P@ssw0rd);
    • добавление учетной записи пользователя User без пароля (для последующего автоматического входа в систему после загрузки);
    • пропуск мастера OOBE.
    <?xml version="1.0" encoding="utf-8"?>
    <unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="windowsPE">
    <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <InputLocale>en-US;ru-RU</InputLocale>
    <SystemLocale>ru-RU</SystemLocale>
    <UserLocale>ru-RU</UserLocale>
    <UILanguage>en-US</UILanguage>
    <SetupUILanguage>
    <UILanguage>en-US</UILanguage>
    </SetupUILanguage>
    </component>
    <component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <DiskConfiguration>
    <WillShowUI>OnError</WillShowUI>
    <Disk wcm:action="add">
    <CreatePartitions>
    <CreatePartition wcm:action="add">
    <Order>1</Order>
    <Size>200</Size>
    <Type>Primary</Type>
    </CreatePartition>
    <CreatePartition wcm:action="add">
    <Extend>true</Extend>
    <Order>2</Order>
    <Type>Primary</Type>
    </CreatePartition>
    </CreatePartitions>
    <ModifyPartitions>
    <ModifyPartition wcm:action="add">
    <Format>NTFS</Format>
    <Label>Windows</Label>
    <Order>2</Order>
    <PartitionID>2</PartitionID>
    </ModifyPartition>
    <ModifyPartition wcm:action="add">
    <Active>true</Active>
    <Format>NTFS</Format>
    <Label>System</Label>
    <Order>1</Order>
    <PartitionID>1</PartitionID>
    </ModifyPartition>
    </ModifyPartitions>
    <DiskID>0</DiskID>
    <WillWipeDisk>true</WillWipeDisk>
    </Disk>
    </DiskConfiguration>
    <ImageInstall>
    <OSImage>
    <InstallTo>
    <DiskID>0</DiskID>
    <PartitionID>2</PartitionID>
    </InstallTo>
    <InstallToAvailablePartition>false</InstallToAvailablePartition>
    <WillShowUI>OnError</WillShowUI>
    </OSImage>
    </ImageInstall>
    <UserData>
    <AcceptEula>true</AcceptEula>
    <Organization>Company</Organization>
    </UserData>
    </component>
    </settings>
    <settings pass="oobeSystem">
    <component name="Microsoft-Windows-Deployment" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Reseal>
    <Mode>OOBE</Mode>
    </Reseal>
    </component>
    <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <OOBE>
    <HideEULAPage>true</HideEULAPage>
    <ProtectYourPC>3</ProtectYourPC>
    <NetworkLocation>Work</NetworkLocation>
    <SkipUserOOBE>true</SkipUserOOBE>
    <SkipMachineOOBE>true</SkipMachineOOBE>
    </OOBE>
    <TimeZone>Russian Standard Time</TimeZone>
    <UserAccounts>
    <AdministratorPassword>
    <Value>UABAAHMAcwB3ADAAcgBkAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
    <PlainText>false</PlainText>
    </AdministratorPassword>
    <LocalAccounts>
    <LocalAccount wcm:action="add">
    <DisplayName>User</DisplayName>
    <Name>User</Name>
    <Group>Users</Group>
    </LocalAccount>
    </LocalAccounts>
    </UserAccounts>
    </component>
    </settings>
    <cpi:offlineImage cpi:source="catalog:c:/thinpc/image/sources/thinpc.clg" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
    </unattend>


    Сборка дистрибутива

    Для сборки дистрибутива и создания .ISO образа используется утилита oscdimg.exe из состава WAIK 7. Утилита расположена в каталоге "C:\Program Files\Windows AIK\Tools\x86". Для сборки дистрибутива выполните следующие действия:
    1. Запустите команду:
    2. oscdimg.exe -b"C:\Program Files\Windows AIK\Tools\PETools\x86\boot\etfsboot.com" –u2 –h –m –lTHIN_PC c:\ThinPC\Image c:\ThinPC\ISO\thinpc.iso
    3. После завершения работы команды скопируйте полученный образ на установочный носитель.
    На этом первая часть закончена. В следующем части будет описана установка и настройка ОС на эталонном компьютере для создания образа при помощи VMware Mirage.

    понедельник, 16 мая 2016 г.

    Лимит в 60 FPS в режиме vGPU на видеокартах NVIDIA

    При тестировании производительности режима аппаратного ускорения графики NVIDIA vGPU для видеокарт GRID или Tesla в синтетических бенчмарках можно получить достаточно скромные результаты даже в сравнении с игровыми видеокартами начального и среднего уровня или при использовании режима vDGA.

    Причина низких результатов - работа Frame Rate Limiter, включающийся при использовании vGPU, и ограничивающий максимальный FPS 60 кадрами в секунду. Поскольку обычно в режиме vGPU ресурсами графического адаптера пользуются несколько ВМ, то это сделано с целью ограничить одного или нескольких пользователей, которые могут запустить какое-нибудь ресурсоемкое приложение и мешать работе "соседей".

    Чтобы снять ограничение на FPS достаточно в свойствах ВМ добавить параметр pciPassthru0.cfg.frame_rate_limiter = 0

    После этого можно будет увидеть существенную разницу в производительности в бенчмарках, например, PerformanceTest или 3D Mark.

    До выключения FRL в 3D Graphics Mark графический адаптер M60-4Q набирал 2215 очков.

    После выключения - 8482 очка.

    NVIDIA не валидирует инсталляции с отключенным FRL, однако для тестовых целей FRL может быть на время отключен.

    понедельник, 11 апреля 2016 г.

    VMware High Availability vs NVIDIA vGPU

    Обновление: Начиная с версии vSphere 6.5 для vGPU появилась поддержка High Availability (для режима vDGA высокая доступность все еще не поддерживается): vSphere HA now protects VMs with the NVIDIA GRID vGPU shared pass-through device. In the event of a failure, vSphere HA attempts to restart the VMs on another host that has an identical NVIDIA GRID vGPU profile. If there is no available healthy host that meets this criterion, the VM fails to power on.
    http://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/whitepaper/vsphere/vmw-white-paper-vsphr-whats-new-6-5.pdf

    С момента появления поддержки аппаратного ускорения графики NVIDIA vGPU в vSphere 6.0, все больше заказчиков интересуются возможностью применения данной технологии в VDI средах. Однако, у vGPU есть ряд ограничений, которые требуется учитывать при планировании архитектуры решения.

    Одним из таких ограничений является отсутствие поддержки отказоустойчивости VMware High Availability. Например, об этом сказано в одном из официальных документов: http://www.vmware.com/files/pdf/techpaper/vmware-horizon-6-view-virtual-desktop-3d-graphics-reference-architecture.pdf 


    Но как мы все прекрасно знаем: "Не поддерживается не значит - не работает".

    Проверка на стенде показала, что в случае vGPU все обстоит именно так, как написано. Даже если ВМ располагается в кластере с включенным HA, где на всех хостах установлены адаптеры NVIDIA GRID, при попытке включения ВМ возникнет ошибка Insufficient resources for vSphere HA to start the VM, а сама ВМ остается в статусе disconnected.

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

    Отсутствие поддержки vMotion и HA при использовании vGPU существенно усложняет планирование высокодоступной VDI инфраструктуры. Частично решить данную проблему можно следующими способами:
    • При использовании dedicated пулов ВМ - создавать еще один пул, в котором будут находиться резервные ВМ, к которым пользователи будут подключаться, когда ВМ из основного пула станут недоступны.
    • Использовать floating пулы ВМ.
    А для переноса рабочих данных, настроек и приложений пользователей можно использовать View Persona Management, User Environment Manager и App Volumes.

    пятница, 1 апреля 2016 г.

    VMware Videogame Console Platform

    Вслед за популярной инициативой Video Game Container System компания VMware анонсировала выпуск продукта для виртуализации игровых консолей - Videogame Console Platform (VCP).


    Ни для кого ни секрет, что современные консоли с точки зрения архитектуры представляют собой обычные ПК на базе x86 Intel-совместимых процессоров. Из этого следует простой и очевидный вывод - на консоль можно установить гипервизор и получить те же преимущества, что и от серверной виртуализации.

    VCP представляет собой специализированную ОС - микровизор на базе VMware ESXi, который устанавливается поверх аппаратного обеспечения консоли и позволяет запускать практически любую игру. У вас Sony Playstation, но вы давно хотели поиграть в эксклюзивные игры с Xbox One? С VCP вам не придется тратить деньги на покупку еще одной консоли и дорогостоящих аксессуаров.

    VCP поддерживает функцию remote play, позволяющую играть в игры с любого смартфона, планшета или телевизора. Для передачи избражения на удаленные устройства задействуется протокол Blast Extreme, который также используется в VMware Horizon View.

    VCP предоставляет геймерам уникальные возможности, включая создание снапшотов для мгновенного сохранения в любой момент времени. Во многих играх сохранение возможно только в определенных местах, а то и, вовсе, используется механизм автосохранения с контрольными точками. Отныне ваш пукан не будет гореть, когда вы в сотый раз не сможете завалить какого-нибудь особо трудоного босса в Dark Souls.

    VCP поддерживает миграцию игровых контейнеров между консолями или в ЦОД провайдеров игровых услуг. Хотите поиграть в дороге или в гостях у друзей, но не хотите брать консоль с собой? VMware позволит запускать игры прямо из облака VMware Hybrid Cloud, и играть в них в любой точке земного шара.

    VCP интегрируется с другими продуктами и решениями VMware, так например, vRealize Operations Manager поможет ослеживать прогресс и достижения в играх.

    Помимо самого микровизора VMware предосталяет доступ к Appliance Marketplace, откуда можно загрузить множество заранее сконфигурированных апплайнсов с установленными эмуляторами популярных игровых платформ: NES, Sega Mega Drive, Sony Playstation, Atari и многими другими.

    VCP доступен в четырех редакциях: Novice, Standard, Hard и Game+, которая будет доступна только после поочередной покупки трех предыдущих редакций.

    P.S. вслед за анонсом VMware, компания Microsoft заявила, что в Windows Server 2016 будет доступен новый вариант установки Xbox Server Edition, позволяющий превратить любой сервер в консоль Xbox One.

    понедельник, 28 марта 2016 г.

    Ошибка сертификата vCenter Server после обновления до Horizon View 7

    После обновления VMware View Connection Server до версии 7.0 при использовании серверов vCenter Server версии 5.0, 5.1 или 5.5 они перестают быть доступны из интерфейса View Administrator, а на вкладке Dashboard при просмотре свойств vCenter может появиться следующая ошибка.

    Нажатие на кнопку Verify не приводит ни к какому результату. При попытке изменить настройки существующего сервера vCenter или добавить новый vCenter из вкладки View Configuration появляется ошибка:
    vmware horizon view possibly an invalid vcenter server certificate please verity the identity of the associated vcenter server

    В файле debug-*.txt на сервере View Connection Server можно найти следующие сообщения:
    Server chose TLSv1, but that protocol version is not enabled or not supported by the client.

    Причина проблемы: В Horizon 7 по умочанию отключен протокол TLSv1, который используется в старых версиях VMware vCenter Server. Для решения проблемы следует обновить VMware vCenter Server, либо включить поддержку TLSv1 в Horizon. Для этого выполните следующие действия:
    1. Выполните вход на любой из серверов View Connection Server.
    2. Запустите ADSI Edit.
    3. В поле Distinguished Name or Naming Context укажите "DC=vdi, DC=vmware, DC=int".
    4. В поле Select or type a domain or server укажите "localhost:389".
    5. Раскройте дерево ADSI Edit: "OU=Global, OU=Properties, DC=vdi, DC=vmware, DC=int".
    6. Откройте свойства объекта CN=common.
    7. Найдите и отредактируйте атрибут pae-ClientSSLSecureProtocols, указав в качестве значения: "\LIST:TLSv1.2,TLSv1.1,TLSv1" (не забудьте обратный слэш в начале строки).
    8. Нажмите OK для применения параметров.
    9. Перезапустите службу VMware Horizon View Connection Server на всех серверах View Connection Server.
    После выполнения настроек, серверы View Connection Server смогут использовать протокол TLSv1 для подключения к vCenter Server.

    понедельник, 21 марта 2016 г.

    Teradici PCoIP Workstation Access

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

    Помимо разработки и производства процессоров для обработки PCoIP, а также лицензирования протокола для сторонних компаний (PCoIP используется в качестве одного из протоколов доступа в VMware Horizon View, а также Amazon WorkSpaces), Teradici также выпускает ПО для работы с PCoIP: Teradici PCoIP Workstation Access.

    PCoIP Workstation Access устанавливается на рабочую станцию и позволяет подключаться к ней по протоколу PCoIP с нулевого клиента или с помощью программного клиента Teradici PCoIP Client. При этом отсутствует необходимость установки в компьютер адаптера PCoIP Remote Workstation Card, обработка протокола PCoIP осуществляется центральным процессором. Подключение клиентов к рабочим станциям с ПО Workstation Access может осуществляться напрямую, в этом случае не требуется разворачивать никаких дополнительных серверных компонентов, вроде брокеров подкючений, шлюзов и т.д. (схожим образом работает агент VMware View Direct Connection Agent). Однако при желании можно использовать Workstation Access совместно со сторонними брокерами подключений, заявлена поддержка Leostream Connection Broker, а также Teradici PCoIP Connection Manager for Amazon WorkSpaces.

    Аппаратные решения в виде адаптеров Teradici PCoIP Remote Workstation Card предназначены для обеспечения максимального уровня производительности при работе пользователей с "тяжелыми" приложениями, тогда как ПО PCoIP Workstation Access представляет собой более экономичное и универсальное решение по удаленному доступу, рассчитанное на типовых пользователей рабочих станций.

    ПО Workstation Access распространяется по подписке, ориентировочная цена - от 132$ в год, включая поддержку. Существуют две модели лицензирования - по хостам и по пользователям. На сайте доступна для загрузки триальная лицензия на 30 дней (хотя мне после запроса прислали лицензию на 50 с лишним дней).

    В качестве ОС для установки Workstation Access поддерживаются как клиентские ОС: Windows 7, 8, 8.1, так и серверные: Windows Server 2008 R2.
    Существует два варианта установки Workstation Access:
    • Deskside - для установки на рабочие станции с подключенными мониторами. В данном варианте пользователя может работать с рабочей станцией как локально, используя монитор, клавиатуру, мышь, так и удаленно при подключении по протоколу PCoIP.
    • Cloud or Data Center - для установки на рабочие станции или виртуальные машины без подключенных мониторов. В данном варианте предполагается, что пользователь подключается к рабочей станции только удаленно по протоколу PCoIP.
    ПО Workstation Access предоставляет следующие функциональные возможности:
    • Подключение при помощи нулевых клиентов PCoIP (TERA2 клиенты с версией прошивки 4.8 или выше).
    • Подключение при помощи программных клиентов для Windows, MAC OS, Chrome OS, iOS или Android.
    • Поддержка многомониторных конфигураций. До двух мониторов с разрешением 2560 x 1600 или до 4-х мониторов с разрешением 1920 x 1200.
    • Поддержка аппаратного ускорения графики с использованием GPU (NVIDIA GRID, NVIDIA Quadro и другие). Для ВМ, работающих на VMware vSphere, поддерживается проброс графических адаптеров в режиме vDGA или vGPU.
    • Поддержка проброса USB устройств.
    • Поддержка проброса принтеров.
    • Поддержка передачи звука в обоих направлениях (воспроизведение и запись).
    • Передача буфера обмена между рабочим столом и клиентом в обоих направлениях, включая текст (rich text) и изображения.
    • Поддержка SSO - однократная аутентификация на клиенте PCoIP при подключении и автоматический вход в систему под данной учетной записью.
    Установка PCoIP очень проста и не требует каких-либо специфических навыков. После установки агента Workstation Access на рабочем столе в области уведомления появится значок PCoIP Control Panel, из которого можно выполнять базовые настройки агента.

    Для подключения к рабочей станции можно использовать программный клиент PCoIP Client.

    При подключении клиент должен пройти аутентификацию.

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

    Для управления настройками PCoIP: включение/отключение некоторых функций, качества изображения, используемой полосы пропускания и т.д., применяются групповые политики Microsoft Windows. Файл шаблона располагается в каталоге установки, по умолчанию: "C:\Program Files (x86)\Teradici\PCoIP Agent\configuration". Для тех, кто работал с VMware Horizon View эти настройки могут показаться знакомыми.

    Что касается скорости работы с удаленным рабочим столом, то разницы по сравнению с VMware Horizon View не видно. При наличии высокоскоростного, стабильного подключения протокол PCoIP обеспечивает стабильный показатель в 24-30 кадров в секунду. Но при воспроизведении видео с настройками по умолчанию PCoIP может быть весьма прожорлив, даже в разрешении 1280 x 1024 протокол отъедает 30-40 Мбит/с.

    Подводя итоги, можно сказать, что ПО Teradici PCoIP Workstation Access является неплохой альтернативой классическим VDI решениям вроде VMware Horizon или Citrix XenDesktop для небольших инсталляций, где не требуется централизованное развертывание и управление виртуальными рабочими станциями, но где нужно обеспечить максимальный уровень производительности удаленного доступа, например, при работе с САПР или 3D редакторами.

    воскресенье, 13 марта 2016 г.

    Изменение лицензирования в VMware Virtual SAN 6.2

    Начиная с версии 6.2 в VMware Virtual SAN в дополнение к трем существующим редакциям: Standard, Advanced и ROBO, появилась новая редакция Enterprise. Функциональные различия редакций представлены в таблице.

    В связи с этим важно помнить следующие нюансы:

    Функция Stretched Cluster, позволяющая развернуть распределенный кластер Virtual SAN между двумя площадками, переехала в редакцию Enterprise, что может огорчить тех, кто планировал для этих целей использовать Advanced.

    Двухузловой кластер Virtual SAN (2-host Virtual SAN) для небольших филиалов с узлом-свидетелем в главном ЦОД не является Stretched Cluster и доступен во всех редакциях Virtual SAN (а не только в ROBO или Enterprise).

    Не смотря на то, что в существующих инсталляциях возможно заменить лицензии Virtual SAN ROBO на Virtual SAN Standard, Advanced или Enterprise, например, если вы превысили ограничение в 25 ВМ или вам нужны дополнительные функции старших редакций, в прайс-листе нет позиций апгрейда, т.е. лицензии придется покупать с нуля.

    Для VDI сред вместо лицензирования по процессорам можно приобрести конкуретные лицензии по пользователям: Virtual SAN Standard for Desktop, Virtual SAN Advanced for Desktop или Virtual SAN Enterprise for Desktop, функционал которых аналогичен соответствующим редакциям Virtual SAN, лицензируемым по процессорам.

    В бандлах VMware Horizon Advanced и VMware Horizon Enterprise включены лицензии Virtual SAN Advanced for Desktop. Поэтому если вы планировали развертывание VDI на Stretched Cluster VSAN, то вам придется приобрести Virtual SAN Enterprise for Desktop. Пока не понятно, можно ли будет воспользоваться позицией апгрейда с Virtual SAN Advanced for Desktop на Enterprise для лицензий из бандла Horizon, или лицензии Virtual SAN Enterprise придется покупать с нуля.

    Более подробно о лицензировании Virtual SAN можно прочитать в документе: http://www.vmware.com/files/pdf/products/vsan/vmware-vsan-62-licensing-guide.pdf