S
S
Sergey Taskin2018-10-05 01:50:26
VMware
Sergey Taskin, 2018-10-05 01:50:26

How to forward NVIDIA graphics card in VMware ESXi 6.7?

Good day!

Foreword

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

I'm trying to forward a 1050ti graphics card to a Windows 10 Enterprise virtual machine deployed on a VMware ESXi hypervisor.

System configuration:

Материнская плата 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.

Having smoked manuals and googling the last couple of days, I found several instructions on how to carry out this tempting operation with consumer-class video cards.

The following actions were taken:

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.

It was not easy to find a suitable client, maybe there is somewhere an article about virtualization products that is not at the level of "I did, see what screenshots from different systems in the RDP window", or praising a certain product without a detailed description of it, and competitors, advantages? It is necessary to help novice administrators figure out how to choose the hypervisor that suits them, and its components, what they are in general; briefly, in fact, and about the pitfalls! :)

Problems:

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

In the process of setting up, I came across several useful articles, mostly in English.

Used articles:

1) servethehome.com;
2) vmind.ru;
3) b14esh.com;
4) Патч драйвера NVIDIA.

The guest machine was installed on ESXi version 6.5, the virtual machine version was 13. Then I upgraded to 6.7, but there were errors in version 6.5 as well.

Screenshots:

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

I would be grateful for any advice!

Answer the question

In order to leave comments, you need to log in

4 answer(s)
C
CityCat4, 2018-10-05
@CityCat4

No way.
Both vmware and NVidia, each individually and together, counteract the possibility of forwarding consumer-class video cards to a virtual machine, even top-end ones.
Why?
NVidia promotes its expensive K1/K2 as solutions for virtualization of graphics computing and not without reason assumes that if this is allowed, then everyone will forward ordinary gaming video cards, but they will put K1 on :)
VmWare wants to sell its solutions for client virtualization - and if the user will be able to simply throw a top-end video into the virtual machine - who will buy them?
Therefore, if you do not have a bubble on NVidia GRID K1 - hammer it. This doesn't work. Some say it worked with KVM, but I couldn’t repeat it, although again, according to rumors, AMD / ATi can be forwarded this way.

A
Alexander, 2018-10-16
@fcdm

Try in ESXi webclient, right click on VM > Edit Settings > VM Options > Advanced > Edit Configuration > Add Parameter:
hypervisor.cpuid.v0 = "FALSE"
And forward PCI adapter in Passthrough mode, but the performance will still not be the same as if there was no virtualization

S
Sergey Taskin, 2018-10-17
@Sergey_Taskin

You inattentively read the question, there is this line, in addition, it alone is not enough for the forwarding to Windows to pass at all.

7) VM configuration parameter hypervisor.cpuid.v0 is set to FALSE;

N
NathanBiel, 2019-11-11
@NathanBiel

There is a mistake in the first paragraph...
For this whole carousel to work, there must be an on-board (integrated) vidyukha on the motherboard.
In the bios, set to use only it. This is where you should be able to see all the download output, etc.
The second card, the game card, should not output anything or be initialized anywhere other than the virtual machine.
In addition, a monitor or snag must be connected to the world map, otherwise Windows will not use it.
The operating system is only Windows 10. Nothing happened on 7. The video card is seen, the drivers are installed, but it does not work and the second monitor does not appear in the system settings.
I managed to get it all to work with the GT 740, spent a week, and I'm already wondering if it's worth it?
Games are streamed through steam. You can even put third-party installations there.
Through the local network, in principle, a normal response.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question