Как пробросить видеокарту NVIDIA в VMware ESXi 6.7?

Доброго времени суток!

Предисловие

Раньше никогда не сталкивался с гипервизорами так близко, максимум до чего доходили руки - RDP и VirtualBOX; однако желание сварганить свой сервер с /блекджеком и шлюзами/ возможностями iSCSI и PCI-passthrough(конечно ради игр и NAS на тонком клиенте, хотя 1C сервер мне тоже необходим), взяло верх над разумом, и я начал копать в эту сторону.
Первая мысль, которая пришла мне в голову - Windows Server. Развернуть пару Hyper-V машин, или воспользоваться RemoteFX, казалось мне хорошей идеей. Сервер был развёрнут, машины запущены, и, внезапно, я упёрся в ограничение в 1Гб выделяемой клиенту видеопамяти, чего явно недостаточно для игрух.
Второй мыслью был XenServer, о котором я услышал на предыдущем месте работы. Прогуглив на эту тему, я понял что интерфейс там не самый интуитивный, а по функционалу он уступает некоему ESXi. Вот его я и решил развернуть на своём Windows Server 2016. Вот только оказалось что это ни разу не "приложение для виртуалок", как Hyper-V, а вполне себе самостоятельная ось, и виндовый сервачок как раз нужно ставить как виртуальную машину на базе этого самого ESXi(о том, что существует VMware Workstation я узнал только сегодня). Должно быть, VMware Workstation, мне подходит больше - потому как оставляет возможность использовать сервер локально - но ни времени, ни желания на переустановку всей системы у меня нет. А теперь к вопросу.

Пытаюсь пробросить видеокарту 1050ti в виртуальную машину Windows 10 Enterprise, развёрнутую на гипервизоре VMware ESXi.

Конфигурация системы:

Материнская плата MSI z370 Gaming Plus;
Процессор Intel core i5 8600K;
Оперативная память G.Skill Ripjaws F4-3200C16Q-16GVKB;
Видеокарта ASUS GeForce GTX 1050ti STRIX OC;
SSD Samsung 970 Pro m.2.

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

Были проведены следующие действия:

1) В UEFI, само собой, включена виртуализация, и видеокарта выставлена в качестве первого загружаемого графического устройства(PEG);
2) Сервер установлен локально, с DVD диска, настроен в сети;
3) Включен SSH;
4) Видеокарта определяется в web-интерфейсе и проброшена(passthrough активен);
5) Создана виртуальная машина с Windows 10 Enterprise на борту;
6) Оперативная память задана статически(зарезирвирована);
7) Параметр конфигурации виртуальной машины hypervisor.cpuid.v0 установлен со значением FALSE;
8) Параметр pciPassthru0.msiEnabled установлен со значением FALSE;
9) Параметр pciPassthru.use64bitMMIO установлен со значением TRUE;
10) Параметр vhv.addPassthru установлен со значением TRUE;
11) BIOS в виртуальной машине - EFI;
12) В файле passthru.map, под строкой NVIDIA, установлены значения ID видеочипа и аудиочипа, метод сброса d3d0 для соответствующих устройств;
13) Видеокарта определяется в гостевой системе;
14) В качестве клиента выступает VMware remote console.

Найти подходящий клиент было нелегко, может, есть где-то статья о продуктах виртуализации не на уровне "Я сделал, смотрите какие скриншоты с разных систем в окошке RDP", или хвалящих определённый продукт без подробного описания его, и конкурентов, преимуществ? Надо помочь начинающим админам разобраться как выбрать подходящий им гипервизор, и его компоненты, какие они бывают в целом; коротко, по сути, и о подводных камнях! :)

Проблемы:

1) Ошибка при одновременном включении вложенной виртуализации(Expose hardware assisted virtualization to the guest ОS) и установке видеокарты(у кого-то так работает, у кого-то нет);
2) Ошибка при установке драйвера видеокарты. Самая главная. Исталлятор говорит что установка на эту систему невозможна.
3) Ошибки при попытке пропатчить инсталлятор NVIDIA, скрипт исполняется, выдаёт ошибки, но не создаёт пропатченный exe'шник в папке назначения.

В процессе настройки наткнулся на несколько полезных статей, в основном, англоязычных.

Использованные статьи:

Гостевая машина устанавливалась на версии ESXi 6.5, версия виртуальной машины - 13. Потом было выполнено обновление до 6.7, но ошибки были и в версии 6.5.

Скриншоты:

ID видео- и аудио- чипов
5bb695dcaf60f036678939.jpeg
passthru.map
5bb69660ad41a744580556.jpeg
видеокарта определена и включена возможность проброса
5bb6969438bdd127928126.jpeg
видеокарта определена в диспетчере устройств
5bb6971047dc8376426920.jpeg
явных ошибок не указано
5bb6974c122bd363275666.jpeg
но стандартный драйвер не устанавливается
5bb69760bc533927787859.jpeg
аналогичная ситуация с драйвером с сайта NVIDIA
5bb6979a7ac8f493889691.jpeg
патч драйвера исполняется с ошибками
5bb697bed7c20364450483.jpeg
конфигурационный файл
5bb69815a0b24103293465.jpeg
5bb6981c0b84c691880183.jpeg
5bb69821cd1ce902069636.jpeg
включен EFI
5bb6982784d7c613350597.jpeg
настройки виртуальной машины
5bb698636abf6269726404.jpeg
5bb6986907941852487365.jpeg
5bb69875c1fab920177343.jpeg
добавление видеокарты при включенной вложенной виртуализации
5bb69899aed3e429103236.jpeg
и ошибка, возникающая при этом
5bb698b13b8b2019438403.jpeg

Буду благодарен любым советам!
  • Вопрос задан
  • 16882 просмотра
Пригласить эксперта
Ответы на вопрос 4
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Никак.

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

Почему?

NVidia продвигает свои дорогущие K1/K2 как решения для виртуализации графических вычислений и не без оснований предполагает, что если такое разрешить - то все будут пробрасывать обычные геймерские видюхи, а на K1 положат :)
VmWare хочет продавать свои решения по клиентской виртуализации - а если у юзера будет возможность просто пробросить в виртуалку топовую видюху - кто их будет покупать?

Поэтому, если у Вас нет бабла на NVidia GRID K1 - забейте. Такое не канает. У некоторых говорят получалось такое с KVM, но у меня повторить не получилось, хотя опять же по слухам AMD/ATi можно таким образом пробросить.
Ответ написан
fcdm
@fcdm
Software and Infrastructure Consultant
Попробуйте в ESXi webclient, нажать правой кнопкой на VM > Edit Settings > VM Options > Advanced > Edit Configuration > Add Parameter:
hypervisor.cpuid.v0 = "FALSE"

И пробросить PCI адптер в режиме Passthrough, но производительность будет все же не такая как если бы не было виртуализации
Ответ написан
Комментировать
@Sergey_Taskin Автор вопроса
Вы невнимательно прочли вопрос, там есть эта строка, кроме того, одной её недостаточно чтобы проброс в винду вообще прошёл.
7) Параметр конфигурации виртуальной машины hypervisor.cpuid.v0 установлен со значением FALSE;
Ответ написан
Комментировать
@NathanBiel
В первом пункте видится ошибочка...
Чтобы вся эта карусель работала, на материнской плате должна быть набортная(интегрированная) видюха.
В биосе ставите использовать только её. Именно с неё Вы должны видеть весь вывод загрузки и т.д.
Вторая карта, игровая, не должна ничего выводить или инициализироваться где-либо еще, кроме виртуальной машины.
Кроме того, к ировой карте должен быть подключен монитор или обманка, иначе винда её не будет использовать.
Операционка только Windows 10. На 7 ничего не вышло. Видеокарта видится, драйвера ставяться, но она не работает и не появляется второй монитор в настройках системы.
У меня удалось заставить это всё работать с GT 740, потратил неделю, и уже задумываюсь, а стоит-ли оно того?
Игры стримятся через стим. Можно даже сторонние установки туда подсоввывать.
Через локальную сеть в принципе нормальный отклик.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы