Virtualiseringsvärd med Intel VT-d stöd?

Permalänk

Virtualiseringsvärd med Intel VT-d stöd?

Jag kör för tiden Hyper-V (under Windows Server 2008 Core) som värdmaskin, men eftersom det inte finns stöd för Intel VT-d kan jag inte använda mig av PCI Passthrough (altså dela ut ett PCI[e|x] kort till en gäst som ren hårdvara).

Har googlat ögonen röda och efter vad jag kan se är det endast KVM och Xen som stödjer detta [någonlunda] fullt ut, så min fråga är; Någon av er som använder KVM eller Xen (eller för den delen annan VM software som stödjer PCI passthru) och kan dela med er av lite erfarenhet? Behöver jag tänka på något speciellt när det gäller VT-d eller fungerar det out of the box så att säga?

Kommer köra lite olika gäst OS, men mestadels diverse Windows versioner, ett par Linux maskiner, en FreeBSD och en Solaris installation. Jag räknar med att Linux/FreeBSD/Solaris inte är några problem att köra i någon av dessa lösningar, men (igen efter att ha googlat) så verkar det finnas sämre/bättre stöd för Windows i de olika VM'arna? Gäller detta också när jag kör HVM (Hardware VM) eller endast på maskiner utan VT-x/VT-d etc?

För att vara helt ärlig hade jag helst behållt min W2k8 Core installation som värdsmaskin (eftersom jag kör endel software som ska kunna "override" alla evnt gäster när det gäller cpu cycles etc) men det verkar inte vara ett alternativ för ögonblicket?

Visa signatur

[Geek, Dad, Programmer, RC enthusiast, Technology evangelist]

Permalänk
Avstängd

I VirtualBox, så kan man välja inställningen "Enable VT-x/AMD-V".

Permalänk
Medlem

vad har du tänkt dela ut för PCI-kort?
Intel-VT kan behövas aktiveras i bios.

Permalänk

@leksak: VT-x är inte det samma som VT-d tyvärr.
-x är old news och de flesta VM paket stödjer detta helt fint (basically det är virtualiserings av CPU). -d däremot är Directed IO virtualisering vilket gör att man kan "stänga av HW" på värden och dela ut hela bussen till en av gästerna.

@Meto: 2xRAID kontrollers, 1xIntel 4x1Gbe NIC och en DVB-T/S tuner till att börja med. Vore också kul att dela ut ett grafikkort och testa ut "två helt separata användare på en fysisk maskin" teori'n - men det är inget must

Jodå VT-d är enablat i bios, men vad jag hittat så finns det inte många VM lösningar som stödjer detta.

Ett problem här är ju att jag endast har en maskin som stödjer VT-d (VT-x är inga problem) och det är just den maskinen som för närvarande kör Hyper-V - detta medför att jag inte kan testa och labba mig fram helt utan riktning.

Visa signatur

[Geek, Dad, Programmer, RC enthusiast, Technology evangelist]

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av emigrating12
@leksak: VT-x är inte det samma som VT-d tyvärr.
-x är old news och de flesta VM paket stödjer detta helt fint (basically det är virtualiserings av CPU). -d däremot är Directed IO virtualisering vilket gör att man kan "stänga av HW" på värden och dela ut hela bussen till en av gästerna.

@Meto: 2xRAID kontrollers, 1xIntel 4x1Gbe NIC och en DVB-T/S tuner till att börja med. Vore också kul att dela ut ett grafikkort och testa ut "två helt separata användare på en fysisk maskin" teori'n - men det är inget must

Jodå VT-d är enablat i bios, men vad jag hittat så finns det inte många VM lösningar som stödjer detta.

Ett problem här är ju att jag endast har en maskin som stödjer VT-d (VT-x är inga problem) och det är just den maskinen som för närvarande kör Hyper-V - detta medför att jag inte kan testa och labba mig fram helt utan riktning.

Har du kommit till någon slutsats?
Sitter och leker med min nya maskin som ska agera värd åt diverse virtuella maskiner. Märkte att jag verkar ha stöd för VT-d på mitt moderkort (Intel DQ35JO).
Har sneglat lite på Suns kommande xVM Server, men dess installation startade inte upp korrekt med VT-D aktiverat i BIOS.
Hur är stödet för VT-D i VMWare ESXi?

Anledningen till att jag vill köra xVM är native stöd för ZFS, men det borde vara möjligt att köra VMWare ESXi och tilldela OpenSolaris som gäst mina lagringsdiskar och där med kunna köra ZFS rakt på diskarna.

Visa signatur

01001000 01100001 01110010 00100000 01100100 01110101 00100000 01110100 01110010 10000110 01101011 01101001 01100111 01110100 00111111 00100000 00111010 00101001

Permalänk

Njaej

Jag tog ned server'n en natt och installerade OpenSuse 11.1 på en disk för att testa lite. Fick iofs Xen att köra utan problem, men den vägrade (även efter fjorton kernel och Xen rebuilds) att enabla VT-d stödet, så i slutändan kom jag inte längre än min existerande Hyper-V lösning ändå.

Har googlat några timmar till och det verkar fortfarande vara ytterst få värdar som har VT-d stöd. Xen och KVM är de som kommer tillbaka hela tiden. ESX[i], Hyper-V, Virtualbox, xVM etc etc stöder det tyvärr inte.

Frågan är ju om du behöver VT-d support eller inte. Det det ger dig utöver "normal" virtualisering är just PCI Passthrough vilket betyder att du kan dela ut din RAID kontroller f.ex och ditt gäst OS kommer se denna kontroller'n som installerad i sin egen PCI bus. Man slipper helt enkelt att dela ut lagringsdiskar i "raw" mode. Om du inte planerar köra några virtuella maskiner som behöver direkt HW tillgång (till ett TV kort, RAID kontroller etc) har du heller ingen direkt nytta av VT-d.

Visa signatur

[Geek, Dad, Programmer, RC enthusiast, Technology evangelist]

Permalänk
Medlem

Ska man köra kvm så är vt-d stöd i princip ett måste i alla fall om ska köra windows gäst. Xen Hyper-V ska också utnyttja det (det handlar långt ifrån bara om möjlighet till PCI utdelning)

Jag har bara hört nämnas att det kan gå och dela ut PCI kort men aldrig hört om att någon verkligen har gjort det.

Permalänk

Långt ifrån och långt ifrån... VT-d är Directed I/O virtualizering vilket endast har att göra med virtualizering av hårdvaru I/O enheter.

Ok, det är inte bara PCI bussar som faller under detta utan även USB portar, tangentbords och mus portar etc etc - men det som är mest interessant är just PCI[x|e] Passthrough.

Så med mindre man kommer köra gäster som har direkt behov at HW tillgång har man heller ingen nytta av VT-d stöd (vilket endast finns på ett fåtal kort/chipset - och bland dessa har endast hälften av tillverkarna slagit på detta stödet).

VT-x däremot (vilket finns på så gott som alla "nyare" moderkort och processorer) är virtualizering av CPU'n. Detta ger dig såkallad Full virtualization vilket är snabbare än paravirtualizering. Sedan har det ju funnits möjlighet att dela ut PCI kort i paravirtualizerade miljöer ett bra tag - men då delar man inte "bussen" utan kortet och både värd/gäst måste ha stöd för detta (vilket betyder att Windows gäster inte fungerade).

Anyhoo, hittade Proxmox VE 1.1 igår kväll vilket kör KVM (83) och bör därför ha stöd för både Intel's VT-d och AMD's IOMMU. Får dra ned servern'n igen senare och testa installera detta. Men verkar vara en "stripped" linux dist som är speciellt anpassad att köras som värd - styrs då genom ett webUI etc.

Visa signatur

[Geek, Dad, Programmer, RC enthusiast, Technology evangelist]

Permalänk
Medlem
Citat:

Xen 3.0.2 supports Intel VT-x and AMD-V. Xen 3.2.1 supports Intel VT-d. Xen 3.3 is expected to support Intel VT-c

(http://en.wikipedia.org/wiki/Virtualization_Technology)

Det jag eventuellt hade tänkt göra var att isåfall dedikera ett quad-nätverkskort till en virtuell router.
Sen hade jag tänkt köra en OpenSolaris gäst som får full tillgång till mina lagringsdiskar (dessa sitter dock rakt på moderkortet utan någon onödig/fancy RAID-kontroller)

Ska experimentera lite med Debian Lenny och XEN 3.2.1 när jag får tid.

VMWare ESXi är ju tyvärr så väldigt begränsad vad gäller hårdvarustödet. Inga av mina nätverkskort känndes igen av ESXi. Och tydligen ska det vara väldigt bökigt att lägga in extra stöd själv.

Får titta närmre på Proxmox också.

Visa signatur

01001000 01100001 01110010 00100000 01100100 01110101 00100000 01110100 01110010 10000110 01101011 01101001 01100111 01110100 00111111 00100000 00111010 00101001

Permalänk

Yep. Allt av dokumentation säger att Xen stödjer full virtualizering, men jag fick det aldrig att fungera. Provade färdig Xen (3.3.1) som följde med OpenSuse 11.1, provade självbygge av Xen, självbygge av Xen samt Kernel och diverse andra saker (såsom Xen 3.2.1 och 3.3.0). Varenda gång fick jag upp att VT-d inte var enabled och mina enheter ej kunde utdelas.

Det är ju dock mycket möjligt att det är user error då det är endel år sedan jag jobbade med linux och Xen dokumentationen när det gäller VT-d stöd var/är relativt liten (typ en eller två wiki sidor).

Har iallafall precis bränt ut Proxmox nu så får vi se hur det fungerar. Verkar vara i stil med ESXi där man inte har ett "komplett" host OS.

Visa signatur

[Geek, Dad, Programmer, RC enthusiast, Technology evangelist]

Permalänk
Medlem

oj tydligen fanns det mer virtualiserings-tekiker än vad jag kände till. skulle annars vara fräckt om man kunde dela ut PCI-enheter rapportera gärna vidare hur det går:)

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av emigrating12
Varenda gång fick jag upp att VT-d inte var enabled och mina enheter ej kunde utdelas.

Dum fråga: VT-d är enablat i BIOS?

Citat:

Ursprungligen inskrivet av emigrating12
Har iallafall precis bränt ut Proxmox nu så får vi se hur det fungerar. Verkar vara i stil med ESXi där man inte har ett "komplett" host OS.

Återkom gärna med din uppfattning av Proxmox.

Visa signatur

01001000 01100001 01110010 00100000 01100100 01110101 00100000 01110100 01110010 10000110 01101011 01101001 01100111 01110100 00111111 00100000 00111010 00101001

Permalänk

Wot, man måste enabla det i bios? Jodå jag har dubbel och trippel kollat att det verkligen är enabled.

Proxmox då.. installerade ifrån deras 1.1 CD vilket tog max 10 minuter. Startade om boxen och den vägrar boota. Sitter endast på svart skärm och vill inte vara med. Efter lite googling verkar detta ha att göra med min HDD configuration så in med CDn igen och köra pveboot. Systemet är nu igång och jag kan gå rätt in på webUIet och fixa iordning en VM.

Verkar rätt händigt, dock inte alls lika konfigurerbart som ESXi. Verkar heller inte ha VT-d stöd i webUIet vilket betyder att jag måste ned och rota på consollen för att få igång det hela. KVM (som är värden i Proxmox) verkar dock känna igen att jag ska kunna dela ut exempelvis en PCI bus, så lite längre har jag kommit. Men eftersom det är väldigt lite stöd för detta i webUI får jag se om jag orkar eller bara kör in en annan distro med senaste KVM builden. Har bara en halvtimma kvar ungefär framtills server'n måste up igen så imorrn kanske

Visa signatur

[Geek, Dad, Programmer, RC enthusiast, Technology evangelist]

Permalänk
Medlem

Väldigt intressant... återkom gärna med så mycket info som möjligt hur det går för dig.

Visa signatur

----AMD POWER----

Permalänk
Medlem

Håller med, mycket intressant!

Jag håller på att bygga en NAS, startade med en billg ATOM-lösning men efter att jag läst på så blir det nog en Solaris - ZFS.

Tyvärr är HW-stödet i Solaris lite klent så jag började leta efter andra lösingar.

ronnylov har tydligen en intressant lösning som funkar med Solaris, men kan man köra IOMMU på den lösningen?

Min önskan är: Solaris + MythTV (som verkar död för tillfället i Solaris) därav virtuell maskin.

/Tobbe

Visa signatur

OS: FreeBSD, Ubuntu, Raspbian, iOS, OSX
HW: PC, Mac & iPrylar

Permalänk
Medlem

Jag har inte testat virtualisering på NAS-servern så jag vet inte angående IOMMU. Funkar bra som filserver i alla fall med OpenSolaris på "bare metal" som de säger...

Permalänk
Medlem

@ronnylov
Ok, tack för info. Tyvärr ser det ut som om AMD inte stödjer IOMMU än - ska tydligen komma i år.

Vissa av Intel's cpu:er klarar det MEN mobo:t måste tydligen också stödja det. Ska man ha ett sådant mobo så blir det nog tyvärr en servermodell

Visa signatur

OS: FreeBSD, Ubuntu, Raspbian, iOS, OSX
HW: PC, Mac & iPrylar

Permalänk

Nejdå, många X35 och senare moderkort stöder VT-d (IOMMU) helt fint.

Förövrigt har jag kommit lite längre idag. Fick det hela att fungera med hjälp av nyinstallation av OS, rebuild av kernel, xen och lite andra saker. Lite småförändringar i diverse konfig filer och plötsligt har jag IO Virtualization Enabled.

Skapade först en vanlig HVM, installerade Windows Server 2008 och konfigurerade den som behövligt. Sedan körde jag xm pci-attach Win2008StorageSrvr 0000:05:00.0 ifrån värden och i Windows fick jag upp ett meddelande om att ny hårdvara hittats. Installerade drivare helt automatiskt. Det "roliga" är att RAID kontroller'n kommer upp som ett hotswap PCI kort, så om jag vill kan jag stoppa kortet ifrån Windows och sedan detacha det och flytta över till en annan guest.

Installerade också ett par andra VMs. En Vista x64 där jag skickade över en TV Tuner vilket också fungerade finfint. Till slut testade jag en Windows 7 VM där jag försökte dela ut ett andra grafikkort, USB tangentbord och mus. Grafikkortet gick bra, vilket betyder att min virtuella maskin kan ha en fysisk display tillkopplad - very impressive USB tangentbordet/musen fixade jag dock inte, men räknar med det var pga att jag försökte dela USB device och inte hela USB kontroller'n.

Tyvärr verkar det som om Xen är bra mycket trögare på virtualizering än Hyper-V (liknande upplevelser har jag med ESXi) så jag är inte helt säker hur jag kommer göra ännu. Både installation av OS och generel användning av gästsystemen kändes "laggande" under Xen medans man har svårt att skilja på ett lokalt fysiskt system eller en VM under Hyper-V. Detta kan dock vara pga VNC som används som "klient" till Xen maskinerna medans Hyper-V körs med över ett modificerat RDP protocol. Får prova att köra RDP direkt till de virtuella maskinerna och se hur det känns.

Dock är möjligheten att dela ut fysisk hårdvara väldigt fin. Plötsligt kan jag köra tidigare o-virtualiserbara maskiner (cctv recorder f.ex) som en VM och spara ännu mer energi/rackplats.

Visa signatur

[Geek, Dad, Programmer, RC enthusiast, Technology evangelist]

Permalänk
Medlem

Coolt!

De trådar jag hittade på nätet var tydligen lite gamla (t ex http://communities.intel.com/openport/thread/2181)
Vad kör du på för HW? Jag är fortfarande på planeringsstadiet ...

Visa signatur

OS: FreeBSD, Ubuntu, Raspbian, iOS, OSX
HW: PC, Mac & iPrylar

Permalänk

Hehe, jag kör på serverhårdvara (Supermicro moderkort med dubbla Xeon processorer (8 cores) och 24GB ram) eftersom det är en server både för hemma och business bruk.

Men det ska ju fungera lika bra på vilket som helst annat kort som har VT-d stöd (vilket alla x35 har om jag kommer ihåg rätt - men endel har inte BIOS stöd för det eftersom det inte anses/ansågs vara en desktop feature).

Visa signatur

[Geek, Dad, Programmer, RC enthusiast, Technology evangelist]

Permalänk
Medlem

Ok, då förstår jag varför det funkar hos dig! Lite över min hemmabudget (Men snackar vi business-HW så har jag nya leksaker på väg in AIX/DB2 -> http://www.teradata.com/t/)

Visa signatur

OS: FreeBSD, Ubuntu, Raspbian, iOS, OSX
HW: PC, Mac & iPrylar

Permalänk
Medlem

Har googlat runt, men blir inte rikigt klok på följande;

- Vilka Intel chipset har stöd för VT-d?
- Någon rekommendation på lämpligt moderkort?

/Andreas

Permalänk

Q/G/X35 och senare (altså 35/38/45/48/53 etc) ska ha VT-d stöd, dock betyder inte chipset stöd att det är enabled eller engång möjligt att enable i bios. Men om stödet finns och bios tillåter det så finns det som en option - mao kan du sitta och kolla moderkortsmanualer för att vara säker

Asus P5E-VM har VT-d vet jag, de flesta [current] serverkort har det väl också går jag ut ifrån. Det bästa är nog att hitta ett moderkort som passar till ditt bygge och sedan kolla att det stödjer VT-d - om inte, hittar du ett annat och kollar igen. Var också medveten om att [pre-sales] support ofta inte har en aning och blandar ihop VT-d med VT-x.

Nu nyligen har visst AMD också kommit med IOMMU stöd (har tidigare bara funnits på papper) så om du är en AMD person finns det hopp där också. De har en fin PR sida om det, hittar dock inte linken just nu.

Tillbaka till min server; Jag fick som sagt Xen att fungera rätt bra med PCI passthrough, men jag satt med en känsla av att de virtuella maskinerna var tröga. Körde igång RDP iställetför VNC för kontroll och de känns fortfarande sega. Vet inte helt hur det fungerar, men jag kan absolut inte köra en Xen maskin som utvecklingsmaskin (något jag gjort med en HyperV maskin ett bra tag nu) eftersom maskinen/input hänger upp sig en bråkdels sekund nu och då. Har kollat benchmarks och även Windows Experience Index vilka båda indikerar att jag har en sjuhelvetes maskin igång (WEI ligger på max 5.9 under Vista, mycket högre i Win7), men sålänge de laggar som de gör är det ingenting jag kan använda.

Att det sedan inte finns något vettigt webUI (eller raw iron "OS") för Xen gjorde det ännu enklare att inte fortsätta ned den stigen.

Provade ut Parallels Server (beta) som också annonserar med experimentellt VT-d stöd - och visst, det fungerar ju fint, men de har låst hårdvaran till nätverkskort och grafikkort - ingen av delarna har jag behov för så det var heller ingenting att satsa på.

Har hittat endel enterprise level virtualization lösningar som tydligen ska stödja detta, men det verkar inte finnas trial versioner att tillgå och i de fåtal applications som har trials har jag inte hittat något sätt att från admin UIet sätta upp detta.

Så då är vi tillbaka till KVM igen. HVM's under Linux/KVM verkar vara snabbare än tillsvarande Xen maskiner dock fortfarande inte lika snabba som HyperV (de kan dock sammanliknas med VMWare lösningar). Disk I/O verkar också rätt trög, men det kan vara mitt eget fel och behöver således inte vara någon bakdel på så sätt. PCI Passthrough fungerar och det är så enkelt som att lägga till en -pcidevice host=xx:xx.x i konfigurationen. Dock har jag problem att dela ut min HW RAID kontroller i KVM. När VMen bootar kommer LSI BIOS meddelandet upp men där hänger sig allt (även värdsmaskinen) och jag kommer inte längre - dock räknar jag med att detta är något DMA/IRQ problem som går att lösa. Delar ut en TV Tuner utan problem och har Media Center HVM som spelar in både DVB-T och DVB-S utan problem, samtidigt som den agerar MC värd åt mina Extenders runt om i kåken.

Dock verkar det inte finnas något vettigt management UI till KVM heller. Proxmox som jag testade tidigare verkade OK, men det saknar mycket funktionalitet som jag vill ha. Virt-Manager är bra, men måste köras över XWindows och inte fan om jag orkar ha en XWin "client" på alla mina windows maskiner bara för VM kontroll. oVirt verkar som om det kan vara en lösning, men då behöver jag en egen server/maskin som agerar "appliance" medans den stora server'n agerar "host". Inte precis så energibesparande som jag hade tänkt mig - en extra maskin (med mindre jag bygger helt nytt) drar fort 250w (eller 6kWh per dag) och med den kostnaden kan jag lika gärna fortsätta köra de flesta maskinerna under Windows 2008 / HyperV och ha en egen fysisk maskin för de där jag behöver PCI stöd.

Ska prova lite mer framåt. Novell verkar ju erbjuda XWindows over RDP i deras senaste release vilket betyder att jag kan köra Virt-Manager som admin UI nästan lika lätt som jag kan köra Microsoft's Hyper-V Manager på min arbetsstation. Tyvärr har jag inte lyckats få xrdp att fungera, och efter några timmar debugging verkar det som om en hel del andra har stött på precis samma problem med deras x64 SUSE maskiner. Fungerar fint på x86, men att köra det som en VM server verkar inte helt smart med tanke på RAM problemen

Jaja, vi får la se hur det blir.

Visa signatur

[Geek, Dad, Programmer, RC enthusiast, Technology evangelist]

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av emigrating12
[B]Q/G/X35 och senare (altså 35/38/45/48/53 etc) ska ha VT-d stöd, dock betyder inte chipset stöd att det är enabled eller engång möjligt att enable i bios. Men om stödet finns och bios tillåter det så finns det som en option - mao kan du sitta och kolla moderkortsmanualer för att vara säker

Bah!

Och jag som har G33. Får väl ta och fundera på ett annat MB då...

/Andreas

Permalänk
Medlem
Visa signatur

OS: FreeBSD, Ubuntu, Raspbian, iOS, OSX
HW: PC, Mac & iPrylar