ESXi GPU passthrough med nVidia konsumentkort

Permalänk
Medlem

ESXi GPU passthrough med nVidia konsumentkort

Hej,

Ursäkta om jag i min entusiasm lägger detta i fel forum eller inte borda skapat tråd alls, men jag måste få skriva av mig. Jag har just startat en virtuell maskin som fått tillgång till mitt GeForce GTX 1080, och fått ut bilden på extern skärm kopplad till grafikkortet!

För de som inte förstår varför det gör mig så glad så är det så att nVidia låser ned sina konsumentkort så att de inte ska gå att använda i virtuella miljöer. Fråga mig inte varför. En lösning som kunnat användas i andra hypervisors är att "gömma" virtualiseringen för den virtuella maskinen, vilket gör att kortet fungerar. Men det gör också att maskinen inte kan köras optimalt i en virtuell miljö, eftersom den inte vet om att den är virtualiserad. I ESXi finns dock inte möjligheten att "gömma" virtualiseringen, så det är en icke-fråga om det är den hypervisor du tänkt köra. Vilket jag alltså tänkt.

Nu har något snille listat ut att man kan slå av den här kontrollen i drivrutinen genom att patcha den med Windows Driver Kit. Det tillhandahålls ett powershell-skript här: https://github.com/sk1080/nvidia-kvm-patcher

Detta kräver alltså att du signerar din egen drivrutin, så därför måste man köra Windows i "TESTSIGNING mode"

Jag gjorde dessa steg, men det kanske går på andra vis också:
1. Installera en virtuell maskin, den MÅSTE köra 64-bitars Windows 10 för tillfället
2. Installera VMware Tools
3. Tilldela maskinen ditt grafikkort
4. Ladda ned nVidias drivrutiner, version 368.39 (har testat med 372.90, det fungerade inte för mig)
5. Kör installationsprogrammet så långt att den packar upp filerna till C:\NVIDIA, avbryt sedan direkt.
6. Installera Windows 10 WDK (https://msdn.microsoft.com/en-us/library/windows/hardware/ff5...).aspx). Jag installerade Visual Studio också, men det tror jag inte behövs.
7. Starta en kommandoprompt i administratörsläge
8. Skriv "Bcdedit.exe -set TESTSIGNING ON" och starta om datorn
9. Ladda ned patch-skriptet från länken ovan
9. Starta Powershell i administratörsläge med ByPass-flaggan satt: "PowerShell.exe -ExecutionPolicy Bypass -File .patcher.ps1" där patcher.ps1 är sökvägen till det nedladdade skriptet
10. Kör .\patcher.ps1 C:/NVIDIA/DisplayDriver/368.39/Win10_64/International/Display.Driver
11. Gå till Device Manager och uppdatera drivrutinen för kortet. Välj "Have Disk" och peka ut nv_desktop_ref4i.inf under Display.Driver
12. Starta om. Ta daaa!

Nu har jag som sagt precis startat den, så jag vet inte hur bra allt fungerar, men jag har iallafall bild!

Permalänk

Du får testa att köra igång lite 3d stuff, streama netflix och spela lite spel och dylikt, rapportera sedan vidare.

Jag använde ett Radeon 6450 förut när jag använde min vmware-server som HTPC också, men det fungerade lite halvkasst så jag skaffade mig en chromecast istället.

Kör nu plex istället.

Att Nvidias grafikkort fungerar i vmware's passthrough är helt klart en nyhet!

Visa signatur

..:: Workstation ::.. ..:: Asus P8Z77-v LX ::.. ..:: MSI GTX1060 6GB ::.. ..:: i5 3450 Ivy Bridge /w Antec KÜHLER H2O 620 Sluten Vattenkylning ::.. ..:: Corsair 16GB DDR3 600MHz/CL9/VENG ::.. ..:: NoName 650W ::.. ..:: Dell 24" 2408WFP ::.. ..:: Server ::.. ..:: AMD ..:: FX-8320 ::.. ..:: 16GB ::.. ..:: XFX HD6450 ::.. ..::250GB SSD Samsung 840 EVO::.. ..:: 3x 2TB wd black ::.. ..:: VCP6-DCV ::.. ..:: vmware esxi 6.7 ::..

Permalänk
Medlem

Hmm, efter inledande eufori har jag fått tagga ned lite. Det är väldigt instabilt med många oplanerade omstarter. Den tycker att den har två skärmar, den ena är VMwares virtuella konsol kopplad till det virtuella grafikkortet och den andra är min fysiska skärm kopplad till det fysiska grafikkortet. Den kör utökat skrivbord mellan dessa. Jag styr mus och tangentbord genom att gå in i virtuella konsolen på min laptop, jag har inte lyckats skicka in fysisk mus och tangentbord till virtuella maskinen. Förstår inte riktigt varför. När jag försöker säga till den att bara visa bild på fysiska skärmen börjar musen hacka så mycket att jag inte hinner klicka på spara ändringar innan den återgår till föregående inställningar. Gissningsvis eftersom jag styr mus och tangentbord genom konsollen. Jag undrar om omstarterna kommer när musen går över gränsen på konsollfönstret, och det blir något knas där. Ska försöka igen ikväll med att få igång fysisk mus och se om det gör skillnad.

Permalänk
Inaktiv

Tänkte precis skriva att du nog inte ska ropa hej ännu.

Att köra passtrough fungerar i de flesta fall inte i överhuvudtaget, om det fungerar så fungerar det dåligt. Det kan tom. vara så att ena gången du botar din VM så fungerar det, du bootar om den och det slutar fungera. Det är dessutom stor skillnad på kort, tom. vilka som tillverkar korten (även om det är Nvidia GPU)

Det sättet du kör det på är dessutom inte supportat av VMWare utan GPU är mest tänkt att köras för VDI och då behöver du inte en fysisk utgång.

Det enda sättet att lösa detta stabilt är att köra Nvidias eller AMDs "VDI" kort - som kan kosta 40.000 + moms lätt. Funderar på att köra ett GRID på ebay men även där får jag lägga ut kanske 7000 för ett beg kort och vet inte ens om det kommer fungera bra....Då enbart för VDI.

Om du kan tänka dig att släppa VMWare finns det alternativ som faktiskt fungerar stabilt.

Permalänk
Medlem

Nu har jag svettats med detta ganska länge, och det ser verkligen inte lovande ut. Från en omstart till en annan slutade det fungera, och jag är ganska säker på att det var p.g.a. att Windows gick ut och hämtade ny drivrutin. Det konstiga är att jag inte lyckats komma tillbaka till läget där det fungerade, trots att jag avinstallerat alla drivrutiner och lagt på de patchade igen. Snart, snart ger jag upp, men jag har svårt att släppa det helt. Det gick ju en gång, varför skulle det inte fungera igen?

Fick för övrigt igång fysisk mus och tangentbord i virtuella maskinen genom att göra PCI passthrough på hela USB-kontrollern. Kan vara värt att tänka efter några extra gånger innan man gör detta. Dels för att man kan hamna i en situation där du inte har någon möjlighet att använda tangentbordet i ESXi för att det är tilldelat en virtuell maskin, dels för att man kan råka koppla bort den USB-kontroller som har hand om det USB-minne som du kör hela din ESXi-installation från. Fråga mig gärna inte om jag gjorde det senare.

Permalänk
Medlem

Jag fick ett GTX 980 i passthrough att funka fint i Fedora med KVM, detta efter cirka två veckors trial-and-error varje kväll. Dock har jag aldrig förut hört att man lyckats med det i ESXi, dock spännande läsning och jag ska själv börja grotta lite i det.

Visa signatur

Intel i9-12900K | Asus STRIX Z690-I | 32 GB DDR5-6400 CL30 | AMD Radeon RX 7900 XTX | WD Black SN850 1 TB
Asus ROG Loki SFX-L 750W | SSUPD Meshlicious | Arctic Cooling Freezer II 280 | Alienware AW3423DWF

Permalänk
Medlem

Nvidia blockerar VMs i sina drivrutiner (då det är en premium funktion för deras Tesla och dylikt), du måste gömma för drivrutinen att den körs i en VM.

Vet inte om ESXI har den funktionen dock, annars är det bara att köra AMD då de inte gör dessa idiotiska låsningar på sina kort. Eller Nvidias tesla/workstation kort.

Visa signatur

Arch - Makepkg, not war -||- Gigabyte X570 Aorus Master -||- GSkill 64GiB DDR4 14-14-15-35-1T 3600Mhz -||- AMD 5900x-||- Gigabyte RX6900XT -||- 2x Adata XPG sx8200 Pro 1TB -||- EVGA G2 750W -||- Corsair 570x -||- O2+ODAC-||- Sennheiser HD-650 -|| Boycott EA,2K,Activision,Ubisoft,WB,EGS
Arch Linux, one hell of a distribution.

Permalänk
Medlem
Skrivet av Commander:

Nvidia blockerar VMs i sina drivrutiner (då det är en premium funktion för deras Tesla och dylikt), du måste gömma för drivrutinen att den körs i en VM.

Vet inte om ESXI har den funktionen dock, annars är det bara att köra AMD då de inte gör dessa idiotiska låsningar på sina kort. Eller Nvidias tesla/workstation kort.

Ja, alltså jag skrev om det här i första posten, det är lite det hela tråden handlar om:

Skrivet av richen:

För de som inte förstår varför det gör mig så glad så är det så att nVidia låser ned sina konsumentkort så att de inte ska gå att använda i virtuella miljöer. Fråga mig inte varför. En lösning som kunnat användas i andra hypervisors är att "gömma" virtualiseringen för den virtuella maskinen, vilket gör att kortet fungerar. Men det gör också att maskinen inte kan köras optimalt i en virtuell miljö, eftersom den inte vet om att den är virtualiserad. I ESXi finns dock inte möjligheten att "gömma" virtualiseringen, så det är en icke-fråga om det är den hypervisor du tänkt köra. Vilket jag alltså tänkt.

Nu har något snille listat ut att man kan slå av den här kontrollen i drivrutinen genom att patcha den med Windows Driver Kit. Det tillhandahålls ett powershell-skript här: https://github.com/sk1080/nvidia-kvm-patcher

Detta kräver alltså att du signerar din egen drivrutin, så därför måste man köra Windows i "TESTSIGNING mode"

Jag börjar misstänka att min patchade drivrutin har blivit "smittad" på något sätt, ska testa att patcha en gång till. Har också insett att det är bäst att låta maskinen vara bortkopplad från nätverket så länge man pysslar med drivrutinerna, just för att Windows inte ska gå ut och hämta nya versioner.

Permalänk
Medlem
Skrivet av richen:

Ja, alltså jag skrev om det här i första posten, det är lite det hela tråden handlar om:

Jag börjar misstänka att min patchade drivrutin har blivit "smittad" på något sätt, ska testa att patcha en gång till. Har också insett att det är bäst att låta maskinen vara bortkopplad från nätverket så länge man pysslar med drivrutinerna, just för att Windows inte ska gå ut och hämta nya versioner.

Precis, det jag försökte kanske inte allt för tydligt om det går för ESXi att spoofa/gömma sig från Nvidia drivrutin likt man gör på andra VM's för att få det att fungera. Då patcha Nvidia's drivrutin känns lite sådär då det räcker att de ändrat något i drivrutinen som sedan får patchen bli verkningslös.

Visa signatur

Arch - Makepkg, not war -||- Gigabyte X570 Aorus Master -||- GSkill 64GiB DDR4 14-14-15-35-1T 3600Mhz -||- AMD 5900x-||- Gigabyte RX6900XT -||- 2x Adata XPG sx8200 Pro 1TB -||- EVGA G2 750W -||- Corsair 570x -||- O2+ODAC-||- Sennheiser HD-650 -|| Boycott EA,2K,Activision,Ubisoft,WB,EGS
Arch Linux, one hell of a distribution.

Permalänk
Medlem
Skrivet av Commander:

Precis, det jag försökte kanske inte allt för tydligt om det går för ESXi att spoofa/gömma sig från Nvidia drivrutin likt man gör på andra VM's för att få det att fungera. Då patcha Nvidia's drivrutin känns lite sådär då det räcker att de ändrat något i drivrutinen som sedan får patchen bli verkningslös.

Aha, ok, nej, det går inte.

Skrivet av richen:

I ESXi finns dock inte möjligheten att "gömma" virtualiseringen, så det är en icke-fråga om det är den hypervisor du tänkt köra. Vilket jag alltså tänkt.

Däremot håller jag inte med dig om att det känns sämre att patcha drivrutinen istället för att gömma virtualiseringen. Jag tycker att det är helt rätt väg att gå, då man kan dra nytta av processorvirtualiseringen. Men det förutsätter förstås att det inte bara fungerar, utan att det fungerar stabilt. Jag ska fortsätta kämpa med detta lite till, inte redo att ge upp ännu.

Permalänk
Inaktiv
Skrivet av richen:

Det gick ju en gång, varför skulle det inte fungera igen?

Jag har arbetat med Servrar i lite över 20 år och har svart bälte i det mesta, men att få detta att fungera, precis som jag skrev tidigare är bara waste of time, men lycka till

Permalänk
Medlem

@studiox_swe: Haha, challange accepted! Nu vill jag ännu mer få det här att funka

Permalänk
Inaktiv
Skrivet av richen:

@studiox_swe: Haha, challange accepted! Nu vill jag ännu mer få det här att funka

Jag lutar åt att köpa ett Grid K2, otroligt dyrt även beg. men jag skulle inte ha något emot att kunna spela BF 1 på min MacBook.

Permalänk
Medlem
Skrivet av studiox_swe:

Jag lutar åt att köpa ett Grid K2, otroligt dyrt även beg. men jag skulle inte ha något emot att kunna spela BF 1 på min MacBook.

Det tråkiga är att det inte är någon superprestanda vid spel på dessa kort :/
Testkört lite spel på ett Grid K2 på jobbet och det fungerar jo visst, men ett 970/980 är ju mycket bättre rent FPSmässigt.

Visa signatur

i7-6700K | MSI Z170A | MSI 1080 8GB | 16GB Kingston HyperX | Intel 600P 256GB | Samsung EVO Basic 840 250GB x2 raid 0 | Corsair RM 750W | 3 x Dell U2414H

Permalänk
Inaktiv
Skrivet av gn1p:

Det tråkiga är att det inte är någon superprestanda vid spel på dessa kort :/
Testkört lite spel på ett Grid K2 på jobbet och det fungerar jo visst, men ett 970/980 är ju mycket bättre rent FPSmässigt.

Jag misstänkte det, har sett lite videos på Youtube men ingen som haft FPS räknare på. Det är nog att förvänta då kortets GPUer är uppdelade.

men som jag förstod det kan man välja hur många GPUer man vill ha? Så om jag vill "partitionera" mitt K2 till en GPU kan jag göra det? Kanske blandar ihop det med AMDs FirePro S1750.

Att köpa en GRID GPU som matchar mitt 980 verkar inte rimligt, tyvärr. då är alternativet att bygga en så liten PC som möjligt och slänga in den i garderoben och behålla mitt 980 och bara köra Citrix Agenten på datorn, har gjort det idag med min gamingpc och det fungerade riktigt sweet.

Permalänk
Medlem

Jag som bara "lekt" lite lätt med detta ämne måste ju fråga om det inte vore lättare att kanske välja annan mjukvara än just ESXi om det är såna problem, eller?

Visa signatur

Marantz NR1605, Rotel RB1090, Ino Audio piPs
SMSL SP200 THX Achromatic Audio Amplifier 888, SMSL M400, Audio-Gd NFB-11 (2015), Objective2+ODAC RevB, Audeze LCD-2 Rosewood, Monoprice M1060, ATH-M40x, Sennheiser HD660S, DROP X KOSS ESP/95X, Koss KPH30i, DROP X HiFiMan HE4XX

Permalänk
Inaktiv
Skrivet av backspace:

Jag som bara "lekt" lite lätt med detta ämne måste ju fråga om det inte vore lättare att kanske välja annan mjukvara än just ESXi om det är såna problem, eller?

Det beror lite på vad man vill, jag vill inte ha en egen pc som jag kör GPU på, då kan jag lika väl köra windows direkt på den. Jag är heller inte ute efter att ansluta en monitor till min ESX, som många andra vill göra. Har rätt många virtuella servrar som jag kör i VMWare idag (40 tal) fördelade på ett kluster, inget som man helt lätt byter ut till annat

Permalänk
Medlem

@studiox_swe: Förståeligt.
Men då undrar ju jag som en vanlig hemmapulare (norskar fnissar säkert här) om det är vanligt med sådant här i en "riktig" produktionsmiljö?

Visa signatur

Marantz NR1605, Rotel RB1090, Ino Audio piPs
SMSL SP200 THX Achromatic Audio Amplifier 888, SMSL M400, Audio-Gd NFB-11 (2015), Objective2+ODAC RevB, Audeze LCD-2 Rosewood, Monoprice M1060, ATH-M40x, Sennheiser HD660S, DROP X KOSS ESP/95X, Koss KPH30i, DROP X HiFiMan HE4XX

Permalänk
Medlem

Jag hittade lite info som kanske kan hjälpa.
Man behöver tydligen lägga till ett par saker i config filen för VMen

hypervisior.cpuid.v0 = false
pciHole.start = 2048

Visa signatur

Jag äger minst en databehandlingsmaskin.

Permalänk
Medlem
Skrivet av studiox_swe:

Det beror lite på vad man vill, jag vill inte ha en egen pc som jag kör GPU på, då kan jag lika väl köra windows direkt på den. Jag är heller inte ute efter att ansluta en monitor till min ESX, som många andra vill göra. Har rätt många virtuella servrar som jag kör i VMWare idag (40 tal) fördelade på ett kluster, inget som man helt lätt byter ut till annat

Då exempelvis Proxmox/KVM stödjer VMDK så är det visst enkelt (om man nu ska vara sån...)

Visa signatur

En server här, några servrar där.

Permalänk
Inaktiv
Skrivet av Perkka:

Jag hittade lite info som kanske kan hjälpa.
Man behöver tydligen lägga till ett par saker i config filen för VMen

hypervisior.cpuid.v0 = false
pciHole.start = 2048

Det där beror tydligen på vilken GPU man har.

Permalänk
Inaktiv
Skrivet av moron:

Då exempelvis Proxmox/KVM stödjer VMDK så är det visst enkelt (om man nu ska vara sån...)

Hur migrerar jag utan avbrott...

- VMFS-5? Hur ska jag annars flytta snabbt med lite downtime? Många kritiska tjänster ligger i vmware
- Stöder Proxmox/KVM kluster? Hur gör jag med min klustrade Juniper firewall med två noder (en på varje ESX host)
- Jag har en distribuerad switch, har Proxmox/KVM stöd för detta? Har bara 16 VLAN men måste skapa 2x16 VLAN manuellt?
- Vad har Proxmox/KVM för GUI? Kan jag köra det på OSX?
- Kan jag köra min Fiber Channel storage?
- Jag kör Veeam för backup, har Proxmox/KVM stöd för det?

(om man nu ska vara sån...)

Permalänk
Medlem
Skrivet av studiox_swe:

Hur migrerar jag utan avbrott...

- VMFS-5? Hur ska jag annars flytta snabbt med lite downtime? Många kritiska tjänster ligger i vmware
- Stöder Proxmox/KVM kluster? Hur gör jag med min klustrade Juniper firewall med två noder (en på varje ESX host)
- Jag har en distribuerad switch, har Proxmox/KVM stöd för detta? Har bara 16 VLAN men måste skapa 2x16 VLAN manuellt?
- Vad har Proxmox/KVM för GUI? Kan jag köra det på OSX?
- Kan jag köra min Fiber Channel storage?
- Jag kör Veeam för backup, har Proxmox/KVM stöd för det?

(om man nu ska vara sån...)

- Absolut, jag gick från 5.5u2 till Proxmox.
- Självklart. Men inget kluster kan någonsin rekommenderas att köras på bara två noder pga split brain och annat. Hur hanterar din vSRX detta? HSRP? Om du tar ner backupen på ena hosten, byter den hosten till Proxmox och startar upp vSRX på den, tar över mastership så har du noll nertid.
- DET kan nog inte finnas i samma bemärkelse - Proxmox använder Open Vswitch som du konfar på båda hostarna. Nätverkskonfig är nog en av dom saker som är absolut sämre på Proxmox.
- Proxmox-management är vid WebGUI
- iSCSI? NFS? Inga problem med det iaf.
- Inget Veeam! För Proxmox finns backup inbyggt i management GUI...

Allt detta stödjs i gratislicens, och du behöver inte spendera massa pengar på ESXi-licenser (som jag absolut också köpte... )

Visa signatur

En server här, några servrar där.

Permalänk
Inaktiv
Skrivet av moron:

- Absolut, jag gick från 5.5u2 till Proxmox.

Hittar inget om stöd för VMFS, det borde vara vmware propitärt?

Skrivet av moron:

- Självklart. Men inget kluster kan någonsin rekommenderas att köras på bara två noder pga split brain och annat. Hur hanterar din vSRX detta? HSRP? Om du tar ner backupen på ena hosten, byter den hosten till Proxmox och startar upp vSRX på den, tar över mastership så har du noll nertid.

Vore lite anmärkningsvärt om Juniper körde ett Cisco protokoll för HA SRX kör man inte active/active som standard och får inga problem med att förhandla fram master. På Interfacesidan kör man Reth interface (Redundant Ethernet) som alltså är L2 och inte L3.

Skrivet av moron:

- Proxmox-management är vid WebGUI

Trevligt, jag har inte sett det faktiskt, är det bra?

Skrivet av moron:

- iSCSI? NFS? Inga problem med det iaf.

Nej, Fiber Channel, precis som jag skrev.

Skrivet av moron:

- Inget Veeam! För Proxmox finns backup inbyggt i management GUI...

Vmware har också backupstöd, men det suger. Måste ha application aware backup.

Skrivet av moron:

Allt detta stödjs i gratislicens, och du behöver inte spendera massa pengar på ESXi-licenser (som jag absolut också köpte... )

Är partner till VMWare så jag har Enterprise NFR licenser för 3 hostar + vcenter + vsan, räcker gott och väl för min garderob