понедельник, 29 апреля 2019 г.

Настройка работы режима киоска на тонком клиенте Dell Wyse с ThinOS

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

В VMware Horizon при настройке режима киоска для каждого клиентского устройства, с которого выполняется подключение, создается отдельная доменная учетная запись пользователя. Эта запись имеет специальный формат (по умолчанию, имена учетных записей начинаются на CM-) и содержит MAC адрес клиентского устройства. Для создания учетных записей используется утилита vdadmin.exe, которая также может автоматически генерирует пароль, который сохраняется в базе View Connection Server. При подключении клиентского устройства в режиме киоска View Connection Server определяет, есть ли базе информация о MAC адресе клиентского устройства и использует сохраненный логин и пароль для сквозной аутентификации на виртуальном десктопе или терминальном сервере. Плюсом такого решения является то, что логин и пароль не хранятся на самом клиентском устройстве, и злоумышленник не сможет узнать их, даже если получит административный доступ к клиенту.

Режим киоска поддерживается на клиентах Horizon Client под ОС Windows и Linux.

Для тонких клиентов Dell Wyse с операционной системой ThinOS для активации режима киоска потребуется добавить следующие настройки в файл конфигурации wnos.ini.

; Использовать в качестве брокера VMware Horizon, включить режим проверки сертификатов, разрешить неаутентифицированный доступ, указать адре сервера для подключения
ConnectionBroker=VMware SecurityMode=Full EnableUnauthenticatedAccess=yes Host=view01.company.local ConnectionType=Default

; Задать имя тонкого клиента
TerminalName=$TN

; Задать логин и пароль по умолчанию, которые используются для подключения
DefaultUser="Client Mac" Disable=yes Display=no
Password="" Disable=yes

; Автоматически выполнять перезагрузку тонкого клиента при отключении от удаленного рабочего стола
AutoSignoff=5 Reboot=yes

; Указать домен для подключения, убрать отображение списка доменов
DomainList=COMPANY
DisableDomain=Yes

Видео с демонстрацией работы ТК ThinOS в режиме киоска.

Дополнительная информация по настройке приведена в документе Horizon 7 Administration:
https://docs.vmware.com/en/VMware-Horizon-7/7.8/horizon-administration/GUID-84E6E2DA-0CFA-4D92-B880-8FC0ECE8A1E1.html

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

Проброс графического адаптера и режим ускорения графики vDGA

Сегодня я хочу рассказать о некоторых нюансах проброса графических адаптеров внутрь ВМ в режиме VMDirectPath I/O и ускорении графики в режиме vDGA в Horizon.

VMware Horizon поддерживает различные режимы ускорения графики для виртуальных десктопов. Из них три режима так или иначе могут задействовать ресурсы графических адаптеров: vSGA, Shared Pass-Through Graphics (он же NVIDIA vGPU или AMD MxGPU), а также vDGA.

Пример использования ускорителя NVIDIA Quadro P2000 в режиме vDGA можно увидеть по ссылке: http://blog.vmpress.org/2019/02/horizon-blast-h265.html.

vDGA задействует технологию проброса PCI устройства внутрь ВМ (VMDirectPath I/O) и позволяет предоставить одной из ВМ графический адаптер в монопольное использование. После проброса внутри гостевой ОС устанавливаются соответствующие драйверы устройства, и с ним можно работать также, как если бы оно было подключение к обычному настольному компьютеру. Это и является основным преимуществом, равно как и недостатком, данного режима, поскольку позволяет обеспечить максимальный уровень производительности работы графического адаптера, но в то же время накладывает на ВМ ряд ограничений, например, невозможность использования VMware HA, vMotion, снапшотов, необходимость резервирования оперативной памяти ВМ и т.д.

При использовании vDGA в связке с графическими адаптерами производства NVIDIA есть несколько нюансов.

Десктопные графические адаптеры серии GeForce (например, GeForce GTX 1060) не поддерживаются в данном режиме. При пробросе такого адаптера внутрь ВМ после установки соответствующих драйверов в диспетчере устройств будет отображаться сообщение об ошибке:
Windows has stopped this device because it has reported problems. (Code 43)

NVIDIA сознательно ограничивает возможность использования десктопных графических адаптеров GeForce; если драйвер определяет, что операционная система работает внутри ВМ, то адаптер перестает работать.

Драйвер можно обмануть, добавив расширенную настройку в конфигурацию ВМ.
hypervisor.cpuid.v0 = "FALSE"

В этом случае графический адаптер сможет работать внутри ВМ. Однако, в связке с VMware Horizon вы все равно не сможете обеспечить корректную работу протоколов PCoIP или BLAST с десктопными адаптерами - при удаленном подключении к такой ВМ вы просто увидите черный экран. Это вызвано ограничениями десктопной версии драйвера NVIDIA GeForce.

Возможности по работе с Horizon доступны только в линейке графических адаптеров серии Quadro и Tesla, причем младшие модели Quadro (400, 600) также не будут работать (error 43). Минимальные поддерживаемые модели, начинаются с 2000, например, M2000, P2000, M4000 и т.д. Если вы планируете использовать vDGA в Production среде, то обязательно проверьте совместимости с HCL на сайте VMware. Если вы хотите, чтобы ваше решение поддерживалось, то вы должны использовать поддерживаемый графический адаптер И поддерживаемую модель сервера И поддерживаемое поколение процессоров И поддерживаемую версию гипервизора ESXi И поддерживаемую версию Horizon. Даже если вы знаете, что какой-нибудь NVIDIA Quadro K5000 будет прекрасно пробрасываться внутрь ВМ с ESXi 6.7, отсутствие поддержки данной версии гипервизора означает, что решение в целом будет неподдерживаемым со стороны вендора.

Существует заблуждение, что при использовании ускорителей NVIDIA Tesla в связке с vDGA не требуется приобретать лицензии NVIDIA GRID (в отличие от vGPU). Это не так, в чем легко можно убедиться, заглянув в документацию по лицензированию NVIDIA.

Требование по лицензированию не распространяется на ускорители серии NVIDIA Quadro, что делает их более привлекательным решением для задач vDGA в сравнении с Tesla.

понедельник, 1 апреля 2019 г.

Factorio - пособие для начинающих автоматизаторов

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

Речь идет об одном приложении, а точнее - видеоигре, под названием Factorio. Если описать игру двумя словами - это "симулятор инженера". Factorio сложно отнести к какому-то определенному игровому жанру, в ней присутствуют геймплейные элементы стратегии в реальном времени, survival, экономического симулятора, экшена, помноженного на процесс сборки конструкторов Lego. Если проводить аналогии, то Factorio чем-то похожа на такие игры, как Minecraft, Subnautica, Terraria, но имеет множество своих уникальных черт.

Вы играете за персонажа, который оказался на далекой и крайне враждебной планете. Цель игры - построить ракету, которая доставит спутник на орбиту. Вот только есть одна "небольшая" загвоздка - из подручных инструментов у вас только пистолет для самообороны от агрессивной фауны и кирка для добычи полезных ископаемых (уже на этом этапе игры возникают некоторые параллели с ИТ в малом бизнесе, когда руководство дает шанс проявить себя, поставив задачу "собрать звездолет из камней и палок"). Как и в реальной жизни, взять и построить ракету с нуля вы не можете - не хватит ни ресурсов, ни знаний/опыта. Благо планета богата всевозможными полезными ископаемыми (железной и медной рудой), а также древесиной, камнем, а на более поздних стадиях игры вы сможете добывать нефть и уран.
Начало игры. При первом прохождении постройка космической ракеты может занять более 40 часов.

Поначалу вам предстоит много работать руками - тут камни собрал, там дерево срубил и железной руды накопал. Из камня вы можете построить печь для переплавки руды в железные или медные слитки, которые затем можете использовать, чтобы сделать новую кирку взамен сломанной, или буровую установку, чтобы не вкалывать на шахтах. Собрав трубу и насос, вы сможете качать воду из ближайшего водоема для подачи в котельную, полученный в результате пар вы можете подвести по трубам к электрогенератору для производства электричества. Электричество необходимо для работы разнообразных устройств и конструкций, от тех же электробуровых и электропечей (которые еще предстоит изобрести), до научных станций, которые используются для открытия новых технологий. Одной из первых технологий, которую можно исследовать, является автоматизация, позволяющая вам создавать сборочные цеха - строения, которые можно запрограммировать на создание определенных предметов из имеющихся ресурсов. Однако, нельзя просто так закинуть в сборочный цех тонну железа, меди и пару бочек нефти и на выходе получить танк. Для сбора танка вам потребуется уже готовые компоненты: сталь, шестеренки, двигатели и микросхемы, которые в свою очередь можно собрать в других сборочных цехах из других ресурсов и компонентов. Для доставки ресурсов и компонентов между постройками используются конвейерные ленты и автоматические погрузчики. Соединив сетью конвейеров буровые установки, плавильные печи и сборочные цеха, вы можете полностью автоматизировать процесс добычи ресурсов, доставки и создания компонентов и готовых изделий, избавив себя от необходимости постоянно бегать по разным частям карты и выполнять роль разнорабочего. Напрашивается прямая аналогия с разнообразными Workflow и скриптами, позволяющими упростить жизнь ИТ-администраторов.

Кстати, по поводу враждебной планеты, где-то через час после начала игры (в зависимости от настроек сложности), местные представители агрессивной фауны впервые покажутся и начнут в буквальном смысле жрать вашу базу и вас. Чем не аллюзия на современные угрозы кибер-безопасности? Конечно, вы можете самостоятельно отбить несколько первых атак, используя имеющийся в наличии пистолет, но со временем по мере разрастания вашей базы, атаки станут более частыми, а атакующие вас со всех сторон инопланетяне все более смертоносными. У вас не останется выбора, кроме как выстроить надежный защищенный периметр, отгородившись толстыми стенами с кучей разнообразных автоматических турелей (от обычных пулеметов, до лазерных и огнеметных установок на поздних стадиях игры). Но не думайте, что, построив стены и заминировав все подходы, вы сможете полностью защититься от инопланетной угрозы. Лишь вооружившись дробовиком, гранатами, а лучше - танком, вы сможете на корню выжечь поселения инопланетян в непосредственной близости от базы. Я не нашел прямой аналогии с реальной жизнью, но будет считать это поведение аллегорией на то, как современный бизнес полагается на ИТ, чтобы повысить экономическую эффективность, снизать издержки и риски, и, в конечном счете, победить конкурентов.
Режим карты. Здесь можно увидеть основные производственные линии, а также защитный периметр нашего мега-завода. Красные точки, окружающие базу - это враги.

Кое-как обезопасившись от незваных гостей, вы продолжаете развитие своей базы. И в какой-то момент вы столкнетесь с проблемой оптимизации, о которой в свое время писал Э. Голдратт в книге "Цель": "Увеличение мощностей завода достигается за счет увеличения мощностей исключительно бутылочных горлышек."

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

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

Играя в данную игру, вы глубоко проникнитесь концепцией brownfield инсталляций, когда в очередной раз расширяя базу под все более возрастающие потребности производства, вы будете укорять себя за те нелепые архитектурные решения, которые приняли, буквально, полчаса назад, разбирая и перестраивая ранее казавшиеся оптимальными цепочки из конвейеров и цехов. Особенно сильно вы будете страдать за свои ошибки, если ранее неоднократно шли на компромиссы, стремясь побыстрее открыть новую технологию, или создать новый предмет/компонент. Все это приводет к накоплению "технического долга", за который рано или поздно придется расплачиваться. Я сам много раз ловил себя на желании забросить свою старую базу или даже весь сценарий, и начать все с чистого листа - уж в этот раз я точно сделаю все правильно!

Помочь с дизайном вам могут типовые конструктивные блоки (blueprint), которые будучи спроектированными один раз, затем могут тиражироваться для масштабирования и распараллеливания производственной нагрузки. Можно пойти еще дальше и не изобретать "велосипед", а воспользоваться опытом других игроков, взяв их наработки, и реализовать в своей "инфраструктуре". В Интернете, на тематических ресурсах и на каналах Reddit, посвященных игре, можно найти кучу разнообразных шаблонов, нередко с многостраничным обоснованием и математическими расчетами, показывающими эффективность того или иного решения.
За счет стандартизации и использования типовых конструктивных блоков можно, фактически, достигнуть неограниченного параллелизма в производстве. Были бы ресурсы.

Ресурсы в игре не безграничны (по крайней мере при использовании стандартных настроек карты) и практически всегда весьма остро стоит вопрос "планирования бюджета". На что потрать свое время - построить еще пару заводов по сбору продвинутых двигателей, либо побыстрее исследовать вон ту технологию, которая откроет доступ к более быстрым конвейерам и позволит ускорить доставку ресурсов на критичных участках производства, либо заняться укреплением обороны, чтобы не приходилось постоянно чинить погрызенное инопланетянами дорогостоящее оборудование.

Но рано или поздно вы истощите имеющиеся в округе запасы полезных ископаемых и вам придется расширять базу, захватывая все большие территории, буквально метр за метром отбивая землю у инопланетян. Поскольку местность и ресурсы генерируются случайным образом, то может так оказаться, что необходимый вам уран находится в нескольких игровых километрах от вашей основной базы. Что делать? - строить удаленные ЦОД аванпосты. Вот только тянуть конвейерные ленты (читай - LAN и оптику) до аванпоста - это весьма дорогостоящий и трудозатратный проект, который также потребуется включить в защищаемый периметр. Выход - использовать WAN (железную дорогу). Проложив рельсы, и подцепив к поезду несколько составов, вы можете загрузить в них необходимые ресурсы на аванпосту и доставить их к заводам на основной базе. Вообще, строительство железной дороги - это своеобразная игра в игре (этакий аналог Railroad Tycoon), вы должны правильно спроектировать сеть железных дорог, станций, семафоров и переходов, а также запрограммировать движение поездов таким образом, чтобы они не сталкивались друг с другом и максимально быстро осуществляли доставку ресурсов, и не сбивали вас, пока вы перебегаете пути в положенном месте.

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

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

Описанный мной free to play - не единственный режим, доступный в Factorio. Помимо него есть несколько сценариев - специально сгенерированных карт, призванных познакомить игроков с определенной игровой концепцией. Хотите лучше разобраться в механизме работы конвейеров и их ограничениях или прочувствовать на себе всю тяжесть работы в стесненных обстоятельствах с минимальными ресурсами, будучи окруженным толпами врагом - пожалуйста. Кроме того, Factorio поддерживает multiplayer режим, с теоретически, неограниченным количеством игроков. Если вы в одиночку не справились с постройкой базы, то можете попробовать взять на себя роль менеджера проекта, управляющего кучкой самоуверенных инженеров, а в случае чего, свалить на них ответственность за проигрыш. Наконец, для творческих личностей, существует режим sandbox, убирающий survival составляющую игры, и позволяющий построить мега-завод своей мечты.

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

Я рекомендую попробовать Factorio всем, кто любит необычные, развивающие и обучающие игры, кому нравится часами что-то строить и создавать, короче - инженерам.