вторник, 4 июня 2019 г.

Маленькие военные хитрости

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

Suspended VM Migration

Те, кто занимается виртуализацией давно и немного знают Microsoft Hyper-V, должны помнить, что в первом релизе (Hyper-V под Windows Server 2008) не поддерживалась живая миграцию ВМ (VM Live Migration). Вместо этого была доступна функция Quick Migration, когда хост приостанавливал работу ВМ, затем ВМ переносилась на другой хост, после чего возобновляла свою работу. Так вот, эта функция работает и в vSphere, причем даже в тех редакциях, которые не поддерживают vMotion (речь о vSphere Hypervisor и vSphere Essentials). Поэтому, если ваш бюджет сильно ограничен, а время простоя уменьшить надо, то можно провернуть следующий трюк:
  1. Разместить ВМ на хранилище, подключенном к обоим хостам ESXi.
  2. Приостановить работу ВМ (Suspend VM).
  3. Переместить ВМ на другой хост (в случае vSphere Essentials) или разрегистрировать ВМ на одном хосте и зарегистрировать на другом (для vSphere Hypervisor).
  4. Восстановить работу ВМ (Resume VM).

Storage vMotion для Essentials Plus

В продолжение темы с миграцией ВМ. Формально, Storage vMotion, позволяющий переносить данные виртуальной машины между хранилищами без простоя, доступен, начиная с редакции vSphere Standard и выше, и отсутствует в vSphere Essentials Plus. Если вы попробуете запустить процедуру переноса на другое хранилище для включенной ВМ, то клиент сообщит, что данная функция не поддерживается.

Однако, это с лихвой компенсируется наличием в Essentials Plus функции Enhanced vMotion, которая позволяет одновременно мигрировать ВМ и между хранилищами, и между хостами. В интерфейсе достаточно выбрать пункт Change both compute resource and storage и указать другой хост ESXi, чтобы перенести данные.

VDI без Broker'ов

Достаточно простой сценарий. На ВМ с Horizon Agent можно установить дополнительный компонент - Horizon Agent Direct Connection, позволяющий напрямую подключаться к ВМ без использования брокеров Horizon View Connection Server с тонких клиентов или ПО Horizon Client, при этом сохранив большую часть функций - сквозную аутентификацию, проброс USB устройств и принтеров, маппинг дисков и т.д. Такой вариант подходит для небольших инсталляций VDI, и позволяет сэкономить на лицензиях Windows Server и вычислительных ресурсах для Connection Server. Однако важно помнить, что несмотря на то, что Horizon Agent не отслеживает наличие необходимых лицензий Horizon, вам все же потребуется их приобрести. Дополнительная информация: https://blogs.vmware.com/euc/2013/11/vmware-horizon-view-agent-direct-connection-vadc.html

NSX-V без NSX Controllers

В NSX for vSphere кластер контроллеров NSX Controllers отвечает за работу таких функций, как логические сети на базе VXLAN и распределенные виртуальные маршрутизаторы (Distributed Logical Router). В небольших инсталляциях (например, двухузловой кластер в удаленном офисе/филиале), можно не устанавливать контроллеры и сэкономить часть вычислительных ресурсов и упростить топологию виртуальной сетевой инфраструктуры. При этом остальные функции, вроде распределенного фаерволла, Spoof Guard, маршрутизации, балансировки, VPN сервисов на пограничных устройствах NSX Edge будут работать, т.к. они не зависят от NSX Controller'ов.

Распределенный коммутатор во всех редакциях vSphere

Распределенный коммутатор VDS присутствует только в старших редакциях vSphere - Enterprise Plus, Platinum, Desktop, ROBO Advanced и ROBO Enterprise. Однако, при покупке лицензий NSX или vSAN вы получаете возможность использовать VDS и все доступные с ним функции в младших редакциях vSphere, например, Standard и Essentials / Essentials Plus.

VMware vSAN
For each Cluster that is running the Software, the vSphere Distributed Switch may be used for network management purposes regardless of the vSphere edition. The use of the vSphere Distributed Switch is limited to each Cluster running the Software, unless the vSphere Distributed Switch is licensed with the appropriate vSphere edition. The use of the vSphere Distributed Switch in relation to the Software requires the Software to be enabled and properly licensed in the Cluster.
https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/product/vmware-product-guide.pdf

VMware NSX
If you are using VMware vSphere 5.5 Update 3, vSphere 6.0.x or vSphere 6.5 and higher, VMware NSX for vSphere 6.x does not require a vSphere Enterprise Plus license and can run on any vSphere edition including Essentials and Essentials Plus Kits.

Note: With NSX Licenses, you get an equivalent number of CPU licenses to use VDS. However, that license does not mean you get a vSphere upgrade to Enterprise Plus, just the VDS license on the hosts that NSX will be deployed.
https://kb.vmware.com/s/article/2135310

А какие маленькие военные хитрости знаете вы?

понедельник, 27 мая 2019 г.

Различия редакций VMware vSphere

Пожалуй самый популярный вопрос, с которым я сталкиваюсь в своей работе - какие отличия у редакций VMware vSphere? И если с базовыми редакциями типа vSphere Standard или Enterprise Plus и известными функциями - HA, DRS, VDS всё просто, то вот сходу сказать - входит ли SR-IOV в VMware vSphere 6 Advanced for ROBO, не так уж и просто.

Специально для этого я нарисовал небольшую табличку, где приведены отличия всех основных известных редакций vSphere. Попутно я обнаружил, что пара функций vSphere объявлена как End of Availability или Deprecated. Я не стал приводить совсем уже редкие, экзотические и устаревшие редакции (вроде OEM версий vSphere, vSphere Foundation и vSphere Enterprise).

По ссылке доступна версия в формате PDF.

Краткое описание функциональных возможностей:
  • Unlimited virtual SMP - Выделение ВМ нескольких виртуальных процессорных ядер (vCPU). vSphere 6.7 U2 поддерживает выделение до 256 vCPU на ВМ. В редакции vSphere Hypervisor одной ВМ можно выделить не более 8 vCPU.
  • H.264 for Remote Console Connections - Использование кодека H.264 для компрессии изображения консольной сессии ВМ.
  • vCenter agent for VMware host - Подключение и централизованное управление хостами ESXi с сервера vCenter Server. Сюда же можно отнести другие функции, доступные через vCenter Server - создание и развертывание ВМ из шаблонов (VM Templates), централизованное обновление хостов через vSphere Update Manager, мониторинг хостов и ВМ с помощью vCenter Server.
  • vSphere API - Доступ к API хоста ESXi (REST API, PowerCLI, SOAP и т.д.) на чтение и на запись. В vSphere Hypervisor доступ к API предоставляется только на чтение.
  • Content Library - Централизованное хранилище образов и шаблонов ВМ на сервере управления vCenter Server.
  • Storage APIs - API для интеграции с Системами Резервного Копирования (VMware vStorage APIs for Data Protection). Позволяет выполнять резервное копирование и восстановление ВМ и данных в гостевых ОС. Доп. информация https://kb.vmware.com/s/article/1021175
  • vSphere vMotion - Живая миграция ВМ с одного хоста ESXi на другой без простоя ВМ. Сюда же относится Enhanced vMotion, который позволяет мигрировать ВМ между хостами ESXi даже в том случае, когда к ним не подключено общее хранилище.
  • X-Switch vMotion - Живая миграция ВМ с возможностью изменения группы портов и виртуальных коммутаторов для сетевых адаптеров ВМ.
  • Encrypted vMotion - Широфвание трафика vMotion при миграции ВМ между хостами.
  • Enhanced vMotion Compatibility - Выравнивание функциональных возможностей процессоров в пределах кластера ESXi для миграции ВМ с хостов ESXi с более новыми процессорами на хосты ESXi с более старыми процессорами. Сюда же относится Per VM EVC.
  • vSphere HA - Объединение хостов ESXi в высокодоступный кластер и автоматический перезапуск ВМ на доступных хостах ESXi в случае выхода из строя одного или нескольких хостов кластера.
  • vSphere Data Protection - Встроенная Система Резервного Копирования ВМ. EOA (End of Availability) https://kb.vmware.com/s/article/2149614
  • vShield Endpoint - Интеграция средств ИБ с vSphere для безагентской антивирусной защиты ВМ. Для старых версий vSphere интеграция выполнялась через управляющую ВМ vShield Manager, в новых версиях - через NSX Manager. При использовании только функции антивирусной защиты дополнительное лицензирование vShield/VCNS или NSX не требуется.
  • vSphere Replication - Встроенный механизм асинхронной репликации ВМ на другие хранилища (Datastores) и удаленные хосты ESXi с возможностью ручного восстановления ВМ из реплики при аварии.
  • vShield Zones - Встроенный межсетевой экран для фильтрации трафика ВМ. EOA https://kb.vmware.com/s/article/2042595
  • Hot-Pluggable virtual HW - Горячее добавление процессоров и оперативной памяти в ВМ без прерывания ее работы.
  • vSphere Storage vMotion - Живая миграция виртуальных дисков и файлов конфигурации ВМ с одного хранилища на другое.
  • Shared Smart Card Reader - Проброс считывателя смарт-карт с клиентского компьютера в ВМ.
  • vSphere FT - Создание копии и синхронизация в реальном данных и состояния ВМ с мгновенным переключением на копию в случае отказа хоста ESXi с основной ВМ. В редакциях vSphere Standard и vSphere Standard for ROBO функцию Fault Tolerance можно включить только для ВМ не более чем с 2 vCPU.
  • Virtual Volumes - Хранение данных ВМ в виде объектов на СХД.
  • APIs for Storage Awareness - API для получения информации о функциональных возможностях СХД.
  • Storage-Policy Based Management - Создание политик, описывающих требования к функциональным возможностям СХД, и проверка хранилищ ВМ на соответствие заданным политикам.
  • vSphere Storage APIs for Array Integration - API для ускорения типовых операций (блокировка тома, зануление виртуального диска, копирование виртуального диска) при работе с СХД.
  • vSphere DRS - Автоматическая балансировка нагрузки между хостами ESXi путем миграции ВМ с более загруженных хостов на менее загруженные. Сюда же относится DPM - автоматическое выключение неиспользуемых хостов ESXi для уменьшение энергопотребление ЦОД.
  • Remote virtual Serial Port Concentrator - Проброс в ВМ COM-порта по сети с устройства-концентратора (Virtual Serial Port Concentrator).
  • MPIO / Third-Party Multi-Pathing - Поддержка установки сторонних Multi-path плагинов (MPP) для работы с СХД.
  • Big Data Extensions - Автоматизированное развертывание ВМ для задач Big Data. EOA https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/support/product-lifecycle-matrix.pdf
  • Reliable Memory - Размещение ядра гипервизора и ВМ в надежных областях памяти. Доп. информация http://i.dell.com/sites/doccontent/shared-content/data-sheets/en/Documents/Dell-Precision-workstation-Reliable-memory-technology-whitepaper.pdf и https://kb.vmware.com/s/article/2146595
  • vSphere Distributed Switch - Распределенный виртуальный коммутатор, позволяющий централизованно настраивать группы портов и другие сетевые параметры для хостов ESXi. Вместе с VDS поддерживаются и останые функции, основанные на распределенном коммутаторе: Network I/O Control, LACP, NetFlow, Port Mirroring, Traffic filtering and marking.
  • vSphere Host Profiles - Шаблоны для автоматизированной настройки хостов ESXi и проверки текущих настроек хостов на соответствие заданным в шаблоне.
  • vSphere Auto Deploy - Централизованная загрузка и установка хостов ESXi по сети.
  • SR-IOV - Проброс SR-IOV совместимых устройств в ВМ.
  • vSphere Storage I/O Control - Управление вводом/выводом (лимиты, резервирование, долевое деление) для виртуальных дисков ВМ.
  • Direct Path vMotion - Поддержка живой миграции ВМ с сетевыми адаптерами VM-FEX для платформы Cisco UCS. Доп. информация https://docs.vmware.com/en/VMware-vSphere/6.0/com.vmware.vsphere.networking.doc/GUID-70045AED-8A58-487C-9FDB-A93EF03A0157.html
  • vSphere Storage DRS - Объединение хранилищ ВМ в кластер и автоматическая балансировка загрузки путем переноса ВМ с более загруженных хранилищ на менее загруженные.
  • vSphere vMotion Metro - Поддержка живой миграции ВМ при Round Trip Time до 150 мс. Обычный vMotion - до 5 мс. Доп. информация https://kb.vmware.com/s/article/59232
  • vSphere View Accelerator - Кэширование блоков виртуальных дисков ВМ в оперативной памяти хоста ESXi для ускорения операций чтения (VMware Content Based Read Cache), доп. информация https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/vmware-view-storage-accelerator-host-caching-content-based-read-cache-white-paper.pdf
  • vSphere App HA - Проверка доступности и автоматическое восстановление сервисов в гостевой ОС внутри ВМ. EOA https://kb.vmware.com/s/article/2108249
  • vSphere Flash Read Cache - Кэширование блоков данных виртуальных дисков ВМ на локальных Flash накопителях, установленных в хосты ESXi, для ускорения операций чтения. Deprecated https://blogs.vmware.com/vsphere/2019/04/vflash-read-cache-deprecation-announced.html
  • Cross Virtual Center vMotion - Поддержка живой миграции ВМ между хостами ESXi, подключенных к разным серверам управления vCenter Server.
  • vGPU - Поддержка проброса ускорителей NVIDIA Tesla в ВМ с использованием технологии vGPU.
  • vSphere Proactive HA - Мониторинг состояния хостов ESXi и проактивная миграция ВМ с проблемных хостов.
  • vSphere VM Encryption - Шифрование виртуальных дисков, файлов подкачки и файлов конфигурации ВМ.
  • Cross vCenter Encrypted vMotion - Шифрование трафика vMotion при миграции ВМ между хостами, подключенными к разным серверам vCenter Server (Cross Virtual Center vMotion). Требует, чтобы сами ВМ не были зашифрованы (отключено VM Encryption).
  • Virtual TPM - Добавление в ВМ виртуального TPM модуля для хранения ключей шифрования и проверки подлинности.
  • vSphere Predictive DRS - Проактивная балансировка нагрузки между хостами ESXi. Требует наличия vRealize Operations Manager.
  • vSphere Integrated Containers - Развертывание и запуск контейнеров Docker внутри ВМ. Доп. информация https://vmware.github.io/vic-product/assets/files/html/1.5/
  • Persistent Memory - Поддержка памяти Intel Optane DC Persistent Memory и проброс PMem устройств в ВМ. Доп. информация https://docs.vmware.com/en/VMware-vSphere/6.7/com.vmware.vsphere.resmgmt.doc/GUID-EB72D358-9C2C-4FBD-81A9-A145E155CE31.html
  • DRS in Maintenance Mode - Автоматическая эвакуация ВМ с хоста при помещении его в режим обслуживания (Maintenance Mode) с последующим возвращением ВМ после завершения обслуживания.
  • VMware AppDefense vCenter Server Plugin - Плагин для консоли vSphere Client для получения общей информации о работе App Defense.
Функции, доступные во всех редакциях vSphere (включая VMware vSphere Hypervisor):
  • Создание, запуск, выключение, приостановка работы (Suspend), удаление ВМ.
  • Автоматический запуск/остановка ВМ в указанном порядке при включении/выключении хоста ESXi.
  • Безопасная загрузка гостевой ОС в ВМ (Secure Boot).
  • Импорт и экспорт виртуальных машин в формате .OVF.
  • Создание, откат, удаление мгновенных снимков (Snapshot) ВМ.
  • Горячее добавление виртуальных SCSI контроллеров, сетевых адаптеров, USB концентраторов, виртуальных дисков для ВМ.
  • Проброс PCI-E устройств внутрь ВМ (VMDirect Path I/O).
  • Настройка резервирования, лимитов и долевого использования процессорных ресурсов и оперативной памяти для ВМ.
  • Управление хостом через веб-клиент ESXi Host Client.
  • Подключение к хосту ESXi через SSH.
  • Отправка логов с хоста ESXi на удаленный Syslog сервер.
  • Добавление хоста ESXi в домен Active Directory. Аутентификация к веб-клиенте с использованием доменных учетных записей.
  • Ввод/вывод хоста ESXi в режим обслуживания (Maintenance Mode).
Дополнительные материалы:

понедельник, 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 всем, кто любит необычные, развивающие и обучающие игры, кому нравится часами что-то строить и создавать, короче - инженерам.

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

Проблема с совместимостью Persona Management и Windows 10 1809

После настройки и включения Persona Management, входящего в состав Horizon Agent 7.7, на ВМ с Windows 10 1809, гостевая ОС перестает загружаться и попадает в Recovery Mode.

До выхода обновления обновления исправляющего ошибку, в качестве обходного варианта для решения проблемы требуется отклучить Secure Boot в настройках ВМ (VM -> Edit Settings -> VM Options -> Boot Options -> Enable UEFI secure boot: Disable).

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

Видео: Демонстрация работы Horizon Blast с кодеком h.265

Одним из нововведений VMware Horizon 7.7 стала поддержка нового кодека H.265, используемого для сжатия изображения в протоколе Horizon Blast.

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

По сравнению со старым H.264 кодеком H.265 (он же HEVC - High Efficiency Video Coding) обеспечивает до 50% лучшую компрессию при сохранении того же уровня качества изображения, что в свою очередь, позволяет снизить требования к каналам передачи данных.

В одной из своих старых статей я уже рассказывал об особенностях работы H.264 с BLAST и графическими адаптерами NVIDIA. Использование H.265 тоже имеет ряд особенностей.

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

Кроме того, в отличие от более старого и более распространенного H.264, новый кодек поддерживают далеко не все графические адаптеры. Например, среди ускорителей NVIDIA функция аппаратного кодирования H.265 поддерживается только для последних актуальных поколений графический процессоров Maxwell, Pascal, Volta и Turing, а декодирование - для Pascal, Volta и Turing: https://developer.nvidia.com/video-encode-decode-gpu-support-matrix Для встроенных графических адаптеров Intel поддержка аппаратного декодирования H.265 реализована в процессорах поколения Haswell и более новых.

Наконец, использовать кодек пока что можно только на клиентах Horizon Client for Windows версии 4.10 (https://docs.vmware.com/en/VMware-Horizon-Client-for-Windows/4.10/rn/horizon-client-windows-410-release-notes.html). На других платформах (включая тонкие клиенты) придется довольствоваться старым H.264 кодеком.