Virtualisierungstechnologien für Server

Virtuelle Maschinen bieten zahlreiche Vorteile gegenüber realen Maschinen: das betrifft sowohl die Sicherheit, als auch die Ressourcennutzung, die Gesamtkosten für den Serverbetrieb und die hohe Flexibilität, die virtuelle Maschinen im Gegensatz zu realen ermöglichen. Welche Virtualisierungstechnologien heute nutzbar sind, erklären wir kurz und übersichtlich in unserem Beitrag.

Übersicht über die wichtigsten Technologien zur Virtualisierung

Die wichtigsten heute eingesetzten Technologien zur Virtualisierung sind:

  • Hardware Emulation
  • Hardware Virtualisierung
  • Paravirtualisierung und
  • Betriebssystemvirtualisierung (Containervirtualisierung, Containerisierung)

Nachfolgend werden wir die einzelnen Technologien zur Virtualisierung und ihre Funktionsweise jeweils kurz besprechen.

Hardware Emulation

Die Hardware-Emulation emuliert die gesamten anfallenden Rechenoperationen, inklusive jener der CPU. Die Instruktionen in einem bestimmten Befehlssatz werden einfach auf einer anderen Maschine dargestellt. Die komplette Übertragung aller Rechenoperationen bedeutet natürlich einen gewissen Rechenaufwand, den man beim Einsatz dieser Technologie berücksichtigen sollte.

Hardware Virtualisierung

Bei der Hardware Virtualisierung werden Prozessoren emuliert – in den meisten Fällen mehrere parallel und für jedes verwendete Gastbetriebssystem einer. Bei physischen Mehrkern-Prozessoren können virutelle Prozessoren in einzelnen physischen Prozessorkernen nachgebildet werden.

Paravirtualisierung

Die Paravirtualisierung dient vor allem der effizenteren Ressourcennutzung. Durch den Einsatz von Paravirtualisierung lassen sich sehr ressourcenschonend mehrere Betriebssysteme auf einem Rechner parallel ausführen. Der Vorteil der Virtualisierung liegt vor allem darin, dass der Rechner nicht bei jedem Wechsel von einem Betriebssystem zum anderen neu gebootet werden muss.

Bei sehr großem Systemen kann die Virtualisierung über Paravirtualisierungs-Technologie auch eingesetzt werden, um das sehr große System virtuell in mehrere kleine Teilsysteme zu zerlegen, die nebeneinander laufen. Auf diese Weise lässt sich physische Hardware deutlich effizienter nutzen.

Betriebssystemvirtualisierung (Container Virtualisierung)

Als „Container“ wird ein Gastsystem bezeichnet. Bei der Containervirtualisierung laufen alle Gastsysteme auf dem gleichen Kernel. Das Gastsystem verwendet dabei das gleiche Betriebssystem wie der Host (eine Übersicht über Server-Betriebssysteme gibt es hier), dabei kann aber gegebenenfalls eine eigene Version (z. B. andere Linux-Distribution bei Linux-Systemen) verwendet werden.

Die Container Virtualisierung ist eine der am häufigsten eingesetzten Virtualisierungstechnologien.

Auswahlkriterien und Einsatzmöglichkeiten für die einzelnen Technologien

Ausschlaggebend für die Wahl einer bestimmten Virtualisierungstechnologie ist natürlich zunächst einmal der geplante Einsatzzweck. Wer Systeme mit einer anderen CPU-Architektur als jener der realen Maschine darstellen möchte, wird zwingend auf Hardwarevirtualisierung zurückgreifen müssen. Will man Systeme darstellen, die die gleiche CPU-Architektur haben, ist das nicht zwingend nötig – man kann dann auch auf die deutlich ressourcenschonendere und schnellere Hardware Virtualisierung zurückgreifen.

Hardware Virtualisierung ist die Technologie der Wahl, wenn man vor allem ressourcenschonend arbeiten möchte. Durch den Einsatz der Virtualisierung können nicht nur mehrere unterschiedliche Systeme sehr effizient parallel auf einer physischen Maschine laufen, sondern die Leistung der Hardware durch flexible Zuweisung von Ressourcen an die einzelnen virtuellen Systeme optimal ausgenutzt werden. Der Einsatz eines wirklich zuverlässigen und sicheren Hypervisors ist hier allerdings der kritische Punkt bei der Sicherheit solcher virtuellen Systeme und sollte unbedingt sichergestellt sein.

Paravirtualisierung arbeitet als Technologie zur Virtualisierung noch ein klein wenig ressourcenschonender und effizienter als die Hardware Virtualisierung. Die Emulation von Hardware entfällt völlig, das Gastsystem kommuniziert über eine Schnittstelle in diesem Fall direkt mit dem Hypervisor. Zusätzlich können einzelne Prozesse von anderen Prozessen auf dem gleichen Host abgetrennt und geschützt werden.

Die Betriebssystemvirtualisierung ist dagegen eine Virtualisierung auf der Ebene des Betriebssystems (im Gegensatz zur Hardware Virtualisierung, oder „VM“). Die einzelnen Container sind dabei strikt voneinander getrennt und arbeiten unabhängig voneinander, sodass sich in verschiedenen Containern laufende Anwendungen nicht gegenseitig stören. Die in den Containern laufenden Betriebssysteme sind allerdings kaum individuell anpassbar, es können auch ausschließlich Betriebssysteme des gleichen Typs wie das Hostsystem verwendet werden.

Bild von Edgar Oliver auf Pixabay