Allgemeine Fragen zu Xen

Sajmen

New Member
Hallo miteinander,

ich würde gerne eine Linux Kiste mit Debian und Xen einrichten um einfach mal damit rumzuspielen und um neue Sachen zu lernen.

Kurz zu der Kiste die ich hernehmen würde:
Asus Pundit P3-G33 Barebone mit Q6600, 2x2GB RAM und 200GB HDD. Das Mainboard ist ein Asus P5K-VM mit G33/ICH7 Chipsatz.

Die Kiste hat keine dedizierte Grafikkarte, sondern nur eine Onboard Intel X3100 oder so ähnlich.

Fragen dazu:

* Woher nehmen sich die VMs unter Xen den Grafikspeicher? Wird der von der Grafikkarte oder vom Arbeitsspeicher hergenommen? Sprich ist ist eine Onboard VGA Lösung mit shared memory ausreichend, um z.B. 2x WinXP und 2x Linux mit X-Server zu virtualisieren? Oder ist hier eine dedizierte Grafikkarte mit eigenem Speicher ratsam?

* Gibt es eine Monitoring Software für Xen, die mir die CPU/Speicher auslastung der VMs anzeigt? So wie z.B. bei VMWare ESX


Danke schonmal!


Edit: Sorry, eigentlich wollte ich das hier in der Rubrik "Virtualisierung" posten! Bei Bedarf bitte verschieben, danke!
 
Last edited by a moderator:
Woher nehmen sich die VMs unter Xen den Grafikspeicher?
Hierzu mach Dich erstmal kundig, wofür eine Grafikkarte wirklich eigenen Speicher braucht.
Dann erfährst Du, daß dieser nur für interne Arbeiten genutzt wird. Sprich eine VM nutzt diesen (i.d.R.) nur, wenn sie "auf dem Bildschirm" läuft.

Gibt es eine Monitoring Software für Xen, die mir die CPU/Speicher auslastung der VMs anzeigt?
xentop

huschi.
 
Danke erstmal!

Hierzu mach Dich erstmal kundig, wofür eine Grafikkarte wirklich eigenen Speicher braucht.
Dann erfährst Du, daß dieser nur für interne Arbeiten genutzt wird. Sprich eine VM nutzt diesen (i.d.R.) nur, wenn sie "auf dem Bildschirm" läuft.
Unter VMWare Workstation z.B. kann ich jeder VM eine feste Video RAM Größe zuweisen die dann vom RAM des Host Rechners abgezwackt wird. Da ist es dann egal, ob die VM auf dem Bildschirm läuft oder nicht. Der Speicher ist dann belegt. Und je mehr RAM ich der VM zuweise, umso höhere Auflösungen kann ich dann in der VM einstellen (Rede hier jetzt von XP als Guest OS). Meine Frage war jetzt, ob Xen das genauso macht oder vielleicht den VRAM von der Grafikkarte hernimmt.


Huschi said:
Ich häts eher gerne Grafisch mit Diagrammen und so 'nem Zeug. Hab da glaube ich auch schon was gefunden: Virtual Machine Manager
 
XenServer als Grundlage für Produktivsystem

Hallo,

sehr interessantes Thema, welches ich mal aufgegriffen habe.

Denn auch ich betreibe einen Q6600 mit einem Asus P5K-VM un 2x2GB Ram und einer NVIDIA Geforce 8800 GTS 512MB und spiele mit dem Gedanken auf Citrix XenServer aufzubauen. (Hardware soll, bei Bedarf, erweitert werden)

Als OS habe ich vor Windows 7 als Produktivsystem, eventuell XP, Debian und andere als Testumgebungen zu betreiben.

Meine Fragen die sich bisher gestellt haben:

  • Wie wirkt sich die Performance von Windows 7 durch XenServer aus, heißt: Ist diese Variante langsamer verglichen mit einer physikalischen Installation?
  • Können Hersteller Treiber wie gewohnt genutzt werden, oder verwendet XenServer ähnlich wie VMWare Tools eigene Treiber? Speziel Grafikkartentreiber in Verwendung mit Spielen, Video, Bildbearbeitung etc.?
  • Was sind noch wichtige Vor- und Nachteile, die beachtet bzw. berücksichtig werden müssen?

Das Ganze Projekt soll unter anderem aus Datensicherheit und natürlich Lerneffekt stattfinden. Des weiteren bietet diese Möglichkeit in meinen Augen eine gute Grundlage für weitere Testsysteme und eventuellen "Spielerein" in der Zukunft (Zugriff per Handy, Notebook, Einbinden NAS Systeme u.s.w.)

Ich wäre sehr dankbar für eine rege Diskussion über dieses Thema.

Viele Grüße!
sTaN
 
Scheint keiner Begeisterung an diesem Thema zu haben!?:rolleyes:

Quatsch :D Als ob in jedem Forum der Welt jeder Beitrag beantwortet werden würde. Weisste doch selbst ;)


Zunächst einmal schlage ich dir vor, dich allgemein über Xen und Paravirtualisierung zu informieren, gute Links findet man über Google recht schnell.


* Gibt es eine Monitoring Software für Xen, die mir die CPU/Speicher auslastung der VMs anzeigt? So wie z.B. bei VMWare ESX

Wie Huschi bereits schreibt, kannst du xm top verwenden (per SSH auf dem Host einloggen und diesen Befehl eingeben). Die meisten Tools, die ebenfalls eine Art Performance-Monitoring für Xen domUs anbieten, greifen auf die Ausgabe von xm top zurück.


Wie wirkt sich die Performance von Windows 7 durch XenServer aus, heißt: Ist diese Variante langsamer verglichen mit einer physikalischen Installation?

Ich gehe jetzt einfach mal davon aus, dass du Xen ganz klassisch zur Paravirtualisierung verwenden möchtest.
Bei der Paravirtualisierung werden die Gäste so modifiziert, dass sie anstatt "Kernel-Calls" (Befehle an den Kernel) die Befehle direkt an den Hypervisor (= Xen, hier ist es auch der VMM = Virtual Machine Manager) senden -> Hypercalls.
Die Gäste wenden sich also direkt an den Hypervisor, welche die Befehle überprüft, teilweise modifiziert und an die entsprechende Hardware weiter gibt. Xen besitzt dabei verschiedene Scheduler (z.B. für Interrupt Requests).. dieses ganze Verfahren bringt jedoch natürlich einen gewissen Overhead mit, der mit 2-5 Prozent jedoch sehr gering ausfällt. Bei anderen Virtualisierungstechniken, wie z.B. bei der Vollvirtualisierung, kann schon mal ein Overhead von 50 Prozent entstehen.

Xen besitzt mit der Paravirtualisierung den Vorteil, dass die dom0 (hier liegt das OS des Hostsystems) direkten Zugriff auf die Hardware besitzt und die Originaltreiber des Hostsystems verwendet. Die VMs (domUs) hingegen richten Ihre Anfragen an den Hypervisor (= Xen), der dann die Ressourcen entsprechend managed.

Wie du sicher feststellen wirst, können Betriebssysteme jedoch nur dazu gebracht werden, den Hypervisor anzusteuern, wenn diese modifiziert werden können. Windows ist jedoch Closed Source und kann somit nicht gepatcht werden.
Windows muss somit vollvirtualisiert werden, was mit dem bei Xen mitgelieferten Tool Qemu geschieht. Bei einer Vollvirtualisierung greifen die VMs nicht auf den Hypervisor, sondern über Qemu direkt auf die Hardware zu. Durch die Virtualisierungsart, nämlich Vollvirtualisierung, kann der Overhead 50 Prozent verursachen. Somit ist Windows unter Xen also nicht performant (Ausnahmen gibt es, aber wir reden ja über die klassische Verwendung von Xen).

Daher greift man vermehrt zu Microsofts Hyper-V-Lösung, die zumindest in einigen Teilen auf Xen basiert. Auch VMWare ist hier eine gute Lösung. Ich selbst habe bereits einige Windows-VMs unter Xen getestet, die Performance war eigentlich ok, aber für Gameserver etc. ist das natürlich nicht gut genug.


Können Hersteller Treiber wie gewohnt genutzt werden, oder verwendet XenServer ähnlich wie VMWare Tools eigene Treiber? Speziel Grafikkartentreiber in Verwendung mit Spielen, Video, Bildbearbeitung etc.?

Paravirtualisierte Gäste, wie Linux und Unix-Devirate, greifen auf den Hypervisor zu, dieser setzt die Anfragen entsprechend um.
3D-Grafik wird unter Xen erst seit kurzem unterstützt, ich habe das leider noch nicht getestet. Ich rate jedoch davon ab, auf Xen zu setzen, wenn man 3D-Grafiken verwenden möchte. Unter Windows und der Vollvirtualisierung ist das eh ein Krampf :D


Was sind noch wichtige Vor- und Nachteile, die beachtet bzw. berücksichtig werden müssen?

Die meisten Vor- und Nachteile hängen von dem geplanten Einsatzgebiet ab.
Xen ist generell sehr performant, einfach zu bedienen und schnell eingerichtet.
Die VMs verhalten sich durch das sehr gute Speicher-Management wie dezidierte Server, in dem sie einen festen RAM-Wert und Swap besitzen. Man kann zwar dynamic-RAM verwenden, allerdings bringt das bestimmte Nachteile mit sich (Thema OpenVZ und malloc() ...).

Ich selbst arbeite seit knapp 3 Jahren mit Xen und bin in allen Bereichen sehr zufrieden. Zum einen eignet sich Xen super für VPS-Hosting, zum anderen kannst du Xen sehr gut im internen Netzwerk verwenden, um z.B. Sandboxes zu besitzen oder Server zu konsolidieren.

Die Nachteile ergeben sich aus dem Einsatzgebiet.. generell kann man jedoch sagen, dass das performante Prinzip der Paravirtualisierung jedoch nur bei OpenSource-Betriebssystemen wirkt, bei Closed-Source-Systemen wie Windows ist Xen dann nur noch bedingt die beste Lösung.


Viel ändert sich jedoch, wenn man mit Hardwarevirtualisierung arbeitet, das ist jedoch ein ganz anderes Thema. Nur so viel dazu: Bei Hardwarevirtualisierung übernehmen die CPUs (z.B. mit Intels VT-Technologie) Aufgaben des Hypervisors, womit die Gäste direkt auf die Hardware zugreifen können. Da haben sich AMD und Intel sogar auf gewisse Standards geeinigt.

Bei weiteren Fragen einfach fragen. Bei falschen Angaben meinerseits bitte darauf aufmerksam machen, man lernt nie aus :)
 
Last edited by a moderator:
Super vielen Dank für die ausführliche und sehr Verständliche Antwort!

Laut deiner Empfehlung ist XenServer für Produktivsysteme von Windows nicht die beste Lösung, aber dennoch sehr performant für freie Betriebssysteme.
Hört sich in jedem Fall schon mal gut an!

Wo es bei mir vielleicht noch ein wenig hapert, ist beim verursachten Overhead durch das Verwenden von Qemu. Prinzipiel greift das Gastsystem (Beispielsweise Windows) direkt auf die Hardware zu ABER durch Qemu (was, wenn ich richtig verstanden habe, eine Art Übersetzer bzw. Emulator für die Hardware ist) werden zusätzliche Daten bzw. Informationen übertragen und bearbeitet, was in etwa 50% an der Geschwindigkeit ausmachen kann?!
Bitte um Korrektur, wenn ich hier was falsch verstanden habe.

Wäre VMWare für Windows als Produktivsystem besser geeignet, gerade für die Verwendung von Grafikprogrammen (Bildbearbeitung), Games etc.?

Des weiteren würde mich interessieren, warum bei der Kommunikation mit dem Hypervisor "nur" 2-5 Prozent an Leistung verloren gehen. Dort müssen im Prinzip ja auch erst einmal Daten übersetzt bzw. an die Hardware durchgereicht werden. Das hört sich im Vergleich zu 50% doch sehr beeindruckend an.

Grüße,
sTaN
 
Wo es bei mir vielleicht noch ein wenig hapert, ist beim verursachten Overhead durch das Verwenden von Qemu. Prinzipiel greift das Gastsystem (Beispielsweise Windows) direkt auf die Hardware zu ABER durch Qemu (was, wenn ich richtig verstanden habe, eine Art Übersetzer bzw. Emulator für die Hardware ist) werden zusätzliche Daten bzw. Informationen übertragen und bearbeitet, was in etwa 50% an der Geschwindigkeit ausmachen kann?!
Bitte um Korrektur, wenn ich hier was falsch verstanden habe.

Richtig, Vollvirtualisierung ist etwas irreführend, besser ist wohl der Begriff "Hardwareemulation" angebracht. Das ist mit die erste Virtualisierungstechnologie, die 1999 von VMWare verwendet wurde.

Grund: Die x86-CPU-Architektur ist nicht für Virtualisierung ausgelegt, dazu kommt das vier Ringe - Modell. Man muss daher bei einer Hardwareemulation einen riesigen Aufwand betreiben, um eine tatsächliche Virtualisierung herstellen zu können.

Im Detail: Jede CPU besitzt ein bestimmtes Befehlsregister, davon besitzt die x86-Architektur 17, die für die Virtualisierung kritisch sind. Hier muss der VMM (Virtual Machine Manager) kräftig arbeiten, um die Befehle entsprechend umsetzen zu können. Die meiste Performance geht also beim I/O flöten.


Grundkurs Ringmodell:
Viele 32-Bit Prozessoren besitzen 4 logische Ringe (andere besitzen sogar 8).

http://www.tu-chemnitz.de/urz/kurse/unterlagen/vmware/rsrc/CPU_ring_scheme.png

Diese 4 Ringe sind dazu da, um Permissions logisch einzuorden, wobei der Kernel eines Betriebssystems im Ring 0 läuft, während normale Anwendungen im Ring 3 angesiedelt sind. Während der Kernel also alles mögliche mit der CPU anstellen darf, besitzt die Software im Ring 3 die wenigstens Kompetenzen und muss im Bedarfsfall auf die Möglichkeiten des Kernels (eben im Ring 0) zugreifen.

Bestimmte Treiber laufen dabei auch mal gerne im Ring 1, optimierte Betriebssysteme schaffen es sogar, bestimmte Anwendungen sogar auf die Ringe 2 und 3 zu verteilen.

Bei der Paravirtualisierung verschiebt Xen als Hypervisor den Originalkernel einfach in den Ring 1, da dieser viele Berechtigungen eh nicht mehr benötigt (wir erinnern uns, Therma Hypercalls :) ). Die Anwendungen laufen jedoch wie gewohnt im User-Space (Ring 1-3) weiter.

Bei der Vollvirtualisierung (= Emulation der Hardware) muss der VMM jedoch sicherstellen, dass das Betriebssystem trotz keinem direkten Zugriff auf die Hardware immer noch denkt, es sei im Ring 0 und dürfe alles machen. Daher der große Overhead.

Xen ist dann performant, da die Anwendungen sich nicht erst wie bei der Vollvirtualisierung an den Kernel und dieser dann an den VMM wenden, sondern unter Xen greifen die Gäste über Hypercalls direkt auf den Hypervisor zu, der im Ring 0 hockt. Der Originalkernel des Gast-Betriebssystems ist daher teilweise entmachtet und übergangen.


Wäre VMWare für Windows als Produktivsystem besser geeignet, gerade für die Verwendung von Grafikprogrammen (Bildbearbeitung), Games etc.?
Denke schon, gut ist auch die Virtual Box :)



Des weiteren würde mich interessieren, warum bei der Kommunikation mit dem Hypervisor "nur" 2-5 Prozent an Leistung verloren gehen. Dort müssen im Prinzip ja auch erst einmal Daten übersetzt bzw. an die Hardware durchgereicht werden. Das hört sich im Vergleich zu 50% doch sehr beeindruckend an.

Siehe oben :) Ich hoffe, ich habe es gut genug erklärt.

Wenn du noch Fragen hast, einfach Fragen.

Achtung: Ich habe alles aus dem Kopf heraus geschrieben, wenn ich also irgendwo was falsches geschrieben habe, bitte darauf hinweisen. Danke!


Nachtrag:

64-Bit-CPUs besitzen im Übrigen nur 2 Ringe, der Hypervisor schiebt sich dann in den Ring 0, der Kernel läuft im User-Space (Ring 1) :D
Wobei es neuere CPUs gibt, bei denen der Hypervisor im Ring -1 läuft und der Gast-OS-Kernel wie gewohnt im Ring 0.
 
Last edited by a moderator:
Super Erklärung, danke!!!
Die ganze Theorie der Betriebssysteme etc. kommen im jetzigen Semester, daher noch etwas unbeholfen was die Hintergründe angeht.

Jetzt muss nur noch ein gescheites Board und CPU her, damit ich die Virtualisierung mal in den Angriff nehmen kann.

Gibt es aus deiner Erfahrung raus empfehlenswerte Literatur? Beispielsweise von Galileo Computing. Man findet allerhand, aber eingefleischte Kenner haben vielleicht einen speziellen Tipp ;-)

Edit: VirtualBox dient ja lediglich als Software zur Virtualisierung und es bedarf an einem Hostsystem, wie Windows, Linux etc. richtig? Durch diese Software, wird dann im Prinzip ein Prozessor simuliert...
 
Last edited by a moderator:
Gibt es aus deiner Erfahrung raus empfehlenswerte Literatur? Beispielsweise von Galileo Computing. Man findet allerhand, aber eingefleischte Kenner haben vielleicht einen speziellen Tipp ;-)


Ich seh schon, du hälst mich hier unter Vollbeschäftigung =)

Sehr gut sind folgende Bücher:
3836211181
3772372473

Achtung: Die Administration oder einen guten Umgang mit Xen lernst du damit weniger, die Literatur vermittelt dir lediglich ein sehr breites Hintergrundwissen.
Die Kenntnisse in der Administration kommen dann durch die Praxis.


Edit: VirtualBox dient ja lediglich als Software zur Virtualisierung und es bedarf an einem Hostsystem, wie Windows, Linux etc. richtig? Durch diese Software, wird dann im Prinzip ein Prozessor simuliert...

Xen, VMWare, Virtuozzo etc. benötigen ebenfalls ein Hostsystem, natürlich :)

Viele Infos dazu findest du hier:
http://de.wikipedia.org/wiki/VirtualBox
 
Last edited by a moderator:
Ich seh schon, du hälst mich hier unter Vollbeschäftigung =)

Sei mir nicht böse, aber so gute Fachkompetenz musste ich einfach ausnutzen! :D

Vielen Dank und meine Hochachtung für die ausführlichen und zeit intensiven Infos.

Gruß
sTaN
 
Back
Top