Grundlegendes zur Virtualisierung
- 11 Minuten
IT-Rechenzentren verwenden die Virtualisierung, um dedizierte Server in kostengünstigerer Hardware zu konsolidieren, indem die Server als Hosts für virtuelle Computer verwendet werden. Clouddienstanbieter verwenden die Virtualisierung auch, um Benutzer zu isolieren, die eine einzelne Hardwareschicht gemeinsam nutzen, indem physische Server in virtuelle Computer partitioniert werden. Wenn Sie z. B. eine EC2-Instanz in AWS bereitstellen, stellt Amazon in einem seiner Rechenzentren einen virtuellen Computer auf einem Server bereit. Die jeweilige Nutzung wird protokolliert, damit sie am Ende des Monats in Rechnung gestellt werden kann.
Lassen Sie uns die Vorteile der Virtualisierung betrachten und verstehen, warum sie für Cloud Computing so wichtig ist.
Aktivieren des Cloud Computing-Systemmodells: Cloud Computing ist ein wichtiger Anwendungsfall für die Virtualisierung. Wie Sie wissen, nutzt Cloud Computing ein Modell, in dem Software, Computeressourcen und Speicher als Dienste angeboten werden. Zu diesen Diensten zählen vollfunktionsfähige Anwendungen wie Google Docs (Software-as-a-Service oder SaaS), Plattformen wie Azure App Service für die Ausführung von Anwendungen (Platform-as-a-Service oder PaaS) und virtuelle Computer wie Amazon EC2-Instanzen (Infrastructure-as-a-Service oder IaaS). Die Bereitstellung eines virtuellen Computers umfasst die Erstellung von virtuellen Versionen der einzelnen Komponenten von physischen Computern: CPU, Arbeitsspeicher, E/A und Speicher. Dies wird durch Hypervisoren ermöglicht, die sowohl auf Software als auch auf Firmware basieren. Beispiele für führende Hypervisoren sind Xen, VMware und Hyper-V. Amazon EC2 verwendet Xen, um VMs für Benutzer bereitzustellen. Azure verwendet eine benutzerdefinierte Version von Hyper-V, die als Azure Hypervisor1.
Elastizität: Ein wesentlicher Vorteil der Cloud ist die Elastizität oder die Möglichkeit, schnell auf den Bedarf von Benutzern zu reagieren, indem Ressourcen dynamisch erweitert oder reduziert werden. Dieser Vorteil gilt für alle Clouddienstmodelle, d. h. SaaS, PaaS und IaaS. Wie in Abbildung 4 gezeigt, verbessert die Virtualisierung die Elastizität, da Anbieter und Benutzer die für eine Aufgabe verwendeten Cloudressourcen dynamisch vergrößern oder verkleinern können. Google App Engine erweitert beispielsweise Server bei hohem Bedarf automatisch und verkleinert sie, wenn der Bedarf abnimmt. Amazon EC2 bietet Benutzern die Möglichkeit, virtuelle Cluster manuell oder mit Amazon Auto Scaling automatisch zu erweitern und zu verkleinern. Azure erledigt dies mit Virtual Machine Scale Sets. Kurz gesagt, ist die Virtualisierung eine wichtige Technologie für Elastizität in der Cloud. Wichtig für die Elastizität wiederum ist die Tatsache, dass VMs schnell erstellt und gelöscht werden können.

Abbildung 4: Bereitstellung einer VM auf einem physischen System
Verwenden einer Sandbox: Eine VM bietet eine Sandbox, die eine Umgebung von anderen isoliert, sodass ein Sicherheitsniveau gewährleistet wird, das bei normalen Betriebssystemen u. U. nicht möglich ist. Erstens kann ein Benutzer, der Anwendungen auf einem privaten Computer ausführt, bei der Verlagerung von Anwendungen in die Cloud zögern, es sei denn, dass garantiert werden kann, dass seine Anwendungen und Aktivitäten nicht für andere Cloudbenutzer zugänglich sind bzw. von diesen verfolgt werden können. Die Virtualisierung spielt eine wichtige Rolle bei der Sicherstellung der Sicherheit aller Benutzer, indem es einem Benutzer unmöglich gemacht wird, die Daten oder Aktivitäten eines anderen Benutzers zu beobachten oder zu ändern. Zweitens kann sich der Ausfall einer Anwendung, die auf einem virtuellen Computer ausgeführt wird, nicht auf Anwendungen auswirken, die auf anderen VMs ausgeführt werden. Diese Gefahr besteht selbst dann nicht, wenn die virtuellen Computer auf demselben Host ausgeführt werden. Diese Eigenschaft wird als Ausfallbegrenzung bezeichnet und erhöht die Stabilität des Systems. In einer nicht virtualisierten Umgebung kann hingegen das gesamte System durch das unberechenbare Verhalten einer einzigen Anwendung ausfallen.
Wie in Abbildung 5 gezeigt, bietet Sandboxing auch andere interessante Möglichkeiten. Eine bestimmte VM kann als Sandbox verwendet werden, damit Angriffe auf die Sicherheit, z. B. Denial-of-Service-Angriffe oder schädliche Pakete, die in zulässige IP-Kommunikationsstreams eingefügt werden, ohne Risiko zugelassen und überwacht werden können. Diese Vorgehensweise ermöglicht es Forschern, die Auswirkungen solcher Angriffe zu untersuchen, das jeweilige Verhalten aufzudecken und die Angriffe zu wiederholen, um Schutzmaßnahmen gegen zukünftige Angriffe entwickeln zu können, ohne sich Gedanken über die Gefährdung eines physischen Servers machen zu müssen. Außerdem können Sicherheitsteams verdächtige Netzwerkpakete oder Eingaben an eine bestimmte Test-VM senden, bevor sie an den beabsichtigten virtuellen Computer weitergeleitet wird, um mögliche schädliche Auswirkungen zu verhindern. Eine VM kann einfach gelöscht werden, wenn sie ihren Zweck erfüllt hat. Demgegenüber ist die erneute Bereitstellung eines physischen Servers kostenintensiv und zeitaufwändig.

Abbildung 5: Isolieren und Analysieren von Angriffen mithilfe von virtuellen Computern
Verbesserte Systemnutzung sowie verringerte Kosten und geringerer Energieverbrauch: Es ist bekannt, dass Computerhardwareressourcen oft unterausgelastet sind. Das Konzept der gemeinsamen Nutzung von Ressourcen wurde in Multitaskingbetriebssystemen erfolgreich angewendet, um die Systemauslastung zu verbessern. Eine solche gemeinsame Nutzung von Ressourcen basiert auf der Prozessabstraktion, d. h. der Partitionierung der Anwendungsausführung in separate Prozesse, die jeweils von anderen Prozessen isoliert sind.
Die Virtualisierung geht darüber hinaus, indem der Anschein eines vollständigen Systems erstellt wird, in dem mehrere VMs gleichzeitig gehostet werden können, die jeweils ein eigenes Betriebssystemimage und eigene Anwendungen ausführen. Beispielsweise können in Clouddiensten wie Amazon EC2 sieben oder mehr VMs auf einem einzelnen Server bereitgestellt werden, wobei eine Ressourcenauslastung von ungefähr 60 % bis 80 % erreicht wird. Im Gegensatz dazu ist eine durchschnittliche Ressourcenauslastung von ungefähr 5 % bis 10 % in nicht virtualisierten Rechenzentren normal2. Die Virtualisierung ermöglicht eine Konsolidierung physischer Server in virtuelle Server, die auf vielen weniger physischen Servern ausgeführt werden, da mehrere VMs auf einem einzelnen physischen Server gehostet werden können. Dieses Konzept wird als Serverkonsolidierung bezeichnet. Die Konsolidierung führt zu einer verbesserten Systemauslastung und geringeren Kosten. VMs können auch von einem Server auf einen anderen migriert werden, um die Last auf die Server innerhalb eines Rechenzentrums zu verteilen.
Ein weiterer Vorteil der Serverkonsolidierung ist der geringere Energieverbrauch in Cloudrechenzentren. Rechenzentren, in denen Cloudanwendungen gehostet werden, verbrauchen viel Energie, was zu hohen Betriebskosten und Kohlendioxidemissionen führt3. Die Serverkonsolidierung ist eine effektive Möglichkeit, um die Energieeffizienz von Rechenzentren zu verbessern, indem die Anzahl der erforderlichen physischen Server verringert wird. Ein physischer Server, der 80 % der Zeit genutzt wird, verbraucht weniger Energie als acht Server, die 10 % der Zeit genutzt werden. Studien zeigen, dass die Serverkonsolidierung bis zu 20 % des Energieverbrauchs eines Rechenzentrums einsparen kann4, 5.
Die Verringerung des Energieverbrauchs in Cloudrechenzentren ist eine entscheidende Herausforderung im Cloud Computing. Dies hat zu Innovationen geführt, z. B. die Lokation von Rechenzentren unter Wasser, um grüne Energiequellen zu nutzen und die Kühlkosten zu reduzieren6,7. Bis zu 40 % der Stromversorgung eines typischen Rechenzentrums fällt für das Kühlsystem an. (Tausende laufende Server erzeugen viel Wärme.) Im Jahr 2012 berichtete Google, dass 1 Milliarde US-Dollar bei den Kühlkosten eingespart wurden, indem die Umgebungstemperatur in den Rechenzentren von 20° C auf 26,7° C erhöht wurde8.
Umgebung mit gemischtem Betriebssystem: Wie in Abbildung 6 gezeigt wird, kann eine einzelne Hardwareplattform, die virtuelle Computer hostet, mehrere Betriebssysteme gleichzeitig unterstützen. Diese Möglichkeit bietet Benutzern eine enorme Flexibilität, da sie eigene Betriebssysteme, Bibliotheken und Anwendungen installieren können. Ein Benutzer kann beispielsweise auf einem einzigen Desktopcomputer oder in der Cloud ein Betriebssystem für Office-Software und ein anderes für Anwendungsentwicklung und Anwendungstests installieren.

Abbildung 6: Gemischte Betriebssystemumgebung durch Systemvirtualisierung
Vereinfachen der Forschung: Die Ausführung eines Betriebssystems auf einem virtuellen Computer ermöglicht es dem Hypervisor, den Zugriff auf Hardwareressourcen zu instrumentieren und bestimmte Ereignistypen wie Seitenfehler zu zählen. Ausführungsablaufverfolgungen und Speicherabbilder des Computerzustands an verschiedenen interessanten Punkten können auf VM-Ebene erstellt werden. Dies ist bei nativen Systemen nicht so einfach möglich. Schließlich kann die Systemausführung auf virtuellen Computern ausgehend von einem gespeicherten Zustand wiederholt werden, um das Systemverhalten verschiedener Szenarien zu analysieren. Der gesamte Status eines virtuellen Computers kann gespeichert, geklont, verschlüsselt, verschoben und wiederhergestellt werden, was bei physischen Computern nicht so einfach möglich ist9. Daher ist es nicht überraschend, dass die Wissenschaftler den größten Teil ihrer Experimente für ein Betriebssystem mithilfe von VMs anstelle von nativen Hardwareplattformen durchführen10.
Testen von Software: Die Virtualisierung spielt eine große Rolle bei der Softwareentwicklung, da sie Entwicklern eine Möglichkeit bietet, Software in einer vorhersagbaren, replizierbaren, isolierten und plattformunabhängigen Umgebung zu testen.
- Plattformunabhängig: Mit virtuellen Computern können Sie für Linux geschriebene Software auf einem Windows-PC testen, indem Sie Linux auf einem virtuellen Computer hosten.
- Isoliert: Wenn die Software abstürzt, kann das zugrunde liegende System keinen Schaden nehmen.
- Replizierbar: Der virtuelle Computer kann schnell gelöscht und erneut gestartet werden.
- Vorhersagbar: Beim Neustart weist der virtuelle Computer denselben Zustand wie beim letzten Start auf und er wird auf jedem Computer identisch ausgeführt.
Literatur
Microsoft (2019). Entwurfsprinzipien hinter Microsoft Azure Hypervisor
Michelle Bailey (2009). „The Economics of Virtualization: Moving Toward an Application-Based Cost Model.“ (Die Wirtschaftlichkeit der Virtualisierung: Auf dem Weg zu einem anwendungsbasierten Kostenmodel) Von VMware unterstütztes Whitepaper.
A. Beloglazov und R. Buyya (2010). „Energieeffiziente Zuweisung virtueller Maschinen in Cloud-Rechenzentren.“ CCGrid.
Silicon Valley Leadership Group (2008). „Accenture, Data Centre Energy Forecast Report.“ Technischer Bericht.
Y. Jin, Y. Wen und Q. Chen (2012). „Energieeffizienz und Servervirtualisierung in Rechenzentren: Eine empirische Untersuchung.“ Computer Communications Workshops (INFOCOM WKSHPS).
Microsoft (2018). Under the sea, Microsoft tests a datacenter that's quick to deploy, could provide internet connectivity for years. (Microsoft testet ein Rechenzentrum auf dem Meeresboden, das schnell aufgebaut werden kann und jahrelange Internetkonnektivität bieten könnte.) https://news.microsoft.com/features/under-the-sea-microsoft-tests-a-datacenter-thats-quick-to-deploy-could-provide-internet-connectivity-for-years/.
Microsoft (2016). Microsoft research project puts cloud in ocean for the first time (Forschungsprojekt von Microsoft stellt die erste Cloud im Ozean bereit). https://news.microsoft.com/features/microsoft-research-project-puts-cloud-in-ocean-for-the-first-time/.
AirPac (2012). How Google Saved 1 Billion Dollars in Data Center Cooling Costs. (So konnte Google 1 Milliarde US-Dollar an Kühlkosten für Rechenzentren sparen) https://www.airpacinc.com/blog/bid/83313/How-Google-Saved-1-Billion-Dollars-in-Data-Center-Cooling-Costs.
Chen und Noble (2001). „When Virtual Is Better than Real.“ (Wenn virtuell besser als real ist) IEEE Computer Society, Washington, DC, USA
JE Smith und Nair (2005). „Virtual Machines: Versatile Platforms for Systems and Processes“ (Virtuelle Computer: Vielseitige Plattformen für Systeme und Prozesse“). Morgan Kaufmann.
Überprüfen Sie Ihr Wissen
Feedback
War diese Seite hilfreich?
No
Benötigen Sie Hilfe zu diesem Thema?
Möchten Sie versuchen, Ask Learn zu verwenden, um Sie durch dieses Thema zu klären oder zu leiten?