[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: kvm - Vollvirtualisierung oder Paravirtualisierung?



On 08/10/2010 07:38 AM, Alexander Dahl wrote:
> Moin,
> 
> Am 09.08.2010 10:12, schrieb Andre Tann:
>> wie kann man denn bei einer mit kvm virtualisierten Maschine sehen, ob
>> sie voll- oder paravirtualisiert läuft? 
> 
> Ich dachte, KVM setzt die Virtualisierungsfeatures des Prozessors voraus
> und unterstützt daher gar keine Paravirtualisierung? Bin ich da einem
> Irrtum aufgesessen?

Das ist so korrekt, allerdiengs bedeutet Paravirtualisierung nicht
ausscließlich CPU, sondern es geht hier auch um I/O. Also zum Beispiel
direkten Zugriff auf den SATA Bus oder direkt Zugriff auf die netzwerkkarte.

Für die CPU wird Hardwarevirtualisierung benötigt. Für Zugriff auf den
IDE/SATA/SCSI Bus und Netzwerkkarte müsste KVM bzw. Qemu dan ein
vollständiges Gerät emulieren. Und das Gast System spricht dieses Gerät an.

Dadurch wäre dann gerade I/O auf festplatte und Netzwerk ziemlich
langsam. Xen nutzt hier auch Paravirtualisierung wodurch es in dem
Bereich schnell ist.

KVM kann das aber auch. Funktioniert aber leicht anders. Bei KVM wird
dem Gast System spezielle Hardware zur Verfügung gestellt. Anstatt also
das Gast System eine Realtek oder Intel Karte etc. sieht, sieht es ganz
spezielle Geräte. Das sind dann die "Virtio" Geräte. Der Gast muss dann
hierfür spezielle Treiber haben. Hat es diese greift das Gast System
also genauso nahezu direkt auf die Hardware zu wie bei einer
Paravirtualisierung unter Xen.

Vorteil ist halt das du nicht das Gast System direkt anpassen musst. Es
benötigt halt spezielle Treiber. In Linux sind die Treiber seit 2.6.26
dabei. Für Windows gibt es aber auch Virtio Treiber.

Wenn man also sehen möchte ob ein Gast System die Paravirtualisierung
nutzt muss man nur schauen ob das Gastsystem die "Virtio" Treiber nutzt.
Bzw ob der Host das Gastsystem mit solchen Treibern startet.

http://wiki.libvirt.org/page/Virtio


Reply to: