Bundesamt für Sicherheit in der Informationstechnik

M 3.72 Grundbegriffe der Virtualisierungstechnik

Verantwortlich für Initiierung: Behörden-/Unternehmensleitung, IT-Sicherheitsbeauftragter

Verantwortlich für Umsetzung: IT-Sicherheitsbeauftragter, Leiter IT

Der Begriff "Virtualität" und das dazugehörige Adjektiv "virtuell" werden in der Computertechnologie schon sehr lange in sehr unterschiedlichen Anwendungsfällen verwendet. In den meisten Szenarien wird ein Objekt mit der Eigenschaft "virtuell" versehen, wenn es zwar physisch nicht vorhanden, seiner Wirkung nach jedoch existent erscheint. Somit kann ein virtuelles Objekt durchaus reale Auswirkungen haben, also die Realität verändern oder mit der Realität interagieren. Daher sind die Begriffe "Virtualität" und "Realität" nicht als Gegensätze zu begreifen. Als "Virtualisierung" wird auch der Prozess verstanden, bei dem ein Objekt von einem realen in ein virtuelles transformiert wird oder von vornherein in virtueller Form bereitgestellt wird.

Speziell in der Informationstechnik wird die Virtualisierung von Objekten als technische Substitution dieser Objekte (Ersetzung durch etwas Gleichwertiges oder Gleichwirkendes) verwendet. Wird beispielsweise realer Arbeitsspeicher eines IT-Systems durch virtuellen Arbeitsspeicher substituiert (gleichwertig ersetzt), kann dieser wie der reale verwendet werden, obwohl er beispielsweise auf der Festplatte des Systems als Datei repräsentiert wird. Diese Datei ist tatsächlich kein realer Arbeitsspeicher, ist aber in ihrer Wirkung dem Arbeitsspeicher gleich. Diese Technik wird angewendet, um mehr Arbeitsspeicher verwenden zu können, als tatsächlich vorhanden ist. Durch die Nutzung virtuellen Arbeitsspeichers können allerdings Performancenachteile entstehen. Es existieren noch viele weitere Beispiele für virtualisierte Ressourcen wie VLANs, VPNs oder auch virtuelle Prozessoren (Intel Hyperthreading).

In der Vergangenheit ist, wie aus den Beispiel im vorigen Absatz deutlich wird, die Virtualisierung hauptsächlich verwendet worden, um knappe und teure Ressourcen durch solche zu substituieren, die im Übermaß vorhanden oder preiswerter zu beschaffen waren. Mittlerweile hat sich allerdings die Computertechnik und insbesondere die Performance der Rechner soweit entwickelt, dass das Konzept der Virtualisierung auch auf weitere Anwendungsfälle ausgedehnt wird. Der Computer kann mit Hilfe einer entsprechenden Virtualisierungssoftware als universelles Werkzeug eingesetzt werden, um sehr viele Objekte zu virtualisieren, insbesondere den Computer selbst.

Kapselung und Isolation

Isolation und Kapselung sind zwei wichtige Sicherheitsanforderungen an eine Virtualisierungslösung. Isolation bedeutet in diesem Zusammenhang, dass zwei virtuelle IT-Systeme, die auf dem gleichen Virtualisierungsserver ablaufen, nur über die hierzu vorgesehenen Mechanismen miteinander kommunizieren können. Isolation trägt unter anderem dazu bei, dass von einem virtuellen IT-System nicht unberechtigt auf die Daten eines anderen virtuellen IT-Systems zugegriffen werden kann.

Kapselung bedeutet im Kontext von Virtualisierung, dass jedes virtuelle IT-System nur mit den Ressourcen kommunizieren kann, die hierfür jeweils freigeschaltet sind. Ressourcen können dabei beispielsweise Hardware-Komponenten, Netzverbindungen oder Prozesse, die direkt auf dem Virtualisierungsserver laufen, sein. Die Kapselung trägt somit nicht nur zum Schutz virtueller IT-Systeme vor unberechtigten Zugriffen bei, sondern umgekehrt auch zum Schutz der Ressourcen vor unberechtigten Zugriffen seitens der virtuellen IT-Systeme. Darüber hinaus dient die Kapselung auch der Portierbarkeit von virtuellen IT-Systemen.

Isolation und Kapselung sind eng verwandte Sicherheitsanforderungen, die auf technischer Ebene mit ähnlichen Mechanismen erreicht werden. In der Praxis wird zwischen den beiden Aspekten häufig nicht unterschieden.

Systemvirtualisierung

Durch das Überangebot an Leistung in modernen Rechneranlagen, die durch traditionelle Betriebssysteme und Anwendungen nicht mehr ausgelastet werden, entsteht der Wunsch, diese Leistungsreserven effizienter zu nutzen. Dies könnte beispielsweise durch die Kumulation von Anwendungen auf einem wenig ausgelasteten Rechnersystem geschehen. Aus guten Gründen (siehe auch M 4.97 Ein Dienst pro Server ) ist eine solche Strategie zur Effizienzsteigerung abzulehnen: Solche Systeme würden nahezu unbeherrschbar, da Applikationen sich möglicherweise auf unvorhersehbare Weise gegenseitig beeinflussen, wenn sie auf einem Rechnersystem installiert sind. Werden sie getrennt betrieben, entstehen solche Beeinflussungen erst gar nicht. Veränderungen an den Betriebssystemen ( z. B. Aktualisierungen oder Patches) müssen nicht mit einer Vielzahl von Anwendungen geprüft werden, sondern nur mit einer. Es ist weiterhin weitgehend ausgeschlossen, dass die Aktualisierung einer Anwendung Einfluss auf die Funktionsfähigkeit einer anderen Anwendung hat. Wird nun durch eine geeignete Technik dafür gesorgt, dass

  • die auf einem einzelnen Rechnersystem naturgemäß gegebene gemeinsame Kapselung von Betriebssystem und Anwendung sowie
  • die auf mehreren Rechnersystemen entstehende Isolation von Betriebssystem und Anwendungen auf diesen Rechnern voneinander

erhalten bleibt, wenn diese Rechnersysteme als virtuelle Instanzen auf einem Rechnersystem betrieben werden, verbleiben die Vorteile der Aufteilung auf einzelne Rechnersysteme. Die Ausnutzung der Rechnerressourcen wird hingegen verbessert. Durch die Virtualisierung von Rechnersystemen können daher die Leistungsreserven besser ausgenutzt werden, ohne die übersichtliche Aufteilung einzelner Anwendungen und Dienste auf einzelne Serversysteme aufzugeben.

Dieses Konzept der Aufteilung eines Rechnersystems in mehrere virtuelle Instanzen wurde zuerst in der Großrechnerwelt eingeführt. Hier wurde der Großrechner mittels einer so genannten Partitionierungstechnik in viele einzelne Rechner (logische Partitionen z. B. IBM LPARs bei der z-Series) mit jeweils eigenem Betriebssystem und eigenen Anwendungen aufgeteilt. Diese Technik wurde später auch auf Server der mittleren Leistungsklasse und auf Serversysteme auf der Basis der x86- bzw. x64-Architektur übertragen, als diese leistungsfähig genug waren, um mehrere Rechnerinstanzen auf einer Hardwareplattform betreiben zu können.

Im Folgenden wird nun beschrieben, wie sich die Virtualisierungstechnik auf Serversystemen auf Basis der x86- bzw. x64-Architektur entwickelt hat und welche Basistechniken und Hardwarevoraussetzungen dafür geschaffen wurden. Weiterhin werden einige Anwendungen der Virtualisierungstechnik vorgestellt.

Vollständige Systememulation

Die Virtualisierungstechnik ist zuerst als reine Softwarelösung implementiert worden. Dies bedeutet, dass durch die Virtualisierungssoftware einem virtuellen System eine emulierte Hardwareumgebung präsentiert wurde. Die Rechnerkomponenten des virtuellen IT-Systems wie Prozessor, Arbeitsspeicher und Massenspeicher sowie Netzschnittstellen wurden aufwändig emuliert und vollständig in Software nachgebildet. Hierdurch ist die Performance eines solchen virtuellen Systems sehr begrenzt. Sie ermöglicht aber, vor allem auf Grund der Prozessoremulation, sehr flexible Möglichkeiten, da hier auch plattformübergreifende Virtualisierungen von IT-Systemen möglich sind. Es ist mittels solcher vollständiger Rechnervirtualisierungssoftware beispielsweise (hier: Microsoft Virtual PC für Mac 7) möglich, ein Betriebssystem wie Microsoft Windows XP, dass ausschließlich für die x86-Plattform entwickelt wurde und nur dort lauffähig ist, auf einem PowerPC-basierenden Rechner mit Mac OS X 10.4 auszuführen, indem der x86-Prozessor vollständig in Software nachgebildet wurde. Eine solche vollständige Rechnervirtualisierung ist allerdings hochgradig ineffizient, da die vollständige Emulation von Prozessor-Architektur und sonstiger Hardwarebestandteile sehr viele Ressourcen benötigt und das virtuelle IT-System damit nur einen Bruchteil der physisch verfügbaren Performance nutzen kann.

Servervirtualisierung

Wesentlich effizienter als die vollständige und plattformübergreifende Virtualisierung eines Rechnersystems ist daher eine plattformspezifische Virtualisierungstechnik. Hier muss keine vollständige Rechnerumgebung (Prozessor, Arbeitsspeicher, Festplattenspeicher usw.) in Software nachgebildet werden. Die Virtualisierungssoftware muss nur so gestaltet sein, dass innerhalb der gegebenen Hardwarearchitektur die Kapselung und Isolation ( s. o. ) der jeweiligen virtuellen Instanzen ähnlich der von physischen Systemen ist. Eine aufwändige vollständige Emulation von Hardwarekomponenten ist dann nicht mehr notwendig. Die Software, die die Steuerung der virtuellen Systeme und deren Hardwareumgebung simuliert, wird als Hypervisor bezeichnet.

Die Virtualisierungssoftware ( bzw. der Hypervisor) hat im Wesentlichen nur die folgenden Aufgaben:

  • Bereitstellung einer gekapselten und isolierten Laufzeitumgebung für die einzelnen virtuellen Instanzen und
  • Steuerung der Zugriffe des virtuellen Systems auf Hardwarekomponenten des physischen Systems.

Diese hier beschriebene plattformspezifische Virtualisierungstechnik wird als Servervirtualisierung bezeichnet. Bei Lösungen auf der Basis einer Servervirtualisierung wird weiterhin noch zwischen hypervisorbasierten (Typ 1) und hostbasierten Lösungen (Typ 2) unterschieden.

Bei den hostbasierten Virtualisierungslösungen wird die Virtualisierungssoftware auf einem Standard-Betriebssystem wie Unix oder Microsoft Windows Server installiert, während bei Virtualisierungslösungen vom Typ 1 (Hypervisorbasiert) auf der physischen Hardware nur der Hypervisor installiert wird. Dieser Hypervisor stellt dann ein auf die Virtualisierung spezialisiertes Minimal-Betriebssystem dar. Eine Typ 1-Virtualisierungssoftware wird gelegentlich auch als Bare Metal Virtualization bezeichnet.

Produkte, die die Servervirtualisierungstechnik verwenden, sind beispielsweise

  • Microsoft Hyper-V (Typ 1), Microsoft VirtualPC (Typ 2) oder Microsoft VirtualServer (Typ 2)
  • QEMU (Typ 2, Anmerkung: QEMU kann auch zur vollständigen Systememulation verwendet werden)
  • Sun VirtualBox (Typ 2)
  • VMware Server (Typ 2) und VMware Workstation (Typ 2)
  • VMware vSphere bzw. VMware ESX(i) (Typ 1),
  • auf Xen basierende Produkte wie Citrix XenServer, Sun OpenVM (Typ 1)

Bei der Servervirtualisierung wird durch die Virtualisierungssoftware in der Regel ein virtueller Rechner erzeugt, der aus virtualisierten Hardwarekomponenten besteht. Diese Hardwarekomponenten werden dem Betriebssystem des virtuellen Systems präsentiert. Die Virtualisierungssoftware kann nun die Zugriffs- und Steuerungsbefehle, die vom Betriebssystem des virtuellen IT-Systems an dessen virtuelle Hardware gesandt werden, direkt in solche für die physische Hardware umsetzen. Diese Umsetzung ist deutlich effizienter als die oben beschriebene vollständige Emulation der Hardwarekomponenten.

Diese Technik wird als so genannte Vollvirtualisierung bezeichnet. Eine weitere Steigerung der Performance kann mittels der so genannten Paravirtualisierung erreicht werden. Hierbei wird unter der Kontrolle des Hypervisors ein speziell angepasstes Betriebssystem in dem virtuellen IT-System ausgeführt. Dieses ist so modifiziert, dass keine hardwarenahen Systembefehle mehr im Kernel des Betriebssystems des virtuellen IT-Systems enthalten sind. Diese Systembefehle werden häufig auch als "Ring 0-Befehle" oder "Dom0-Befehle" bezeichnet. Das virtuelle IT-System wird dann im "Ring 1" bzw. in der "DomU" ausgeführt. Unterstützt der Prozessor des Virtualisierungsservers die Paravirtualisierung (z. B. AMD-V und Intel VT), so kann auf ein angepasstes Betriebssystem verzichtet werden. Diese Möglichkeit nutzt beispielsweise XEN 3.0.

Betriebssystemvirtualisierung

Die Effizienz der Virtualisierungssoftware kann jedoch noch weiter gesteigert werden, in dem nicht nur die Hardwareplattform allen virtuellen Systemen gemein ist, sondern auch das Betriebssystem für alle virtuellen Instanzen festgelegt wird. Solche Virtualisierungstechniken werden Betriebssystemvirtualisierung genannt. Die Steuerung der Hardwarezugriffe der virtuellen IT-Systeme kann extrem vereinfacht werden, da hier keine virtuellen Hardwarekomponenten notwendig sind. Das virtuelle System hat das gleiche Betriebssystem wie das physische, auf dem es ausgeführt wird, und kann daher die gleichen Hardware-Treiber verwenden. Der Umsetzungsaufwand zwischen virtueller und physischer Hardware fällt somit vollständig weg. Die Kapselung der virtuellen IT-Systeme ist hier allerdings zumindest für das Betriebssystem nicht mehr sehr stark ausgeprägt, da alle virtuellen Instanzen das gleiche (nicht das selbe!) Betriebssystem nutzen. Die Virtualisierungssoftware stellt also nur noch die Isolation der einzelnen virtuellen Instanzen sicher.

Beispiele für solche Betriebssystemvirtualisierungslösungen sind:

  • Sun Solaris Containers
  • BSD jails
  • Parallels Virtuozzo
  • User Mode Linux

Der Vorteil der auf einer Betriebssystemvirtualisierung beruhenden Produkte liegt in der hohen Performance der virtuellen Instanzen und ihrem geringen relativen Ressourcenverbrauch auf dem Virtualisierungsserver im Vergleich zur Servervirtualisierung. Hierdurch ist ein sehr großer Verdichtungsgrad (Verhältnis der Anzahl von Virtualisierungsservern zu virtuellen Systemen) erreichbar. Mit einigen Betriebssystemvirtualisierungslösungen können bis zu 200 virtuelle IT-Systeme auf einem Virtualisierungsserver mittlerer Leistungsklasse betrieben werden. Auf einem gleich ausgestatteten Server, der eine Servervirtualisierungslösung nutzt, sind meist nur 10 bis 15 virtuelle Systeme möglich.

Der Nachteil der Betriebssystemvirtualisierungslösungen liegt allerdings in der schwachen Kapselung von Betriebssystem und Anwendungen auf dem Virtualisierungsserver. Diese schwache Kapselung führt dazu, dass virtuelle IT-Systeme mit stark unterschiedlichen Schutzbedarfsanforderungen nicht ohne Weiteres gemeinsam auf einem Virtualisierungsserver betrieben werden können. Dies ist bei Virtualisierungslösungen auf Basis einer Servervirtualisierung in der Regel anders, da die Kapselung der virtuellen Systeme stärker ausgeprägt ist. Ob allerdings virtuelle IT-Systeme unterschiedlicher Schutzbedarfsanforderungen auf einem Virtualisierungsserver zusammen betrieben werden können, hängt neben dem verwendeten Produkt auch von der Schutzbedarfsfestellung und den individuellen Gefährdungen der Organisation bzw. der virtuellen IT-Systeme ab.

Anwendungen der Virtualisierungstechnik

Mit Mitteln der Virtualisierungstechnik können einige Anwendungen entwickelt werden, die für physische Systeme in der Regel nur mit unverhältnismäßig hohem Aufwand realisiert werden könnten. Diese Anwendungen basieren in der Regel darauf, dass die Virtualisierungssoftware direkte Kontrolle über den Prozessor, den Arbeitsspeicher und die Massenspeicher des virtuellen IT-Systems hat. Sie kann direkt beeinflussen, wie diese Ressourcen durch das virtuelle System genutzt werden. Die Virtualisierungssoftware kann damit beispielsweise jederzeit den Zustand des Prozessors oder des Arbeitsspeicher des virtuellen IT-Systems auslesen. Diese Möglichkeiten können genutzt werden, um das virtuelle IT-System für unbestimmte Zeit einzufrieren. Weiterhin ist es möglich, in den Prozessor oder den Arbeitsspeicher zuvor gespeicherte Inhalte hinein zu laden. Der zuvor auf die Festplatte des Virtualisierungsservers gespeicherte Zustand von Prozessor und Arbeitsspeicher wird nach der Betriebsunterbrechung wieder geladen und die Ausführung der virtuellen Instanz wird genau an der Stelle fortgesetzt, an der das System eingefroren wurde. Dieses Verfahren ist nicht mit anderen Verfahren wie dem "Ruhezustand", der von Microsoft Windows XP oder Windows Vista bekannt ist, zu verwechseln. Im Gegensatz zum Ruhezustand geschieht diese Betriebsunterbrechung für das virtuelle IT-System völlig transparent. Die Möglichkeiten, ein virtuelles IT-System einzufrieren, werden genutzt, um so genannte Snapshots im laufenden Betrieb zu erzeugen.

Snapshots

Die meisten Virtualisierungslösungen ermöglichen das Konservieren des Zustands eines virtuellen IT-Systems zu einem beliebigen Zeitpunkt, ohne dass die Ausführung des virtuellen IT-Systems hierdurch beeinträchtigt wird. Beim Anlegen eines Snapshots wird die virtuelle Festplatte eingefroren und nachfolgende Schreibzugriffe werden in eine separate Datei umgeleitet. Der aktuelle Zustand ergibt sich bei Maschinen mit aktiven Snapshots aus der Überlagerung aller Snapshot-Dateien mit der Basis-Datei.

Snapshots können mit oder ohne Inhalt des Arbeitsspeichers des virtuellen IT-Systems angelegt werden. Snapshots ohne Arbeitsspeicherinhalt spiegeln meist den Zustand des virtuellen IT-Systems wieder, das nicht heruntergefahren, sondern im laufenden Betrieb ausgeschaltet wurde. Snapshots mit Arbeitsspeicherinhalt erlauben es, das IT-System exakt in den Zustand zu versetzen, wie er zum Zeitpunkt des Snapshots vorlag, d. h., es ist eine Rückkehr in ein laufendes Betriebssystem mit geöffneten Anwendungen möglich. So lange der Snapshot nicht gelöscht wird, befindet sich der Speicherinhalt vom Zeitpunkt des Snapshots meist in Form einer Datei im Verzeichnis des virtuellen IT-Systemes.

Live Migration von virtuellen IT-Systemen

Techniken wie Live Migration für XEN, Citrix XenMotion und Microsoft HyperV Server 2008 R2 oder auch VMotion für VMware erlauben die Übertragung (Migration) von virtuellen IT-Systemen auf andere physische Virtualisierungsserver im laufenden Betrieb.

Aus Benutzersicht, aber auch aus Sicht des virtuellen IT-Systems, geschieht dies unterbrechungsfrei. Hierdurch wird es z. B. möglich, Hardware eines Virtualisierungsserver zu erweitern oder auszutauschen, die Auslastung der Virtualisierungsserver gezielt neu zu verteilen sowie einen bestimmten Dienst oder eine Anwendung auf einen anderen Virtualisierungsserver zu verlagern.

Sowohl vor, während, als auch nach dem Migrationsvorgang muss der Zugang des virtuellen IT-Systems zum eigenen Dateisystem gewährleistet sein. Hierfür kommen Speichernetze ( SAN -Storage-Systeme) mittels Fibre Channel oder iSCSI und Netzdateisysteme wie NFS in Frage.

Diese Technik funktioniert im Wesentlichen so, dass zuerst ein Snapshot eines virtuellen IT-Systems vom Quell-Virtualisierungsserver auf den Ziel-Virtualisierungsserver übertragen wird. Der Zielserver lädt nun den Arbeitsspeicher des zu übertragenden virtuellen IT-Systems in seinen Speicher. Da das System auf dem Quellserver weiterläuft, hat sich der Speicher des virtuellen Systems in der Zwischenzeit verändert. Diese Änderungen werden nun fortlaufend übertragen und in Folge dessen wird das Zielsystem mit dem Quellsystem synchronisiert. Ist die Synchronizität hergestellt, wird das virtuelle IT-System auf dem Quellserver gestoppt, der Prozessorzustand auf den Zielserver übertragen und das virtuelle IT-System mit dem übertragenen Prozessorzustand auf dem Zielserver fortgesetzt. Dieser Vorgang erfolgt für das virtuelle IT-System vollständig transparent.

Die Live Migration kann genutzt werden, um Performanceengpässen vorzubeugen. Dieser Prozess kann automatisiert werden, so dass jedem virtuellen IT-System immer die maximal mögliche Performance zur Verfügung gestellt werden kann.

Überbuchung von Arbeitsspeicher

Bei einigen Virtualisierungslösungen kann den virtuellen IT-Systemen in Summe mehr Arbeitsspeicher zugewiesen werden, als auf dem Virtualisierungsserver insgesamt vorhanden ist. Einem einzelnen virtuellen IT-System kann allerdings nicht mehr Speicher zugewiesen werden, als dem Hypervisor zur Verfügung steht. Ein Virtualisierungsserver verfügt beispielsweise über insgesamt zwei Gigabyte Hauptspeicher. Auf ihm werden drei virtuelle Server betrieben, die jeweils ein Gigabyte, also zusammen drei Gigabyte Hauptspeicher besitzen sollen. Um diese Überbuchung zu ermöglichen, wird den virtuellen IT-Systemen der entsprechende Hauptspeicher nicht zur Gänze zugeteilt. Stattdessen wird dem einzelnen virtuellen IT-System nur dann eine Speicherseite physisch zugewiesen, wenn sie von diesem virtuellen System tatsächlich gebraucht wird. Einmal durch ein virtuelles IT-System angeforderter Speicher kann grundsätzlich nicht durch den Hypervisor wieder zurückgefordert werden. So wächst der physische Speicherbedarf eines virtuellen IT-Systems sukzessive bis zur Konfigurationsgrenze an. Da allerdings davon ausgegangen werden kann, dass das Betriebssystem des virtuellen IT-Systems den ihm zur Verfügung stehenden Speicher mit der Zeit komplett nutzen wird, muss eine Möglichkeit bestehen, wie mit einer Ressourcensättigung auf dem Virtualisierungsserver umgegangen werden soll. Eine solche Möglichkeit wird in den folgenden Absätzen an einem Beispiel verdeutlicht.

Das Produkt ESX Server des Herstellers VMware beispielsweise ermöglicht die Überbuchung von Hauptspeicher auf drei verschiedene, miteinander kombinierte Vorgehensweisen:

  • Transparent Memory Sharing
    Der Hypervisor überwacht alle Speicherseiten aller virtuellen IT-Systeme. Kann der Hypervisor zwei identische Speicherseiten identifizieren, werden diese nur einmal im physischen Arbeitsspeicher des Virtualisierungsservers vorgehalten. Ändert eines der virtuellen IT-Systeme eine dieser Seiten, wird sie für dieses System kopiert, und die anderen virtuellen IT-Systeme nutzen weiter die nicht modifizierte Seite. Diese Technik hat ein hohes Potenzial zur Speichereinsparung, da z. B. bei vielen virtuellen IT-Systemen die gleichen Betriebssystemkerne oder Softwarebibliotheken verwendet werden. Das Speicherabbild dieser Kerne oder Bibliotheken muss nur einmal physisch im Speicher des Virtualisierungsservers gehalten werden.
  • Ballooning
    In Abhängigkeit vom Hauptspeicherverbrauch des Gesamtsystems kann die Zuordnung von virtuellem Arbeitsspeicher zu den einzelnen virtuellen Systemen dynamisch angepasst werden. Möglich wird dies durch einen Treiber in dem virtuellen System, der gezielt Speicher belegt (Ballooning) und so das Betriebssystem des virtuellen IT-Systems zwingt, Hauptspeicherinhalte auf seine virtuelle Festplatte auszulagern. Der durch den Ballooning-Treiber belegte Speicher wird vom ESX Server erkannt und kann an andere virtuelle IT-Systeme vergeben werden. Mittels dieses Verfahrens können Speicherengpässe kurzzeitig ausgeglichen werden. Da das Betriebssystem des virtuellen IT-Systems kontrolliert, welche Prozesse ausgelagert werden, ist der negative Performanceeinfluss meist kurzzeitig hinnehmbar.
  • Paging
    Kann der benötigte Speicher für ein virtuelles IT-System weder über Transparent Memory Sharing des Virtualisierungsservers noch über Ballooning im virtuellen IT-System freigegeben werden, wird der Speicher anderer, gerade nicht aktiver virtueller IT-Systeme durch den Hypervisor auf die Festplatten des ESX-Servers ausgelagert. Wenn dies geschieht, wird die Performance der virtuellen IT-Systeme sehr stark herabgesetzt, da der Hypervisor hier keine Rücksicht auf laufende Prozesse des Betriebssystems der ausgelagerten virtuellen IT-Systeme nimmt.

Der Festplattenplatz des Virtualisierungsservers kann ebenfalls überbucht werden. Hierbei wird den virtuellen IT-Systemen mehr Festplattenplatz zur Verfügung gestellt, als tatsächlich vorhanden ist. Dabei wird der verfügbare Festplattenplatz so zugewiesen, dass die virtuelle Maschine ein Laufwerk mit beispielsweise einer Größe von zehn Gigabyte erkennt und ein Dateisystem von diesen Dimensionen anlegen kann. Auf der Festplatte des Virtualisierungsservers belegt das virtuelle IT-System jedoch nur den tatsächlich genutzten Platz in einer Containerdatei, die dynamisch mit der aktuell benötigten Speichergröße mitwächst. Sobald das virtuelle IT-System weiteren Platz nutzt, wird dieser auch auf der physischen Festplatte des Virtualisierungsservers belegt. Vom virtuellen IT-System freigegebener Speicher wird allerdings in der Regel nicht automatisch wieder physisch freigegeben. Es muss weiterhin beachtet werden, dass die virtuellen IT-Systeme in eine Fehlersituation geraten, wenn der physische Speicher nicht mehr ausreicht, um weitere Speicheranforderungen zu erfüllen: Die virtuellen IT-Systeme "wissen" nichts von der Überbuchung des Speichers und versuchen weiter auf ihre virtuellen Festplatten zu schreiben. Es kommt zu Schreibfehlern in den virtuellen IT-Systemen und in der Folge zu Inkonsistenzen im Dateisystem.

Fehlertoleranz für Hardware-Komponenten

Virtuelle IT-Systeme können bei einigen Virtualisierungsprodukten von Toleranzmechanismen bei Hardwarefehlern profitieren. Da die Virtualisierungssoftware die Zuordnung beispielsweise einer virtuellen Netzschnittstelle zu einer physischen steuert, kann die Kommunikation des virtuellen IT-Systems auf eine andere Netzschnittstelle umgeleitet werden, wenn die ursprüngliche Schnittstelle von einem Fehler betroffen ist. Stehen also in einem Virtualisierungsserver mehrere redundante Komponenten zur Verfügung, kann die Virtualisierungssoftware beim Ausfall einer Komponente für die Nutzung der noch funktionsfähigen Komponenten sorgen.

Fehlertoleranz bei virtuellen IT-Systemen

Die Virtualisierungsprodukte Citrix XenServer (Marathon EverRun) und VMware vSphere (Fault Tolerance) beispielsweise verfügen über Mechanismen, um für den Fall des Ausfalls eines Virtualisierungsservers fehlertolerante virtuelle IT-Systeme zu erzeugen. Um diese Fehlertoleranz eines virtuellen IT-Systems zu erreichen, wird auf einem anderen Virtualisierungsserver eine Kopie des virtuellen IT-Systems erzeugt. Diese Kopie wird fortlaufend mit dem Original synchronisiert und bleibt solange nicht mit dem Netz verbunden, wie das Original weiterhin funktioniert. Fällt der Virtualisierungsserver aus, auf dem das Original läuft, kann die Kopie mit dem Netz verbunden werden und sofort alle Funktionen des Originals übernehmen. Danach wird auf einem weiteren Virtualisierungsserver sofort wieder eine neue Kopie des virtuellen IT-Systems erzeugt.

Stand: 12. EL Stand 2011

Hinweis zur Verwendung von Cookies

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen hierzu erhalten Sie in unserer Datenschutzerklärung.

OK