Seitdem die Entkopplung von Hard- und Software bei Netzwerkgeräten den Übergang von traditionell starren und kostenintensiven Netzwerkkomponenten und damit verbundenen Netzwerkfunktionen hin zu einem agilen und flexiblen Einsatz von Ressourcen ermöglicht, ist die Virtualisierung von Netzwerkfunktionen zu einem vielversprechenden Ansatz im Bereich der Netzwerktechnik gereift, um sowohl Anforderungen in der nahen als auch in der fernen Zukunft gerecht zu werden. Dieser aktuelle Ansatz zur Gestaltung eines Netzwerks und der damit verbundenen Komponenten ist unter dem Begriff Network Functions Virtualisation (NFV) bekannt, der vom European Telecommunications Standards Institute (ETSI) eingeführt und spezifiziert wurde. Für die Virtualisierung einer Netzwerkfunktion ist es offensichtlich, dass die Virtualisierung selbst das Schlüsselelement ist, um das NFV-Konzept in einen praktischen Bezug zu setzen. Ausgehend von der ETSI Spezifikation wird eine Netzwerkfunktion in eine Virtual Network Function (VNF) umgewandelt und in virtualisierten Umgebungen, vor allem in Cloud-Umgebungen, eingesetzt.
Die Möglichkeit, Rechenressourcen über ausgereifte Technologien zu virtualisieren, führt zu einem innovativen Ansatz, um ein Netzwerk und seine Komponenten für zukünftige Einsätze neu zu gestalten. NFV bietet hoch automatisierte Mechanismen für den bedarfsgerechten Zugriff auf virtualisierte Netzwerkfunktionen.
Virtualisierungstechnologien
Generell wird in der Literatur Virtualisierung auf die bekannte und recht ausgereifte Technologie der Server-Virtualisierung bezogen. Dabei werden auf dem Server verschiedene Instanzen gebildet, die sich Ressourcen wie Prozessorleistung oder Speicherplatz teilen, was den Anwendungen innerhalb der Instanzen jedoch verborgen bleibt. Der Einsatz einer Virtualisierungstechnologie zielt auf eine höhere Effizienz und kostengünstigere Lösungen ab, indem von „Hardwareunabhängigkeit, Isolierung, sicheren Benutzerumgebungen und erhöhter Skalierbarkeit“ [RF] profitiert wird. Gleichzeitig muss jedoch mit einer geringeren Leistung im Vergleich zu vormals etablierten Bare-Metal-Infrastrukturen gerechnet werden. Um den neuen Herausforderungen mit intelligenten Konzepten und fortschrittlichen Techniken entgegenzutreten, steht heute eine breite Palette verschiedener Virtualisierungstechnologien zur Verfügung.
So steht die Virtualisierung vor der Herausforderung, dass sowohl die Leistung als auch die Isolation sinnvoll gesteuert werden muss. Ein Maximum an Isolation führt zu einer schlechteren Performance, aber da immer ein Maximum an Performance angestrebt wird, sind kreative Strategien gefragt, damit die Isolation von virtualisierten Instanzen und die daraus resultierenden Sicherheitsaspekte nicht vernachlässigt werden. Insgesamt lassen sich Virtualisierungstechniken in eine „Hypervisor-based“ und eine „Non-Hypervisor-based“ Virtualisierung einteilen. In diesem Tech-Blog konzentrieren wir uns zunächst auf die Grundlagen der Hypervisor-basierten Konzepte.
Hypervisor-basierte Konzepte
Ein Hypervisor ist eine Schicht, die auf einer einzelnen physischen Infrastruktur bereitgestellt wird. Er ermöglicht eine abstrahierte Sicht auf die Hardware, die den Einsatz mehrerer und parallellaufender Betriebssysteme ermöglicht. Der Hypervisor erlaubt den Betriebssystemen die gleichzeitige Nutzung der vorhandenen Hardwareressourcen, teilt sie aber in isolierte Bereiche ein und lässt die Systeme als autarke Maschinen erscheinen.
Die vier Berechtigungsstufen („Privilege Level“)
Um das Verständnis beider Ansätze zu vertiefen, muss man die bestehenden hierarchischen Beziehungen und Berechtigungsstufen von Hardware-Ressourcen, Betriebssystem, Gerätetreibern und Anwendungen einer Computerarchitektur berücksichtigen. Die folgende Abbildung zeigt ein grundlegendes Modellierungsbeispiel, das auf einer Bare-Metal x86-Hardwarearchitektur angewendet wird.
Berechtigungsstufen bei einer x86 Architektur [CRH17]
Die Komponenten dieser Architektur werden auf vier Berechtigungsstufen abgebildet, beginnend mit der höchsten Priorität Null für das Betriebssystem und endend mit der niedrigsten Priorität für die Anwendungen mit der Berechtigungsstufe drei. Anstelle der Stufen wird in der Literatur oft auch der Begriff Ringe verwendet, was lediglich eine andere schematische Darstellung ist.
Vollständige Virtualisierung
„Vollständig“ bezieht sich an dieser Stelle auf die Entkopplung von Hard- und Software. Wie die folgende Abbildung zeigt, wird eine Virtualisierungsschicht auf der Hardware mit der Berechtigungsstufe 0 und mehrere Gastbetriebssysteme mit der Berechtigungsstufe 1 integriert.
Berechtigungsstufen bei der vollständigen Virtualisierung [CRH17]
Der Hypervisor bzw. der Virtual-Machine-Manager interagiert direkt mit der Hardware und gibt jedem Gastbetriebssystem die Möglichkeit, so zu arbeiten, als hätte es direkten Zugriff auf die zugrundeliegende Hardware. So wird beispielsweise jeder Speicherzugriff, jede Ein-und Ausgabe oder jede Unterbrechungsroutine vom Hypervisor gesteuert. So wird sichergestellt, dass sich die Gastbetriebssysteme gegenseitig nicht bemerken. Dieses Modell bietet die beste Isolierung und Sicherheit bei einer Verschlechterung der Leistungsindikatoren. Die ursprüngliche vollständige Virtualisierung, die ihre Wurzeln in den späten 1990er Jahren hat, hat in der heutigen Praxis keine Relevanz mehr.
Paravirtualisierung
Um Leistungsverluste zu minimieren, ermöglicht die Paravirtualisierung die direkte Interaktion mit der Hardware bei zeitkritischen Funktionen durch die Einführung von Hypervcalls. Dies führt zu einem abgewandelten Berechtigungs-Modell (siehe Abbildung unten). Hypervcalls basieren auf Application Programming Interfaces (APIs), die vom Hypervisor bereitgestellt werden. Das Gastbetriebssystem in jeder virtuellen Maschine (VM) führt API-Aufrufe aus, um Virtualisierungsfunktionen des Hypervisors zu nutzen und direkt (siehe weiße Pfeile in der Abbildung unten) mit den Hardware-Ressourcen zu interagieren.
Berechtigungsstufen bei der Paravirtualisierung [CRH17]
Im Gegensatz zur vollständigen Virtualisierung kennen sich die auf dem System laufenden Gastbetriebssysteme untereinander (siehe weißer horizontaler Pfeil) und teilen sich die gemeinsamen Hardware-Ressourcen. Da die Gastbetriebssysteme über den Hypervisor arbeiten, werden diese zudem nicht durch Emulation von Hardware-Ressourcen betrieben. Diese Anforderung bedingt zusätzlichen Entwicklungsaufwand, damit Gastbetriebssysteme in einer paravirtualisierten Umgebung arbeiten und Vorteile aus erhöhten Leistungsindikatoren ziehen können. Durch die zusätzliche Komplexität aufgrund der notwendigen Modifikationen des Gastsystems erfordert die paravirtualisierte Technik einen erhöhten Wartungsaufwand. Ein bekannter Anbieter, der Paravirtualisierung einsetzt, ist XenServer.
Hardware-gestützte Virtualisierung
Da die vollständige Virtualisierung mit einem erheblichen System-Overhead, Performance-Verlusten und begrenzter Unterstützung für den Einsatz einer großen Anzahl von VMs einhergeht, wurde die hardwaregestützte Virtualisierung eingeführt, um diese Probleme zu überwinden. Die hardwaregestützte Virtualisierung ist eine Erweiterung der vollständigen Virtualisierungstechnik und somit immer noch Hypervisor-basiert mit spezifischen Änderungen am Berechtigungsstufen-Modell.
Berechtigungsstufen bei der Hardware-gestützte Virtualisierung [CRH17]
Die obige Abbildung zeigt, dass die Gastbetriebssysteme bei der hardwaregestützten Virtualisierung direkt auf die Hardware zugreifen können, was zu einer besseren Performance und einem höheren Durchsatz führt. Im Gegensatz zur Paravirtualisierung reduziert die hardwaregestützte Virtualisierung den Wartungsaufwand deutlich oder eliminiert idealerweise die notwendigen Änderungen an den Gastbetriebssystemen. Es ist auch mit wesentlich weniger Aufwand verbunden, eine bessere Leistung als bei der Paravirtualisierung zu erzielen, da das Host-Betriebssystem in diesem Fall nicht für die Verwaltung von Rechten und die Übersetzung des Adressraums verantwortlich ist. Beispielsweise verwenden Linux Kernel-basierte Virtual Machine (KVM)/Quick Emulator (Qemu) und VMware ESXi die hardwaregestützte Virtualisierungstechnik.
Virtuelle Maschinen (VMs)
Unabhängig vom bevorzugten Virtualisierungsdesign erzeugt die Hypervisor-basierte Virtualisierung gekapselte Gastbetriebssysteme, die formal als virtuelle Maschinen (VMs) bezeichnet werden. Im Vergleich zu Bare-Metal-Implementierungen profitiert der Einsatz von VMs in einer virtuellen Umgebung von reduzierten Kosten, einfacher Skalierbarkeit, schnellen Backups, relativ sicheren und isolierten Umgebungen. Außerdem wird durch die Möglichkeit, mehrere Kopien derselben VM adhoc erstellen zu können, eine hohe Verfügbarkeit geboten. Im Zusammenhang mit der Virtualisierung erleiden VMs, verglichen mit Bare-Metal-Maschinen, Leistungseinbußen.
Hypervisor-Typen
Virtuelle Maschinen können über zwei unterschiedliche Arten von Hypervisoren bereitgestellt werden, die Typ-1 und Typ-2 Hypervisoren genannt werden. Der Typ-1 Hypervisor ist die Bare-Metal-Version, die direkt auf der Hardware läuft und somit von einer deutlich höheren Performance und einer besseren Isolation profitiert. Aufgrund des fehlenden Host-Betriebssystems und der damit verbundenen Spezifizierung eines Hypervisors ist die Bereitstellung jedoch wesentlich komplizierter, da die Kompatibilität zwischen Hardware und Hypervisor jeweilig getestet werden muss. VMWare ESXi, Microsoft Hyper-V oder Xen basieren auf dem Hypervisor Typ-1 Konzept.
Typ-2 und Typ-1 Hypervisor [CRH17]
Der Typ-2 Hypervisor läuft auf einem Host-Betriebssystem, stellt die Ressourcen für die Gastbetriebssysteme zur Verfügung und ist im Vergleich zu Typ-1 komfortabler und schneller bereitzustellen. Es gibt keine spezifische Hardwareabhängigkeit; dementsprechend muss der Typ-2 Hypervisor nicht gegen spezifische Hardware getestet werden, was die Kosten und den Implementierungsaufwand senkt. KVM/Qemu, VMware Workstation oder Oracle VirtualBox basieren auf einem Hypervisor Typ-2 Konzept (siehe Abbildung oben).
Dieser Tech-Blog basiert auf der Masterarbeit „Analysis of Network Orchestration with competing Virtualisation Technologies“ von Marcel F., die in Zusammenarbeit zwischen der Technische Hochschule Köln und Xantaro entstanden ist. Betreut wurde diese Arbeit von Prof. Dr. Andreas Grebe (TH Köln) und Solutions Architect Dr. Hermann Grünsteudel (Xantaro).
[RF] – Ramalho F.; Neto, A.: Virtualization at the network edge: A performance comparison (2016 IEEE 17th International Symposium on A World of Wireless, Mobile and Multimedia Networks)
[CRH17] – Chayapathi R.; Hassan, S.F.; Shah, P.: Network Functions Virtualisation (NFV) with a touch of SDN, 2017.
Teilen Sie Ihre Meinung mit uns!
Ihre Perspektive zählt! Hinterlassen Sie einen Kommentar zu unserem Blogartikel und lassen Sie uns wissen, was Sie denken.