Differenza tra Xen PV, Xen KVM e HVM?


53

So che Xen di solito è meglio di OpenVZ poiché il provider non può sovrastimare Xen. Tuttavia, ciò che è la differenza tra Xen PV, Xen KVMe HVM(mi stava attraversando di questo fornitore spec ? Qual è la migliore per quali scopi e perché?


Modificare:

Per un utente finale che ospiterà solo siti Web, che è meglio? Da efficienza o altro punto di vista, c'è qualche vantaggio dell'uno rispetto all'altro?

Risposte:


47

Xen supportava i tipi di virtualizzazione

Xen supporta l'esecuzione di due diversi tipi di ospiti. Gli ospiti Xen sono spesso chiamati domU (domini non privilegiati). Entrambi i tipi di ospiti (PV, HVM) possono essere utilizzati contemporaneamente su un singolo sistema Xen.

Xen Paravirtualization (PV)

La paravirtualizzazione è una tecnica di virtualizzazione efficiente e leggera introdotta da Xen, successivamente adottata anche da altre soluzioni di virtualizzazione. La paravirtualizzazione non richiede estensioni di virtualizzazione dalla CPU host. Tuttavia, i guest paravirtualizzati richiedono un kernel speciale che viene portato per essere eseguito nativamente su Xen, quindi gli ospiti sono a conoscenza dell'hypervisor e possono funzionare in modo efficiente senza emulazione o hardware di emulazione virtuale. I kernel guest Xen PV esistono per i sistemi operativi Linux, NetBSD, FreeBSD, OpenSolaris e Novell Netware.

I guest PV non hanno alcun tipo di hardware emulato virtuale, ma la console grafica è ancora possibile usando guest pvfb (framebuffer paravirtuale). La console grafica guest PV può essere visualizzata utilizzando il client VNC o il virt-viewer di Redhat. C'è un server VNC separato in dom0 per il PVFB di ciascun ospite.

Upstream kernel.org I kernel Linux da Linux 2.6.24 includono il supporto guest Xen PV (domU) basato sul framework pvops Linux, quindi ogni kernel Linux upstream può essere automaticamente utilizzato come kernel guest Xen PV senza ulteriori patch o modifiche.

Vedi la pagina wiki di XenParavirtOps per maggiori informazioni sul supporto Xen di Linux pvops.

Virtualizzazione completa Xen (HVM)

I guest HVM (Hardware Virtual Machine) completamente virtualizzati richiedono estensioni di virtualizzazione della CPU dalla CPU host (Intel VT, AMD-V). Xen utilizza la versione modificata di Qemu per emulare l'hardware completo del PC, inclusi BIOS, controller del disco IDE, adattatore grafico VGA, controller USB, adattatore di rete ecc. Per gli ospiti HVM. Le estensioni di virtualizzazione della CPU vengono utilizzate per migliorare le prestazioni dell'emulazione. I guest completamente virtualizzati non richiedono un kernel speciale, quindi ad esempio i sistemi operativi Windows possono essere utilizzati come guest Xen HVM. Gli ospiti completamente virtualizzati sono generalmente più lenti degli ospiti paravirtualizzati, a causa dell'emulazione richiesta.

Per migliorare le prestazioni, gli ospiti HVM completamente virtualizzati possono utilizzare speciali driver di dispositivo paravirtuale per bypassare l'emulazione per l'IO del disco e della rete. I guest Xen Windows HVM possono utilizzare i driver GPLPV opensource. Vedi la pagina wiki di XenLinuxPVonHVMdrivers per maggiori informazioni sui driver Xen PV-on-HVM per i guest HVM di Linux.

Questo è tratto da http://wiki.xenproject.org/wiki/XenOverview

KVM non è affatto Xen, è un'altra tecnologia, in cui KVM è un modulo kernel nativo Linux e non un kernel aggiuntivo, come Xen. Il che rende KVM un design migliore. il rovescio della medaglia qui è che KVM è più recente di Xen, quindi potrebbe mancare alcune funzionalità.


9
+1 KVM non è affatto Xen. Non è assolutamente d'accordo sul fatto che KVM sia un design migliore. Xen fornisce un isolamento molto migliore e non dipende dal kernel Linux e dalle sue potenziali vulnerabilità.
Antoine Benkemoun,

2
Grazie per le informazioni! Non riuscivo a capire tutto. Dal punto di vista dell'utente finale, chi ospiterà i siti Web, che è meglio? C'è un vantaggio significativo dell'uno rispetto all'altro?

2
Xen ha le sue vulnerabilità. Ma eseguire un sistema operativo con due kernel avviati è un difetto di progettazione, non importa quanto bene lo fai
dyasny

1
JP19: dipende dai siti Web. Se riesci a definire il carico sul VPS, puoi chiedere qui o google la soluzione migliore.
dyasny,

2
Xen è un hypervisor, così come KVM. KVM ha dispositivi fotovoltaici e ne aggiunge di più nel tempo, inoltre consente il passthrough PCI. Quindi non vedo il punto della tua discussione, Nils
dyasny

32

Xen è un hypervisor che gira su metal (il pc / server) e quindi ospita macchine virtuali chiamate domini.

Un Xen PVdominio è un dominio paravirtualizzato , ciò significa che il sistema operativo (di solito stiamo parlando di Linux qui) è stato modificato per funzionare con Xen e non è necessario emulare effettivamente l'hardware. Questo dovrebbe essere il modo più efficiente di andare, per quanto riguarda le prestazioni.

Un Xen HVMdominio è un dominio emulato dall'hardware , ciò significa che il sistema operativo (potrebbe essere Linux, Windows, qualunque cosa) non è stato modificato in alcun modo e l'hardware viene emulato. Questo è piuttosto lento, quindi di solito installi i driver PV nel sistema operativo guest per l'hardware critico (di solito su disco e rete), quindi il guest nel suo insieme verrà completamente virtualizzato ma i componenti hardware più critici verranno eseguiti in modo paravirtualizzato. I sistemi Linux recenti hanno driver pv sia per il disco che per la rete nel kernel, e esistono anche vari driver PV per Windows. Con tutto lo sviluppo su HVM negli ultimi anni, di solito c'è poca differenza nelle prestazioni tra HVM e PV per carichi di lavoro standard.

KVMnon è Xen, è un'altra piattaforma di virtualizzazione costruita all'interno del kernel Linux. Dal punto di vista dell'ospite assomiglia a Xen HVM: l'ospite viene eseguito completamente virtualizzato e ci sono driver specifici per eseguire alcune parti paravirtualizzate (di nuovo, disco e rete).

Sia Xen HVM che Linux KVM necessitano del supporto di virtualizzazione assistita da hardware (Intel VT-x, AMD AMD-V), mentre Xen PV non funziona ma non può eseguire sistemi operativi senza supporto PV (non è possibile eseguire Windows su Xen PV).

Sia Xen HVM che Linux KVM utilizzeranno parti del software di virtualizzazione qemu per emulare l'hardware effettivo per i dispositivi che non utilizzano i driver PV nel sistema guest.

Xen (sia PV che HVM) può eseguire la migrazione in tempo reale di un guest in esecuzione da un server fisico a un altro, non so se anche KVM può farlo.

Sia Xen che KVM non possono sovraccaricare la memoria, quindi di solito ottieni "vera RAM", mentre altre piattaforme come VMware possono scambiare parte del ram guest su disco.

Esistono differenze, ma in genere si applicano a installazioni specifiche e non al server privato virtuale generico in vendita ad altre persone. Ad esempio, i recenti hypervisor Xen supportano la memoria trascendente che potrebbe migliorare l'utilizzo della memoria e le prestazioni del guest se il guest ha il supporto (kernel Linux> = 3.qualcosa).

Tutte queste tecnologie ti daranno un'ottima esperienza se implementate correttamente e non faranno una grande differenza dal tuo punto di vista. Naturalmente, ci sono mille modi in cui le cose possono andare storte e non sono correlate alla soluzione di virtualizzazione specifica (ad esempio, il tuo guest potrebbe essere archiviato su dischi lenti e ciò danneggerebbe le tue prestazioni).


3
KVM può sovraccaricare la memoria, così come Xen.
dyasny,

@dyasny Non conosco KVM ma sono abbastanza sicuro che Xen non possa sovraccaricare la memoria nel vero senso della parola (consentire una dimensione massima diversa è una cosa diversa). Collega le tue fonti se ritieni che lo faccia.
Luke404,

Xen supporta il balooning. Aggiungi lo swap standard a questo e hai già almeno 2 meccanismi di overcommit. È vecchio come il 2008: blog.xen.org/index.php/2008/08/27/…
dyasny il

3
@dyasny probabilmente pensi al sovraccarico come a consentire un massimo più alto. AFAIK, il significato accettato è di allocare effettivamente agli ospiti più memoria di quella fisicamente presente nell'host, e questo non è implementato in Xen. Non è possibile sgonfiare un fumetto guest (ad es. Dargli più memoria) se non si dispone di memoria fisica disponibile nell'host e non è possibile avviare un nuovo guest se è già stata allocata tutta la memoria host (a meno che non si gonfia facendo funzionare i palloncini degli ospiti, riducendo così la memoria allocata in modo da non sovraccaricare nulla).
Luke404,

1
Penso al sovraccarico in quanto non solo consente più di quanto l'host ha fisicamente, ma anche come effettivamente utilizza più dell'host fisicamente. Lo scambio è orribile, ma è un meccanismo che ti consente di allocare più pagine di memoria di quante ne hai fisicamente su un host, sia per processi che per macchine virtuali, non importa. Questo è quanto andrò in semantica su questo.
dyasny,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.