• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Paravirtualisierung und XenServer von Citrix

fio2100

Newbie
Ich habe folgendes Problem mit XenServer von Citrix:

Für mich ist es nicht ersichtlich ob XenServer von Citrix wirklich so paravirtualisiert wie ich mir das vorstelle. Erstmal definire ich Paravirtualisierung so das in dem Gastsystem ein angepasster Kernel verwendet wird und das z.B. beim Bootvorgang kein Bootloader geladen wird sondern es direkt los geht mit dem Kernel. Jetzt ist das bei Citrix so das ich nicht genau erkennen kann ob dort die Paravirtualisierung die ich kenne betrieben wird.

Das Grundsätzliche Problem sind die Marketingbegriffe, selbst VMWare kann angeblich paravirtualisieren. Die benutzen dieses Wort einfach für was anderes. Bei Citrix gibt es Paravirtualisierte Treiber für Windows... Was soll das bitteschön sein und wie soll das Funktionieren? Das Betriebssystem selbst wird über die CPU virtualisiert und einzelne Treiber kommunizieren direkt mit dem Wirtsystem?

Vielleicht kann mir ja einer bei meinen Fragen helfen. Ich würde mich auch sehr über eine offizielle Quelle freuen die mir sagt wie genau Citrix die Paravirtualisierung betreibt, oder ist alles doch nur Vollvirtualisierung über die CPU?

Gruß fio
 
fio2100 schrieb:
Für mich ist es nicht ersichtlich ob XenServer von Citrix wirklich so paravirtualisiert wie ich mir das vorstelle.
Voraussetzung ist erstmal eine passende CPU (siehe auch im BIOS!) und ein passender Kernel. Ich würde dazu hier mal nachlesen:
http://openbook.galileo-press.de/ubuntu/ubuntu_22_virtualisierung_002.htm

fio2100 schrieb:
Erstmal definire ich Paravirtualisierung so das in dem Gastsystem ein angepasster Kernel verwendet wird und das z.B. beim Bootvorgang kein Bootloader geladen wird sondern es direkt los geht mit dem Kernel.
So einfach kann man das nicht definieren. Die Paravirtualisierung verlangt einen angepassten Kernel, korrekt. Des weiteren unterscheidet sich die Technik der Virtualisierung. Bei der Voll-Virtualisierung muss die gesamte Hardware simuliert werden, der Gast benötigt entsprechende Treiber dafür. Bei PV ist ein Hypervisor zwischengeschaltet, der das direkte Ansprechen der Hardware ermöglicht, deshalb ja der spezielle Kernel.

fio2100 schrieb:
Jetzt ist das bei Citrix so das ich nicht genau erkennen kann ob dort die Paravirtualisierung die ich kenne betrieben wird.
Sieh dir doch die Hardware im Gast an. Ausserdem legst du das in der Konfig selbst fest, was Xen tun soll - siehe "builder="hvm" oder "linux". Im ersteren Fall hast du FV (Fullvirtualisierung).

fio2100 schrieb:
Das Grundsätzliche Problem sind die Marketingbegriffe, selbst VMWare kann angeblich paravirtualisieren. Die benutzen dieses Wort einfach für was anderes. Bei Citrix gibt es Paravirtualisierte Treiber für Windows... Was soll das bitteschön sein und wie soll das Funktionieren? Das Betriebssystem selbst wird über die CPU virtualisiert und einzelne Treiber kommunizieren direkt mit dem Wirtsystem?
Du sprichst vom VMware ESX Server? Der ist so ein Zwischending zwischen FV und PV. Der hat ebenfalls einen eigenen Kernel, benötigt aber im Gastsystem spezielle Hardware-Treiber und läuft daher nur auf "ausgesuchter" Hardware. VMware Workstation macht hingegen FV, so wie auch MS Virtual Server und -PC. Bei VirtualBox bin ich mir nicht sicher, da ich es nicht weiter kenne.

fio2100 schrieb:
Ich würde mich auch sehr über eine offizielle Quelle freuen die mir sagt wie genau Citrix die Paravirtualisierung betreibt, ...
Hier ist ein sehr schöner praxisbezogener Einstieg ins Thema:
http://www.heise.de/ct/artikel/Xen-Meister-291710.html


Als weitergehende Lektüre empfehle ich das Buch "Xen Virtualisierung unter Linux" von OpenSource Press.
 
OP
F

fio2100

Newbie
Erstmal vielen Dank opensuselexa für deine Ausführliche Antwort und das du dich dem Thema angenommen hast. Und bei Citrix habe ich den Hacken genau in der Hardware entdeckt. Wenn ich einen Xen Kernel nutze egal ob mit OpenSuse, Redhat oder Debian kann ich Paravirtualisierung unabhängig von der Hardware betreiben. Selbst auf einen alten Thunderbird der noch nie was von VT gehört hat kann ich paravirtualisierung. Voraussetzung ist natürlich ein angepasster Gast Kernel (Bei Windows schwer ;) ).

Bei den Gerätetreibern ist es doch so, dass es unabhängig davon ist ob ich Vollvirtualisiere oder Paravirtualisiere. In beiden Fällen werden den Gästen die selben Geräte (bsp. Netzwerkkarte) angezeigt. Außer ich weise bei einem paravirtualisierten Gast bsp. direkt die PCI Netzwerkkarte dem Gast zu, dann muss er selbst den entsprechenden Treiber laden. (Sonst läd er auch einen Treiber, nur halt immer dem selben für alle Karten die ich simulieren möchte).


Nochmal zu Cirtx und auf meine Grundsätzliche Frage ob Cirtix wirklich Paravirtualisiert. Ich habe mit dem freien Cirtix XenServer Produkt eine OpenSuse Maschine aufgesetzt und konnte die Option nicht finden mit der ich diesen Gast tatzächlich paravirtualisiert starten kann. Also die Option "builder=linux". So wurde meiner Meinung nach ein Linux Produkt Vollvirtualisiert betrieben.
 
fio2100 schrieb:
Selbst auf einen alten Thunderbird der noch nie was von VT gehört hat kann ich paravirtualisierung. Voraussetzung ist natürlich ein angepasster Gast Kernel.
Xen benötigt für PV die PAE Erweiterungen und für FV braucht er Intel VT oder AMD Pacifica. Ich weiss nicht ad hoc, was davon der Thunderbird Kern beherrscht, aber sicher kein VT :D Das war doch der gute alte Sockel-A Athlon XP bzw. Duron, oder?

fio2100 schrieb:
Bei den Gerätetreibern ist es doch so, dass es unabhängig davon ist ob ich Vollvirtualisiere oder Paravirtualisiere. In beiden Fällen werden den Gästen die selben Geräte (bsp. Netzwerkkarte) angezeigt....
Nein. Bei der FV werden alle Hardware-Zugriffe der VM an einen sog. VMM (Virtual Machine Monitor) über die darüber liegende simulierte (!) Hardware durchgereicht: OS (Linux,Windows,OS/2) -> Gast-Kernel u. simulierte HW + Treiber -> VMM -> Host-Kernel -> echte Hardware.

Vielleicht erkläre ich das zu umständlich. In der Praxis äussert sich das so, dass jeder voll virtualisierte Gast immer eine z.B. eine S3 Grafikkarte hat, egal ob darunter eine echte ATI, nVidia, Matrox oder sonstwas liegt. Selbiges mit Netzwerkkarten. Hier macht sich auch gleich ein neues Problem der FV auf: Teilweise können die simulierten Netzwerkkarten im Gast gerade mal 10Mbps - statt 100 oder sogar 1.000, wie es die Hardware eigentlich kann! In z.B. MS Virtual-PC haben alle VMs eine DCI Netzwerkkarte, egal ob drunter eine "echte" 3com od. Intel oder auch nur ein loopback liegen. USB gibt es dort gar nicht, ganz zu schweigen von ISDN Karten o.ä.

Bei der PV (die ja nur mittels angepasstem Kernel möglich ist) sieht der Gast die Hardware, die tatsächlich da ist (soweit ihm das in der Config zugewiesen wurde).

fio2100 schrieb:
Ich habe mit dem freien Citrix XenServer Produkt eine OpenSuse Maschine aufgesetzt und konnte die Option nicht finden mit der ich diesen Gast tatzächlich paravirtualisiert starten kann. Also die Option "builder=linux". So wurde meiner Meinung nach ein Linux Produkt Vollvirtualisiert betrieben.
Ja, davon gehe ich auch aus und es ist auch der Normalfall, denn wie soll OpenSuSE den Kernel von XenServer nutzen? Mittels "lspci" (im Gast angewendet) kannst du das verifizieren. Wenn die Angaben nicht zur echten HW passen (z.B. Chipsatz), hast du FV.

Der nächste Anhaltspunkt sind die Logfiles des Xen-Daemons, guck mal unter /var/log/xen/xend.log. Irgendwo wird die VM erstellt (XenDoaminInfo.create...), dann erscheint "Adding Domain: 1" und einige Zeilen darunter schliesslich "os=hvm".

In der Dom0 kannst du mal "xm dmesg" eingeben und nach Hinweisen zur Funktionalität des XenServer fahnden. Ich habe dazu jedoch keine verlässliche Doku gefunden.

Ich bin kein Xen Profi und versuche mal zu ordnen, worauf es ankommt:

Ich glaube, ich weiss jetzt, wo dein Problem liegt. Und meines, weil ich den XenServer nicht nutze: Die grundsätzliche Frage lautet doch: Wie hast du den Gast installiert bzw. ist XenServer eine Dom0? Wenn ja, dann muss es irgendwo Konfigurationsdateien für die Gäste (DomU) geben und du musst beim Erstellen der DomU festgelegt haben ob es ein FV oder PV Gast ist. Dann findest du auch die beschriebene Option "builder=...". Wenn nein, dann musst du selbst eine Dom0 erzeugen, indem du ein Linux installierst und ggf. die nötigen Pakete nachinstallierst. Wenn du den ct Artikel liest, steht am Ende beschrieben, warum das nicht immer glatt läuft: "Xen und der Linux-Kernel".

Ich behaupte mal: Wenn du z.B. ein Debian als Basis (Dom0) hast, müssen auch die Gäste (DomU) Debian sein, da sie den Kernel der Dom0 nutzen.

Meine Erfahrungen basieren auf fertige Xen-fähige Linux-Distributionen, wie z.B. c't Debian Server oder auch OpenSuSE (auch, weil es den XenServer zu meinem Einstieg noch nicht gab). Dort ist die Dom0 fix und fertig für den Einsatz und bringt alle wichtigen Werkzeuge mit. Für den Einstieg schlage ich vor, du installierst dir ein OpenSuSE (11.2 ist gerade frisch draussen) und stellst nach der Installation auf den virtualisierten Betrieb um (ist mit YaST ganz fix erledigt). Dann bootest du neu. Nun hast du im Boot-Menü einen neuen Eintrag "SuSE mit Xen-Kernel" oder so ähnlich, den startest du und dann hast du ein PV-OpenSuSE als Dom0, welches weitere Gäste (DomU) beherbergen kann. Der Vorteil ist (sofern man einen Fenster-Manager verwendet): man kann per Klick&Klack ganz einfach neue DomUs erstellen (PV und FV!) und installieren, stoppen, ausschalten, beobachten, killen, einschläfern usw.

Für Puristen ist evtl. der c't Debian Server die bessere Wahl (nur Console, nur das Nötigste, kein X-Window). Aber dann musst du sehr viel händisch machen, was nur einen begrenzten Spassfaktor hat, weil Xen nicht besonders gut dokumentiert ist oder besser gesagt: Xen ist ziemlich schlecht dokumentiert. Ich weiss nicht, ob Citrix sich inzwischen um dieses Thema verdient gemacht hat. Mit dem c't Artikel gelingt der Einstieg aber ganz gut und die ersten PV VMs sind ruck-zuck am Laufen, laden aber nicht grossartig zum Experimentieren ein. Auch mit Ubuntu und Debian sollte der Xen Betrieb funktionieren. Bei Red Hat aka CentOS wird IMHO der KVM bevorzugt.

Alles ohne Gewähr. Das Thema ist sehr komplex und ich kann nicht alles verifizieren. Selbst in normalerweise verlässlichen Quellen stecken zum Teil grosse Widersprüche. So hat laut Meldung vom Linux Kernel (cat /proc/cpuinfo) mein QuadCore Q9400 keine VT Unterstützung und nur 3MB Cache. Laut Intel hat er 6MB Cache und kann natürlich VT. Und dass meine Behauptung mit dem PAE (s.o.) korrekt ist, passt nicht zum vor mir liegenden Buch :D
 
OP
F

fio2100

Newbie
Xen benötigt für PV die PAE Erweiterungen und für FV braucht er Intel VT oder AMD Pacifica. Ich weiss nicht ad hoc, was davon der Thunderbird Kern beherrscht, aber sicher kein VT :D Das war doch der gute alte Sockel-A Athlon XP bzw. Duron, oder?

Ich weiß es nicht ist auf jeden Fall PAE und hat bei mir gerade mal 100Mhz Bus Tacktung. OpenSuse mit Paravirtualisierten Gästen läuft aber. Was auch den enormen Vorteil von Paravirtualisierung aufzeigt.

Ich bedanke mich sehr für dein Großes bemühen mir die Virtualisierung nahe zu bringen und du hast das auch super anschaulich dargestellt, aber ich bin auch kein Xen Neuling mehr. Ich beschäftige mich im Rahmen meiner Diplomarbeit jetzt schon seit knapp einem halben Jahr mit dem Thema und hab auch eine Virtualisierung von Linux-File-Servern umgesetzt (auf Basis von OpenSuse). Läuft alles super mit ein paar PowerEdge Servern von Dell ;). Da kannst du mal locker zwanzig Virtuelle Maschinen parallel laufen lassen. Hab auch ein kleines webbasiertes Administrationstool dazu geschrieben.

Der Grund für das besondere Interesse an Cirix war einfach, das ich Vergleichssysteme Testen musste. Hab auch eisxen und Fedora mit Enomalism getestet (falls dir Enomalism was sagt), nur bei Cirtix kam mir das mit der Paravirtualisierung so spanisch vor. Ich will jetzt nicht behaupten das es eine Mogelpackung ist, aber ob es wirklich so Paravirtualisieren kann wie OpenSuse mit Xen Kernel konnte ich nicht genau feststellen. Offiziell gibts von Cirtix auch nur die Erklärung wie Paravirtualisierung funktioniert und keinen konkreten Hinweis, hier Leute so gehts und wir machen das. Stattdessen nur Worte wie paravirtualisierte Treiber für Windows (meiner Meinung nach reines Marketing). War aber auch nicht tragisch das Cirtix für die Virtualisierung von OpenSuse Gästen nicht in Frage kam, haben wir halt Lizenzkosten gespart ;).

Nochmal Danke für deine Mühe.

Gruß fio
 
Oben