2009-03-07 6 views
2

Ich untersuche die Verwendung von virtuellen Maschinen, um mehrere Betriebssysteme zu hosten, und ich schaue mir die kostenlosen Lösungen an, von denen es viele gibt. Ich bin verwirrt, was ein Hypervisor ist und warum sind sie anders oder besser als eine "Standard" virtuelle Maschine. Wenn ich Standard meine, werde ich den Benchmark VMWare Server 2.0 verwenden.Was sind die Vorteile einer Hypervisor-VM?

Für ein Dual-Core-System mit 4 GB RAM, das bis zu 3 VMs ausführen kann. Welches ist die beste Wahl? Hypervisor oder Nicht-Hypervisor und warum? Ich habe bereits den Wikipedia-Artikel gelesen, aber die technischen Details sind über meinen Kopf. Ich brauche eine grundlegende Antwort darauf, was diese verschiedenen VM-Aromen für mich tun können.

Meine Hauptfrage bezieht sich darauf, wie ich Tests in mehreren Umgebungen durchführen würde. Ich bin besorgt über die Isolation von Betriebssystemen, sodass ich Anwendungen auf mehreren Betriebssystemen gleichzeitig testen kann. Welche Geschmacksrichtung gibt Ihnen einen Eindruck davon, wie eine echte Maschine funktioniert?

Ich betrachte die folgende:

(Hypervisor)

  • Xen
  • Hyper-V

(nicht-Hypervisor)

  • VirtualBox
  • VMWare Server 2.0
  • Virtual PC 2007

* Die Klassifikationen der VMs I aufgeführt sind möglicherweise nicht korrekt.

Antwort

5

Der Hauptunterschied besteht darin, dass Hyper-V nicht auf dem Betriebssystem ausgeführt wird, sondern zusammen mit dem System auf einer dünnen Schicht namens Hypervisor ausgeführt wird. Hypervisor ist eine Computerhardwareplattform-Virtualisierungssoftware, mit der mehrere Betriebssysteme gleichzeitig auf einem Hostcomputer ausgeführt werden können.

Viele andere Virtualisierungslösungen verwenden andere Techniken wie die Emulation. Für weitere Details siehe Wikipedia.

+0

Also bedeutet dies, dass Hypervisoren nicht so viel Isolation wie eine normale VM haben? Bedeutet dies auch, dass Defekte von der VM in das reale Betriebssystem bluten können? Wenn das der Fall ist, kann es sein, dass Hypervisoren nicht für eine Testumgebung geeignet sind. –

+0

@ Jeremy, es bedeutet völlig das Gegenteil. –

+0

sollten Sie wahrscheinlich auch KVM (Kernel Based Virtual Machine) einschließen. Es ist im Grunde ein Hypervisor, der in den Standardkernel von Linux Kernel integriert ist. Es ist seit 2.6.0 im Kernel enthalten. Weitere Informationen finden Sie unter http://www.linux-kvm.org/page/Main_Page –

5

Disclaimer, alles unten ist (breit) meiner Meinung nach.

Es ist hilfreich, einen virtuellen Computermonitor (einen Hypervisor) als einen sehr kleinen Mikrokernel zu betrachten. Es hat sehr wenige Jobs, die über den Zugriff auf die zugrunde liegende Hardware hinausgehen, wie z. B. die Überwachung von Ereigniskanälen und das Gewähren von Gastdomänen für den Zugriff auf bestimmte Ressourcen, während gleichzeitig eine Art Scheduler durchgesetzt wird.

Alle Gäste Maschinen sind völlig blind von den anderen, die Isolation ist wahr. Gäste teilen nicht die Erinnerung mit dem privilegierten Gast (oder einander). In diesem Fall könnten Sie also (in etwa) an jeden Gast (auch den privilegierten) als Prozess denken, was den VMM betrifft. In der Regel erhält der erste Gast zusätzliche Berechtigungen, damit er den Rest verwalten kann. Dies ist die ideale Technologie, wenn virtuelle Maschinen in Produktion gebracht und der Welt ausgesetzt werden.

Darüber hinaus können einige Gäste gepatcht werden, um auf den Hypervisor aufmerksam zu werden, wodurch die Leistung erheblich gesteigert wird.

Auf der anderen Seite haben wir Dinge wie VMWare und QEMU, die auf den Hostkernel angewiesen sind, um auf Bare-Metal zugreifen zu können und genügend Speicher zu haben. Sie gehen davon aus, dass allen Gästen eine komplette Maschine präsentiert werden muss, die Grenzen des Prozesses, die diese (mehr oder weniger) darstellen, werden zu den Grenzen der virtuellen Maschine. Ich sage mehr oder weniger, weil Device Mapper QoS nicht allgemein implementiert ist. Dies ist die ideale Lösung zum Testen von Code in einem anderen Betriebssystem oder einer anderen Architektur. Viele Leute nennen QEMU, Simics oder manchmal auch VMWare (je nach Produkt) einen Simulator.

Für Produktions-Rollouts benutze ich Xen, um etwas zu testen, das ich einfach kompiliert habe, verwende ich QEMU, Simics oder VirtualBox.

Wenn Sie nur neuen Code auf verschiedenen Betriebssystemen und Architekturen testen/rollen, empfehle ich # 2. Wenn Ihr Bedürfnis nach Introspektion besteht (d. H., Dass Sie die Erinnerung an den Gastgedächtnis sehen, wenn schlechte Programme in einem Gast laufen) ... würde ich mehr Erklärungen benötigen, bevor ich antworte.