Domanda

Sto cercando di utilizzare macchine virtuali per ospitare più sistemi operativi e sto cercando le soluzioni gratuite che ce ne sono molte. Sono confuso da cosa sia un hypervisor e perché siano diversi o migliori di uno "standard" macchina virtuale. Quando intendo standard userò la macchina virtuale di riferimento VMWare Server 2.0.

Per un sistema dual core con 4 GB di RAM che sarebbe in grado di eseguire un massimo di 3 VM. Qual è la scelta migliore? Hypervisor o non hypervisor e perché? Ho già letto l'articolo di Wikipedia ma i dettagli tecnici sono sopra la mia testa. Ho bisogno di una risposta di base su cosa possono fare queste diverse versioni di VM.

La mia domanda principale riguarda come farei i test su più ambienti. Sono preoccupato per l'isolamento dei sistemi operativi in ??modo da poter testare le applicazioni su più sistemi operativi contemporaneamente. Inoltre, quale sapore offre un'esperienza più ravvicinata di come funziona una macchina reale?

Sto considerando quanto segue:

(hypervisor)

  • Xen
  • Hyper-V

(non-hypervisor)

  • VirtualBox
  • VMWare Server 2.0
  • Virtual PC 2007

* Le classificazioni delle macchine virtuali che ho elencato potrebbero non essere corrette.

È stato utile?

Soluzione

La differenza principale è che Hyper-V non viene eseguito sul sistema operativo, ma insieme al sistema viene eseguito su un livello sottile chiamato hypervisor. Hypervisor è un software di virtualizzazione della piattaforma hardware che consente l'esecuzione simultanea di più sistemi operativi su un computer host.

Molte altre soluzioni di virtualizzazione utilizzano altre tecniche come l'emulazione. Per maggiori dettagli vedi Wikipedia .

Altri suggerimenti

Dichiarazione di non responsabilità, tutto quanto sotto è (in generale) la mia opinione.

È utile considerare un monitor di una macchina virtuale (un hypervisor) come un microkernel molto piccolo. Ha pochissimi lavori oltre all'accesso all'hardware sottostante, come il monitoraggio dei canali degli eventi e la concessione dell'accesso ai domini ospiti a risorse specifiche ... applicando un qualche tipo di scheduler.

Tutte le macchine guest sono completamente ignare delle altre, l'isolamento è vero. Gli ospiti non condividono la memoria con l'ospite privilegiato (o tra di loro). Quindi, in questo caso, potresti (approssimativamente) pensare a ciascun ospite (anche a quello privilegiato) come a un processo, per quanto riguarda VMM. In genere, il primo ospite ottiene privilegi extra in modo che possa gestire il resto. Questa è la tecnologia ideale da utilizzare quando le macchine virtuali vengono messe in produzione ed esposte al mondo.

Inoltre, alcuni ospiti possono essere patchati per prendere coscienza dell'hypervisor, aumentando in modo significativo le loro prestazioni.

D'altra parte abbiamo cose come VMWare e QEMU, che si basano sul kernel host per dargli accesso a bare metal e memoria sufficiente per esistere. Presumono che tutti gli ospiti debbano essere presentati con una macchina completa, i limiti posti sul processo presentandoli (più o meno) diventano i limiti della macchina virtuale. Dico più o meno perché QoS Device Mapper non è comunemente implementato. Questa è la soluzione ideale per provare il codice in alcuni altri sistemi operativi o altre architetture. Molte persone chiameranno QEMU, Simics o talvolta VMWare (a seconda del prodotto) un "simulatore".

Per i roll-out di produzione uso Xen, per testare qualcosa che ho appena compilato uso QEMU, Simics o VirtualBox.

Se stai solo testando / implementando il nuovo codice su vari sistemi operativi e architetture, consiglio vivamente il n. 2. Se hai bisogno di introspezione (ovvero guardare la memoria dell'ospite cambiare mentre programmi errati vengono eseguiti in un ospite) ... Avrei bisogno di ulteriori spiegazioni prima di rispondere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top