вторник, 4 августа 2015 г.

Windows 10 и vGPU

Здравствуйте!

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

Не так давно один из моих сотрудников прошел обучение VMware Horizon, и большую часть рутинных работ по администрированию инфраструктуры VDI я делегировал, оставив за собой роль архитектора. И поскольку обязанность восстановления инфраструктуры в случае форс-мажора тоже перешла к моему сотруднику, я решил отложить свой ноутбук в шкаф и пересесть на свою виртуальную машину и потестировать работоспособность недавно вышедшей Windows 10. Начал пользоваться тем, что спроектировал и внедрил :)

Конфигурация виртуальной машины:
- 2 vCPU;
- 8 GB RAM. Изначально поставил 4GB, но пришлось увеличить до 8. 4GB не хватало;
- NVIDIA K140Q;

И, как обычно, в качестве клиента Zero Client HP T310 с двумя мониторами. Все стандартно.

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

Обратил внимание на то, что работает звук, но не работает микрофон. Необходимо ставить драйвер Teradici Virtual Audio Driver. В предыдущих версиях Windows не работал ни звук ни микрофон без этого драйвера, прогресс налицо...

Достаточно комфортно работать удаленно. Для пробы из дома запустил сессию и включил сначала музыкальные ролики на Youtube, затем тестовые видео, например, вот этот
Музыкальные ролики воспроизводились без нареканий в разрешении HD, тестовые видео в HD и FullHD немного подтормаживали. Но смотреть вполне возможно.
Так что если кому-то это критично, то можете принять к сведению.

MS Office 2013 работает без нареканий. Прокрутка плавная, торможений при работе с текстом не заметил. Для теста открыл сложный многостраничный документ с массой таблиц. Все нормально. На моем ноутбуке было хуже :)

Не работает КриптоПРО версии 3.9, необходима установка версии 4. TrueCrypt работает штатно, без нареканий.

Не захотел устанавливаться "толстый клиент" VMware vSphere Client, при установке выдал ошибку. Гуглинг этой ошибки показал, что нельзя установить без .NetFramework 3.5. Вот инструкция по установке. После установки .NetFramework 3.5 установка VMware vSphere Client происходит без ошибок.

В целом, система вышла более удачной, на мой взгляд, чем ее предшественница, и я пока не заметил чего-то такого, что мешало бы мне работать. В ближайшее время попрошу инженеров, работающих с CAD-программами потестировать новую операционную систему. Что же касается Horizon View и работы с NVIDIA vGPU пока проблем нет.

среда, 27 мая 2015 г.

Проблемы с VDI

Здравствуйте!

На прошлой неделе было два визита компаний схожего профиля с целью посмотреть, как у нас работают инженеры-проектировщики в виртуальной среде. Схожего профиля - это имеется в виду, компании, основной бизнес которых заключается в выпуске проектно-сметной документации для промышленных компаний. Визит организовало Российское представительство NVIDIA.
И кроме того, что была общая демонстрация работоспособности и жизнеспособности подобного решения, был задан вполне закономерный вопрос: "С какими проблемами столкнулись при внедрении?"

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


1.    Ошибка входа в пул. Пользователю выдается сообщение на английском языке, которое, чаще всего интерпретируется как «здесь что-то написано, я не понимаю».
Возможные причины: нет свободных машин в пуле. В панели администратора View, вкладка Monitoring -> Events появляется сообщение «Unable to launch from Pool XXX for user YYYY: All responding machines are currently in use»
Решение: добавить дополнительные машины в пул.

Может появится другое сообщение: «Unable to launch from Pool XXX for user YYYYY: No machines in the Pool are responsive»
Такое сообщение появляется, когда все машины в пуле заняты и включается новая машина.
Решение: ничего не делать, подождать пару минут пока машина включится. Актуально только для Windows-клиентов, нулевые клиенты ожидают, когда машина включится и не показывают ошибку.

2.    Пользователь входит в систему и не видит ярлыков рабочего стола и данные, которые расположены на рабочем столе.
Причина: проблема с профилем пользователя. Профили, расположенные в сетевых папках Windows иногда повреждаются. И чаще всего это происходит из-за двух причин:
- включено кеширование автономных файлов. В логах Windows Persona Management жалуется на включенный Client Side Caching. Выполнить на машине или мастер-образе: sc config csc start= disabled и все будет хорошо;
- на томе, где хранятся профили, включена дедупликация средствами Windows 2012. Ее необходимо выключить иначе замучаетесь с битыми профилями. Не могу сказать про дедупликацию на СХД, для моей СХД эта фича, к сожалению, не куплена.

Это мелкие ошибки. А вот ошибка посложнее и пофатальнее. И замучался я с ней знатно.

3.    При входе в машину, пользователь видит черный экран или система загружается, но работает чудовищно медленно. Проблема появляется только на машинах с проброшенными ядрами NVIDIA GRID K1 (режим vDGA)

Немедленная помощь пользователю:
3.1.    Выключить виртуальную машину.
3.2.    Удалить проброшенное графическое ядро.
3.3.    Перевести машину на другой хост, где есть свободные графические ядра.
3.4.    Добавить свободное ядро.

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

Самое главное - это поведение поддержки VMWare: в данном случае они мне не помогли абсолютно ничем. Они подключались, наблюдали, собирали логи, собирали митинги инженеров, но увы, проблема не решалась около 2-3 месяцев. В течении этих трех месяцев я взял за правило перезагружать серверы дважды в неделю.

Решение нашлось абсолютно случайно и было подсказано хорошим человеком из NVIDIA.
При создании машины, используя технологию vDGA, добавить в параметры виртуальной машины pciPassthru0.msiEnabled = "FALSE" Почему этот параметр решает проблему с NVIDIA Grid не знает даже поддержка VMWare
С переходом на vGPU надеюсь, что этой проблемы больше не будет вообще.

4. Решение проблемы Already Used.
Симптом: в VMWare Horizon View Administrator в разделе Problem vCenter VMs появилась машина, статус которой Already Used. Пользователь к ней подключиться не может.
Проблема наблюдается только на Linked Clones десктопах.
Временное решение: правой кнопкой на проблемной машине и выбрать Refresh.
Решение навсегда первое в гугле

5. Еще одна проблема, которая убила много моих нервных клеток. И которую тоже не решила толком поддержка VMWare.
Симптом: пользователь постоянно отключается от виртуальной машины (видит "You have been disconnected). Наблюдается на нулевых клиентах, которые работают с машинами vDGA. После дисконнекта, пользователь вводит пароль и

Лог сервера pcoip, который находится на сбойной машине вот здесь c:\ProgramData\VMware\VDM\logs\, забит однотипными сообщениями вида:
03/24/2015, 14:05:24.257> LVL:0 RC:   0          EXTERN :svga_devtap ==> svgadevatp: NvFBC can't create now, adapter 0
03/24/2015, 14:05:24.259> LVL:0 RC:   0          EXTERN :svga_devtap ==> Error: EnumDisplaySettings(ENUM_CURRENT_SETTINGS) failed for display 0, error 997.
03/24/2015, 14:05:24.259> LVL:0 RC:   0          EXTERN :svga_devtap ==> Error: EnumDisplaySettings(ENUM_CURRENT_SETTINGS) failed for display 1, error 997.
03/24/2015, 14:05:24.265> LVL:0 RC:   0          EXTERN :svga_devtap ==> svgadevtap: No displays reported from NVfbc.
03/24/2015, 14:05:24.265> LVL:0 RC:   0          EXTERN :svga_devtap ==> svgadevtap: Nvfbc capture failed.
03/24/2015, 14:05:24.277> LVL:0 RC:   0          EXTERN :svga_devtap ==> Error: EnumDisplaySettings(ENUM_CURRENT_SETTINGS) failed for display 4, error 997.
03/24/2015, 14:05:24.278> LVL:0 RC:   0          EXTERN :svga_devtap ==> Error: EnumDisplaySettings(ENUM_CURRENT_SETTINGS) failed for display 5, error 997.
03/24/2015, 14:05:24.293> LVL:0 RC:   0          EXTERN :svga_devtap ==> svgadevtap: No displays reported from NVfbc.

Поддержка VMWare опять же не помогла ничем. Решение нашлось случайно.
В момент создания подобных машин, необходимо выполнить команду C:\Program Files\Common Files\VMware\Teradici PCoIP Server\montereyenable.exe -enable
И я ее, естественно, выполнял при создании машины. Но, видимо, что-то пошло не так (С) То ли неудачное обновление драйвера, то ли что-то еще, но эта настройка каким-то чудом исчезла.
И если этот ваш случай, то необходимо:

- подключится к пользователю. Запустить cmd от администратора.
Выполнить в консоли:
- cd C:\Program Files\Common Files\VMware\Teradici PCoIP Server
- montereyenable.exe -enable
- перезагрузить машину.
- попроить, чтобы пользователь вошел в систему. Через минуту смотрите опять этот лог, не забыв промотать в самый конец. Нормальное состояние PCoIP сессии в логе выглядит примерно так.

04/03/2015, 17:34:41.611> LVL:2 RC:   0 MGMT_PCOIP_DATA :Memory stat: available physical memory = 3934MB/6143MB
04/03/2015, 17:34:45.338> LVL:2 RC:   0 MGMT_PCOIP_DATA :Tx thread info: round trip time (ms) =   0, variance =   1, rto = 101, last =   0, max =   2
04/03/2015, 17:35:11.033> LVL:2 RC:   0        MGMT_IMG :log: cur_s   0 max_s  30 bwc 0.00 bwt 8.59 changed fps 28.5 decode rate est (MBit/sec) - 500.00
04/03/2015, 17:35:11.033> LVL:0 RC:   0        MGMT_IMG :Imaging rtt last:   0 min:   0 max:   0 avg:   0.9276
04/03/2015, 17:35:11.033> LVL:2 RC:   0        MGMT_IMG :log: Disp_0:SoftPCoIP, Disp_1:SoftPCoIP, Disp_2:Disabled, Disp_3:Disabled
04/03/2015, 17:35:11.033> LVL:2 RC:   0        MGMT_IMG :log (SoftIPC): tbl 1 fps 0.03 quality 80
04/03/2015, 17:35:11.033> LVL:2 RC:   0        MGMT_IMG :log (SoftIPC):  bits/pixel - 5.40, bits/sec - 46.08, MPix/sec - 0.00

И все будет нормально, перестанет дисконнектить.
Однако, не все так здорово, к сожалению.

На машинах с vGPU есть подобная проблема, но связана она с падением сервера PCoIP. Хотя симптоматика идентична: пользователя отключает от сессии и он вынужден опять переподключаться. Данные сессии при этом не теряются, он продолжает дальше работать. Но это, естественно, раздражает людей.

В event logs Windows в момент дисконнекта пишется следующее:
"Имя сбойного приложения: pcoip_server_win32.exe, версия: 3.30.0.50438, отметка времени: 0x54d1c88a
Имя сбойного модуля: NvFBC.dll, версия: 6.14.13.4752, отметка времени 0x54d3ad55
Код исключения: 0xc0000005
Смещение ошибки: 0x00002474
Идентификатор сбойного процесса: 0x944
Время запуска сбойного приложения: 0x01d09787b5dc2d25
Путь сбойного приложения: C:\Program Files\Common Files\VMware\Teradici PCoIP Server\pcoip_server_win32.exe
Путь сбойного модуля: C:\Windows\Syswow64\NvFBC.dll
Код отчета: 5b846c88-0388-11e5-87bc-0050569d1038"

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

среда, 6 мая 2015 г.

Teradici PCoIP Firmware v.4.8.0

Здравствуйте!

Достаточно интересная рассылка от Teradici пришла вчера вечером. В ней было указано, что вышла новая версия прошивки для нулевых клиентов Tera 2.
Заглянув в Release Details, увидел следующее:

"14909 - VMware Horizon 6 RDS-hosted application delivery Zero clients now support VMware Horizon 6 application remoting based on Microsoft Remote Desktop Services (RDS)."

Т.е., теперь нулевые клиенты с этой прошивкой могут поддерживать доставку приложений. До вчерашнего дня это умели делать только софтовые клиенты VMWare Horizon Client.

Хочу показать как это выглядит.

Сначала необходимо обновить нулевой клиент новой прошивкой.
Затем зайти в настройки zero client, в раздел "Configuration -> Session". Нажать кнопку "Advanced"



Извините за качество картинок, пришлось фотографировать телефоном экран, так как нет технической возможности сделать Screenshot на нулевом клиенте.

В открывшемся окне дополнительных настроек необходимо выбрать RDS Application Access

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



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

понедельник, 6 апреля 2015 г.

Первый конфуз с vGPU

Здравствуйте!

Сегодня одна из виртуальных машин с vGPU выдала интересное сообщение:

An error was received from the ESX host while powering on VM vm-pe-ggop-60.
Failed to start the virtual machine.
Module DevicePowerOn power on failed.
Could not initialize plugin '/usr/lib64/vmware/plugin/libnvidia-vgx.so' for vGPU 'grid_k180q'.
No graphics device is available for vGPU 'grid_k180q'.
 
Как так не хватает ресурсов, ведь все строго по мануалу: 4 машины с профилем NVidia K180Q и 8 машин с профилем NVidia K160Q?!
Оказывается, что по мануалу, да не совсем. И хороший человек из NVidia любезно подсказал мне, чтобы я прочитал "NVidia Grid Quick Start Guide", который идет с драйвером NVidia, внимательнее. Особенно внимательно читать пункт 1.7.
 
Так вот, этот пункт гласит следующее: по умолчанию, политика размещения виртуальных GPU (vGPU) на физических GPU "breadth-first", т.е., берется свободное ядро и на него размещается vGPU  определенного типа, например, NVidia K160Q. Протом включается еще одна машина с NVidia K160Q и размещается на другое свободное ядро. Если свободных нет, то на одном физическом ядре размещается вторая NVidia K160Q и т.д. Всего физических GPU - 8 штук, соответственно, может разместиться либо 8 NVidia K180Q, либо 4 NVidia K180Q и 8 NVidia K160Q, либо 16 NVidia K160Q. Но тут есть засада, о которой я не подумал.

Допустим, что сначала 7 машин с NVidia K160Q разместились на 7 свободных физических GPU- одни пользователи включили свои машины ранее других. Потом пришел другой пользователь с NVidia K180Q и занял еще одно физическое GPU. Потом пришел еще один пользователь с NVidia K180Q и пытается включить машину. И не может, так как все 8 физических GPU заняты!

Что делать? Сначала я назначил пользователю временно NVidia K160Q, потом дождался вечера, перевел хост в maintenance mode и добавил /etc/vmware/config строку:
vGPU.consolidation = true
Перезагрузил.

При включенном параметре vGPU.consolidation, поведение размещения vGPU меняется на "depth-first" - старается максимально нагрузить однотипными vGPU сначала одно физическое ядро, а затем нагружает другое, а не берет первое свободное, как в случае с "breadth-first"
Пример: 
- сначала включилась машина с NVidia K160Q. Размещена на физическое ядро 0.
- Потом включилась машина с NVidia K180Q. Размещена на физическое ядро1.
- Потом включилась машина с NVidia K160Q. Размещена на физическое ядро 0.
- Потом включилась машина с NVidia K160Q. Размещена на физическое ядро 2.
- Потом включилась машина с NVidia K160Q. Размещена на физическое ядро 2.
.... и т.д.

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

В случае, если все vGPU на сервере однотипные, то этот параметр лучше не включать, так как в нем не будет никакого смысла, он только ухудшит производительность vGPU. 

пятница, 3 апреля 2015 г.

Начало тестирования vGPU

Здравствуйте!


Как я писал в предыдущей статье, было проведено обновление одного из хостов до ESXi 6 и задействован механизм vGPU.

Что выяснено по результатам тестирования в первом приближении.
1. Это работает. Про стабильность писать не буду, чтобы не сглазить.
2. Autocad 2012 и 2105 считает устройства NVidia GRID K180Q и NVidia GRID K160Q несертифицированными, но аппаратное ускорение включается и работает. Autocad 2014 ведет себя аналогично, но отображает значок графического ускорения серым, как будто ускорения нет, но оно по факту есть - так же было и с K1. Т.е., фактически ничего не поменялось по сравнению с NVidia GRID K1
3. Внутри виртуальной машины теперь нельзя посмотреть загрузку GPU используя nvidia-smi -l. Специалисты из NVidia сказали, что это не баг, а фича. Поверим на слово.
Нагрузку GPU теперь можно посмотреть, подключившись к хосту, используя ssh. Это выглядит вот так:


4. Производительность.
Профиль NVIDIA K180Q. Работает инженер-проектировщик с программами, активно использующими 3D графику (AVEVA PDMS, SmartPlant 3D, Autocad 2015). Деградации производительности при смене vDGA на vGPU не почувствовал.

Профиль NVIDIA K160Q. Работает инженер-проектировщик с программами, менее активно использующими графику (AVEVA Diagrams, SmartPlant P&ID, Autocad 2015, Microsoft Office 2013). Деградации производительности при смене vDGA на vGPU не почувствовал.

Еще раз обращаю внимание на то, что Office 2013 может доставить немало головной боли в VDI. Здесь тестировалась работа с тяжелыми документами страниц на 200-300 с кучей таблиц. Пока нормально.

5. Производительность в попугаях.
Так я называю различные тесты с помощью программ-бенчмаркеров.
Тестировал с помощью теста "Турбина" http://www.redway3d.com/gallery/demos/


Разница между NVIDIA K1 passed-through и NVIDIA K180Q небольшая, в 10-20 попугаев. Т.е., для себя заключил, что виртуализация графического ядра не сильно сказалась на производительности.

Но я повторял и буду повторять: эти тесты не значат почти ничего. Главный тест - это работа инженера-проектировщика. Если ему работается комфортно и ничего не торморзит, то тест пройден. А 100500 попугаев теста будут перечеркнуты одной фразой, сказанной руководству "да тормозит все это, работать невозможно!!!" Хотя у человека элементарно не открывался веб-сайт...

6. Удобство.
Для администратора VMWare Horizon View главное удобство технологии, что можно теперь делать автоматизированные пулы виртуальных машин с графикой ничего не устанавливая и донастраивая дополнительно. Исчезло закрепление конкретного графического ядра, достаточно указания типа графического адаптера и все, можно делать template и автоматизированный пул виртуальных машин. Надо добавить новую машину - пожалуйста, она через 10-15 минут будет полностью подготовлена и готова к работе. Это здорово и удобно.
Нет Live Migration таких машин и пока не будет. Но есть холодная миграция с хоста на хост, что уже хорошо.

7. Плотность.
Плотность виртуальных машин с графическим адаптером увеличилась.
В текущей конфигурации прибавилось четыре дополнительные машины: 4 Nvidia GRID K180Q и 8 Nvidia GRID K160Q. До этого было 8 Nvidia GRID K1

Пока все, что заметил.

воскресенье, 15 марта 2015 г.

Долгожданный релиз

Здравствуйте!

В пятницу 13 обновились до VMWare vSphere 6. Надеюсь, что суеверия не подтвердятся :)

И одно из долгожданных новшеств этого релиза - технология vGPU, когда одно физическое ядро видеоадаптера NVIDIA Grid K1 или K2 можно будет поделить между двумя и более виртуальными машинами. Это позволит увеличить плотность размещения виртуальных машин на физическом сервере, что в свою очередь снизит стоимость владения инфраструктурой.

Пример.

Инженер-проектировщик монтажно-технологического отдела, строительного отдела.
Рабочие программы: AVEVA PDMS, SmartPlant 3D, Autocad.
Требования к производительности 3D-графики: повышенные.
Плотность размещения: максимум 8 виртуальных машин с графическим видеоадаптером на один физический сервер.
Целесообразность применения vGPU: нецелесообразно, возможна деградация производительности.

Инженер-проектировщик технологического отдела, электротехнического отдела, отдела КИПиА.
Рабочие программы: SmartPlant P&ID, AutoCAD, Microsoft Office.
Требования к производительности графики: средние.

В данном случае предоставлять подобным виртуальным машинам полноценное графическое ядро нецелесообразно. Здесь очень подходит vGPU.

Виртуальным машинам предоставляется видеоадаптер K160Q, таких видеодаптеров возможно использовать два на одно физическое ядро NVIDIA Grid. Таким образом, плотность размещения возрастает вдвое: 16 машин с графическим ускорением начального уровня на одном физическом сервере.

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

понедельник, 23 февраля 2015 г.

Достаточно распространенный кейс

Здравствуйте!

Я прохожу обучение в магистратуре по программе ИТ-менеджмент в РАНХиГС (Российская академия народного хозяйства и государственной службы при Президенте Российской Федерации) И на одном из занятий был предложен не сказать чтобы очень интересный, но достаточно распространенный кейс. Ситуация, изложенная в этом кейсе, встречается повсеместно, поэтому хотелось бы поделиться своим решением.

Ситуация
·      Среднее предприятие с большим количеством бизнес-процессов
·      Почти десяток разнообразных информационных систем (все системы взаимосвязаны)
·      ИТ-служба:
    - отдел системного администрирования
    - отдел внедрения и сопровождения ПО
·     Направления в ОВС ПО:
    - бухгалтерский учет, кадровый учет, зарплата
    - оперативный учет
    - учет и управление транспортом
     - электронный документооборот
·     Постоянные доработки учетных систем
Симптомы
·      Простои бизнес-подразделений, пока ищут компетентного сотрудника
·      Долгое ожидание выполнения заявок
·      Незафиксированные заявки
·      Утрата невыполненных и незафиксированных заявок
·      Споры по срокам открытия и выполнения заявок
·      Неэффективность сотрудников
·      Долгая адаптация новых сотрудников
Причины
·      «Зоопарк» систем приводит к большому потоку заявок в техподдержку
·      Заявки поступают к разным сотрудникам по специализации
·      Нет единой точки входа
·      Нет системы приоритизации
·      Нет системы учета заявок и контроля их исполнения
·      Слабое знание используемых систем бизнес-подразделениями
·      Большие промежутки между выполнением некоторых задач – утрата навыков
Задание
·      Дать предложения по преодолению проблем
·      Перечислить первоочередные мероприятия
·      Назвать критерии, показывающие, что проблемы решены