Neuer PC - Linux plus Windows in einer VM (vt-d)

Ronald2011

Ensign
Registriert
Dez. 2011
Beiträge
155
Hallo!

Ich plane, mit einen neuen PC zuzulegen. Ziel: Linux als Host, Windows als Gast. Dabei soll Windows eher zum Zocken verwendet werden. Erforderlich ist daher die Möglichkeit, die Grafikkarte an das Gastsystem durchzureichen. Hierzu ist (bei Intel) vt-d erforderlich sowie ein passender Chipsatz (offiziell unterstützen nur die Q-Serie sowie einige Server-Chipsätze vt-d, es gibt aber auch andere Chipsätze, die vt-d anbieten).

Auch hier im Forum gibt es schon einige, die sich mit diesem Thema beschäftigt haben:
https://www.computerbase.de/forum/threads/xen-linux-und-windows-ueber-ein-video-output.1238037/
https://www.computerbase.de/forum/t...system-und-windows-in-vm-zum-spielen.1188689/
Dazu gibt es natürlich eine Reihe von Quellen im Internet, die das Thema behandeln.

Nach allem, was ich gelesen habe, habe ich mich für folgende Komponenten entschieden:

Intel i7-4771 -> http://ark.intel.com/products/77656
Asus Q87MM-E -> www.asus.com/Motherboards/Q87ME
Samsung 840 Evo (250 GB) oder 840 Pro (256 GB)
Eine Grafikkarte (Powercolor 6850 SCS3), Netzteil (Corsair 850AX) und Kühler (Noctua NH-14) sind vorhanden.

Was fehlt, ist Speicher: 2x8GB sollten es schon sein. Kann hier jemand was empfehlen?
Ist an den sonstigen Komponenten was zu kritisieren, hat damit jemand gute oder schlechte Erfahrungen gemacht?

Dazu interessiert mich folgendes:
Welche Linux-Version bietet langen Support?
Gibt es hier im Forum jemanden, der sich mit solch einer Virtualisierung auskennt und mir Hinweise geben kann?

Gruß und danke für die Kommentare,
Ronald2011
 
Wenn ich nicht irgendeine wichtige technische Entwicklung verschlafen habe, dann hat Meolo recht. Eine schöne Idee, die ich auch vor ein paar Jahren hatte. War dann selbst sehr enttäuscht als ich herausfand, dass das nicht geht.

Wenn du an der Kiste nichts machst als Zocken, dann vergiss Linux und bleib bei Windows. Es sei denn, die Spiele, welche nun mit der Steam-Welle zu Linux gespült werden, reichen dir.

Ansonsten bleibt halt Dual-Boot oder zum Spielen eine Konsole anschaffen und den PC nur mit Linux fahren.
 
Oder Bootmanager und da sagen was starten..

Bei MacOS kannst per VM im OS z.b. Windows starte oder per Bootcamp beim hochfahren. Kp ob bei Linux, Windows sowas geht.
 
Linux plus Xen ist wohl am weitesten fortgeschritten, was das Durchreichen von Grafikkarten an einen Gast angeht. Das ist also möglich, ist aber abhängig von der verwendeten Hardware.
 
Hi,

für Typ 2 Hypervisor ist mir nur Xen bekannt, dass vt-d unterstützt. Bei Typ 1 wäre die Auswahl größer, aber spielen ist dann auf den mir bekannten Hypervisors kaum noch möglich, da man nicht mehr direkt auf der Maschine arbeiten kann.

VG
BassT
 
Nachdem ich gegoogelt habe und nun weiß, wodurch sich Typ1 und Typ2 unterscheiden, bin ich mir sicher, dass ich Typ2 plane. XEN sollte das können, wie auch in einigen Foren bestätigt wird.

BassT, kennst Du den Unterschied zwischen VGA und PCI-Passthrough?
 
Ob da überhaupt eine Unterscheidung gemacht wird, weiß ich gerade nicht. VGA wäre eigentlich ein Spezialfall von PCIpassthrough. Generell kann man mit PCIpassthrough alle möglichen Geräte, wie Soundkarte, Videokarte, Netzwerkadapter etc pp an eine VM durchreichen. VGA bezieht sich dann explizit auf die Grafikkarte.

VG
BassT
 
Zunächst einmal: Xen ist ein Type1 Hypervisor. Für die Kommunikation mit der Hardware bedient sich da Xen zwar einer speziellen VM, der dom0, ändert aber nichts an der Architektur. Dann: ob dein Vorhaben klappt, liegt nicht daran, welchen Typ Hypervisor du verwendest, daher solltest du daran auch deine Entscheidung nicht festmachen.

VGA ist tatsächlich ein Spezialfall von PCI-Passthrough. Im Detail kann ich es dir nicht erklären, aber im Groben ist VGA-Passthrough aufwendiger aus diversen Gründen. Einer ist, weil Graphikkarten meist ihr eigenes BIOS haben, welches beim Systemstart geladen werden muss. Gibt noch ein paar andere, aber Google kann jeder selbst bedienen.

Ob dafür immer 2 Graphikkarten benötigt werden? Nein. Ich habe schon Setups (in Videos) gesehen, bei denen das auf einem Notebook mit nur einer Graphikkarte demonstriert wurde. Warum solltest du dennoch 2 verwenden? Eine Graphikkarte kann nur exklusiv von einem System verwendet werden, also entweder vom Host/dom0 oder vom Gast/domU. Ich kenne jetzt dein geplantes Vorhaben nicht, aber ich denke mal nicht, dass du dich aus einer Desktop-Umgebung ausloggen willst, jedes Mal, wenn du Windows startest.

Was du aber machen kannst, ist das IGD der CPU für Linux zu verwenden und dann deine Graphikkarte an Windows durchreichen. Das klappt. Zumindest mit Xen. Falls du unbedingt ;) deinen Type2-Hypervisor haben willst, musst du auf KVM zurückgreifen. Das kann, im Gegensatz zu Xen, Primary-Passthrough mit vfio-vga (google mal danach und nimm den ersten Treffer). Allerdings ist das sehr experimentell und klappt (zumindest vor 2 Monaten) nicht mit dem Intel IGD für den Host. Da bräuchtest du dann noch eine Graka zusätzlich. KVM kann zwar Graphikkarten auch mit pci-passthrough durchschleifen, was dann auch mit dem Intel-IGD klappt, aber das ist im Vergleich zu Xen richtig langsam und funktioniert nur halbherzig.

16GB RAM reichen. AMD Graka ist zu empfehlen! AMD hat Patches zu Xen beigetragen, dass VGA-Passthrough funktioniert, und das tut es auch meist ootb.

Hab jetzt nur bei der Wiki was zum Q87 gefunden und da steht zumindest, dass der IOMMU unterstützt - allerdings steht da auch, dass der Z87 das nicht können soll, daher würd ich da vielleicht nochmal genauer nachschaun...

Nachtrag:
@Meolo, Tumbleweed: die Technik existiert schon seit min. 2 Jahren in Xen.
Die Perfomance ist auch über jeden Zweifel erhaben - hab z.B. Metro 2033 mit wenigen Abstrichen bei den Effekten in 1920x1200 auf i5-2500 und einer HD5850 flüssig zocken können.
 
Zuletzt bearbeitet:
@ebast:
Ja Xen ist natürlich Type 1, hab ich wohl mit KVM verwechselt. War wohl gestern doch etwas spät :D
Wie konnektierst du dich auf eine Windows VM unter Xen? Und welches OS läuft auf Dom0? Bisher war mir nur VNC untergekommen, aber ich kann mir nicht vorstellen, das spielen damit performant möglich ist.

VG
BassT
 
Danke für die ausführliche Antwort.

Für alle, die ähnliches vorhaben:
Die Q-Chipsätze können das auf jeden Fall:
http://ark.intel.com/products/75007

Andere Chipsätze können das offiziell nicht, werden aber z. B. troltzdem von Intel genannt:
http://www.intel.com/support/motherboards/desktop/sb/cs-030922.htm

Bei anderen MB-Herstellern muss man halt in der Anleitung nachschauen, ob die vt-d im Bios implementiert haben. Asrock bietet das bei vielen MB an, die Haswell-MB von Asus können das in der Regel auch (zumindest laut Anleitung).

Im Netz habe ich mehrere Quellen gefunden, allerdings ist das nicht besonders ausführlich oder in irgendeiner Weise selbsterklärend, zumindest nicht aus meiner Sicht:

Eine Auswahl:
http://wiki.xen.org/wiki/Xen_VGA_Passthrough#Xen_VGA_passthru_requirements_from_dom0_kernel
http://wiki.xen.org/wiki/XenPCIpassthrough
http://debianforum.de/forum/viewtopic.php?f=25&t=140895

Auch bei Xen PCI Passthrough wird davon geredet, dass das Durchreichen einer Grafikkarte möglich ist: "Passing through graphics cards to guests allows them full access to the 3D acceleration capabilities..." - deswegen war/ist mir der Unterschied zwischen PCI und VGA Passthrough nicht ganz klar.

Ob Typ1 oder Typ2 ist mir egal - hauptsache so leistungsfähig, dass man in einer virtuellen Windows-Umgebung spielen kann!

Gruß und danke
 
@BassT: da man die Graphikkarte durchschleift, zeichnet Windows die Bilder natürlich auch auf der Graphikkarte, welches die Bilder dann an einen ihrer Ausgänge schickt. D.h. man muss einen Monitor mit mehreren Eingängen besitzen oder ein KVM-Switch oder mehrere Monitore oder irgendwelche abgefahrene Hardware, die Video-Input-Schnittstellen bietet.
Schwieriger wirds mit den Eingabegeräten. Ich hab hier einfach einen USB-Controller mit durchgeschleift und benutze ein KVM-Switch. Ich verbinde mich also nicht wirklich aus der dom0 mit dem Windows sondern hab eigentlich fast eher zwei voneinander gekapselte Maschinen vor mir. Damit ich beim Herunterfahren allerdings nicht vergesse, Windows vorher abzuschalten, lass ich Xen ein SDL-Fensterchen öffnen. Das zeigt mir dann auch den boot-Vorgang an (zumindest solange, bis auf die durchgeschleifte Graka gewechselt wird). So ein Fenster kannst du auch verwenden, um Eingaben an das Windows durchzureichen, doch ist das ziemlich bescheiden aus folgendem Grund: das Fester ist in der Auflösung auf geschätzte 1024x768 Pixel beschränkt. Dann wird die Position des Mauscursors in dem Fenster auf die Auflösung des Bildschirms in Windows umgerechnet. Somit kannst du manche viele Bereiche des Bildschirms überhaupt nicht mit der Maus erreichen und Spielen ist damit praktisch nicht möglich, weil die Maus keine flüssige sonder sprunghafte Bewegungen macht.

@Ronald2011: das mit dem Chipsätzen hab ich im Nachhinein dann auch noch gelesen. Ist ein anderes Thema, aber hier find' ich mal wieder die Feature-Politik von Intel zum :kotz: . Von der Leistung her kann ich dich beruhigen, da wirst du so gut wie keine Einbußen gegenüber einem nativen Windows hinnehmen müssen (vielleicht so ein obligatorisches 1%, Benchmarks gibt es hierzu aber kaum welche). Manches wird sogar schneller sein (I/O gefühlt, Boot definitiv).
Wenn du noch im Detail den Unterschied zwischen reinem PCI und VGA-Passthrough wissen magst, kann ich es mir nochmal genauer anschauen und versuchen auf deutsch zu übersetzen, trivial ist das Ganze jedenfalls nicht.
 
Hi ebasT,

das mit dem Umschalten wäre nochmal etwas, was mich interessieren würde:

Ich gehe mal von folgender Hardware aus: IGP der CPU für Linux, 2. Grafikkarte wird durchgereicht an das Windows-Gastsystem, es ist ein Monitor vorhanden, der (per Umschaltknopf) die Eingangsquelle wechseln kann (Eingang 1 ist mit der IGP verbunden, Eingang 2 mit der 2. Grafikkarte).

Man kann also Windows ganz normal in einer VM starten und hat dann auf dem Linux-Desktop (über die IGP) ein Fenster mit Windows (so, wie man es von einer VM halt kennt). Ist in der VW jetzt schon die 2. Grafikkarte aktiv (geht ja eigentlich nicht, da die Ausgabe ja noch über die IGP läuft), oder läuft die VM in diesem Moment noch über die in der VM emulierte Grafikkarte?

Wie wechselt das Windows-Gastsystem jetzt von der emulierten Grafikkarte auf die 2. Grafikkarte? Wenn ich per Monitor-Umschaltknopf die Quelle von Grafikkarte 1 auf Grafikkarte 2 wechsel? Oder Automatisch?

Im Hinblick auf VGA-PCI-Passthrough ist Übersetzen ist nicht nötig, aber falls Du ein paar gute Seiten im Internet kennst, würde ich mich selber nochmal dransetzen, den Unterschied zu verstehen!

Gruß
 
Zum größten Teil funktioniert das Umschalten genau so, wie du es dir vorstellst - zumindest bei secondary Passthrough. Du startest die VM, es poppt ein Fenster auf (wenn aktiviert), welches den boot-Prozess der VM anzeigt. Irgendwann lädt Windows dann den Treiber der durchgereichten Graphikkarte und schaltet das Bild auf den an der Graka angeschlossenen Monitor um, zumindest wenn du Windows gesagt hast, welches dass der Monitor an der Graka der primäre Monitor sein soll. Das Fenster der VM unter Linux zeigt ab dann einen schwarzen Bildschirm an. Ab dann musst du am Monitor den Input wechseln und Spaß mit Windows haben. Wenn du jetzt aber wieder zurück auf Linux wechselst, bekommt Windows ja davon nichts mit, bzw. wechselt nicht einfach von allein den primären Monitor (naja, also eigentlich zumindest. Mir ist das schon mal passiert, danach musst ich den Gaphikkartentreiber neu installieren, damit er wieder den Ausgang der Graka verwendet). Das Fenster der VM in deinem Host bleibt also schwarz.

Das ist jedoch der einfache Part. An deiner Stelle würde ich mir mehr Gedanken darum machen, wie du die Eingabegeräte gescheit an Windows durchreichst. Denn wie geschrieben ist die Variante "Maus und Tastatur fangen" in dem SDL-Fenster unter Linux zwar eine einfache, schnelle und funktionierende Möglichkeit, glücklich wirst du damit aber beim Zocken nicht.

Da fällt mir ein, dass du auch nach einer Linux-Distribution mit langem Support gefragt hast. Wenn du schon solche Späße wie VGA-Passthrough machen willst, setze ich mal bei dir ein überdurchschnittliches IT-Verständnis voraus. Von daher würd ich dir eine Distribution mit Rolling-Releases nahelegen, also Arch (für den Anfang) oder gentoo (für noch mehr Spaß :)). Dann kannst dein System immer aktuell halten und hast sozusagen ewigen Support.
 
Zu Deinen Fragen, wobei ebast schon gut vorgelegt hat ;)



Wobei.... Zu mir:

Ich bin gerade dabei mir einem Server mit Passthrough einzurichten. Momentan lote ich aus ob ich diesen Weg gehen möchte oder bei Dualboot bleibe.
Sowohl XEN als auch KVM habe ich zum laufen bekommen, wobei letzteres mir mehr zusagt.

Folgende Hardware verwende ich:

Intel CPU
Mainboard mit einem Z77 Chip und interne Grafikkarte
AMD/ATI Grafikkarte (Passthrough)
Monitor mit zwei Anschlüssen (Beide verbunden mit den Grafikkarten)
PCI-USB Conroller (Passthrough)
Eine weitere Maus und Tastatur am PCI-Controller
OpenSUSE 13.1 / KVM-Server


#####

Welche Linux-Version bietet langen Support?

Es gibt ein Ubuntu 12.04 / Mint 13 dass einen erweiterten Supportzeitraum bietet.
Zudem gibt es Linux-Distribution für den Geschäftsbereich
"Red Hat Enterprise Linux", "SUSE Linux Enterprise" CentOS usw. (Letzteres ist kostenlos)

Enterprise Linux oder Distributionen mit einem verlängertem Lebenszyklus haben oft auch ältere Software an Board, die dafür sehr stabil ist.

Das Gegenstück hierzu sind die "Rolling Release" Distributionen (Arch Linux, Gentoo, Debian Sid Deveriate, OpenSUSE tumbleweed usw.)
Rolling Release ist zwar immer brandneu, aber eben auch brandgefährlich, da sie bei jedem update instabile werden können.
Deshalb sind sie nicht häufig im Server-Bereich zu finden.

In der goldenen Mitte sind die "normalen" Distributionen, wie Debian, Fedora, OpenSUSE, Mint, Ubuntu usw.
Diese werden trotz ihrer mäßigen Supportzeit auch im Server-Bereich eingesetzt und sind deshalb auch für Dich geeignet.
(ich benutzte zum Beispiel Opensuse 13.1 beta)

Welches Linux empfehle ich Dir? Eines das mit Deinem Server funktioniert ;) (Sorry)


#####

Bei der Hardware solltest Du darauf achten dass sie auch wirklich geeignet ist.
Beim Mainboard zum Beispiel gibt es welche die zwar einen VT-d fähigen Chip haben, aber per BIOS diese Funktion nicht einschaltbar ist.

#####

Welchen Server verwendet man?

Momentan sind wohl XEN und KVM geeignet.
XEN lief bei mir, aber nicht so sauber und sehr anstrengend beim einrichten.
KVM lief "out of the Box"

ABER! Das ist meine Erfahrung, bestimmt gibt es Leute bei denen KVM nicht läuft aber dafür XEN


#####


Grundsätzliche Schritte:

Richtige Hardware besitzen
Linux installieren (am besten eins zu dem es ein HowTo für Deine Hardware gibt)
Xen oder KVM samt Zusatzsoftware installieren
Informationen zu Deinem System sammeln (leicht ... Linux Befehle)
Bootloader einrichten (leicht)
XEN bzw. KVM Passthrough einrichten (möglicher weise nicht leicht) (bei mir reicht der Bootloader)
XEN bzw. KVM starten
Windows als virtuelle Maschine installieren und danach ausschalten.
Passthrough in XEN / KVM aktivieren
Windows booten Treiber installieren und runterfahren
... BETEN ...
Windows booten
...fluchen oder feiern...

#####


Bei mir ist es so dass ich mit KVM die Windows-Maschine starte und beim booten bleibt die KVM-Windows-Bildschirmanzeige stehen.
Dann schalte ich am Monitor auf den Eingang mit der schnellen Karte um und lege die Tastatur zur Seite.
ich sehe nun ein Windows als ob es direkt von der Platte gebootet hätte und benutze es mit der 2. Maus / Tastatur

#####

Wenn ich Benchmarks benutze habe ich immer Schwankungen, also mit jedem Durchlauf ein bisschen anderes Ergebnis.
Ich habe jeweils nur EINEN Durchlauf unternommen, von daher sind die Schwankungen nicht ausgeglichen!
Benchmark: Unigine Heaven: Native: OpenGL= 27.0, DX11=31.8; KVM: OpenGL= 26.4, DX11=32.5

Ich gehe davon aus dass ich bei diesem Benchmark nicht mal einen Verlust von 1% habe in der Virtuellen Maschine.

PS: Bei CPU-Bechmarks kann die Leistung schlechter sein weil ich von 4 Kernen nur 2 oder 3 Kerne weiterreiche und somit einen für den Server belasse.


#####

Grüße
 
Zuletzt bearbeitet:
Zurück
Oben