Softwarevirtualisierung und Hardwarevirtualisierung im Vergleich Dokumentation von Steven Rey und Valentin Lätt
Es gibt diverse verschiedene Virtualisierungsstrategien. In dieser Studie werden die Virtualisierung auf Systemebene und die Virtualisierung auf Hardwareebene genauer unter die Lupe genommen und verglichen. Jede der verschiedenen Methoden hat ihre eigenen Vor- und Nachteile. Schon seit längerem bieten Anbieter wie VMWare (VMWare Workstation, VMWare Server, ESX, ESXi), Microsoft (Virtual PC, Virtual Server und seit neustem HyperV) oder Parallels (Parallels Desktop und Parallels Container für Plesk) diverse Programme an, mit denen es den Benutzern ermöglicht wird, Betriebssysteme in einer virtuellen Umgebung zu installieren und zu betreiben. Je nach Software (Server oder Workstation Zweck) können die virtuellen Maschinen auch sehr komfortabel über längere Zeit hinweg betrieben werden. Die Auslastung eines Hardwareservers übersteigt die Grenze von 80% meistens nicht sondern bleibt meistens maximal um die 20%. Mit Hilfe der Virtualisierung ist es möglich, die Auslastung der Rechner zu steigern und dadurch massiv Hardwarekosten zu sparen. Es kann prinzipiell jeder Server virtualisiert werden. Auch komplexe Hochverfügbarkeitscluster können mit virtuellen Maschinen problemlos realisiert werden. Bei der Virtualisierung auf Systemebene, bei welcher unter dem laufenden OS neben anderen Aufgaben eine virtuelle Maschine betrieben wird, läuft die virtuelle Maschine je nach Software auf einem Serverdienst, auf welchen man mit einem passenden Klienten verbinden kann um die virtuelle Maschine zu bedienen (HyperV, Virtual Server 3, VmWare Server, ESX, Parallels Container) oder aber die virtuelle Maschine läuft in einem Programmfenster (Virtual PC und Virtual PC 2, Parallels Desktop) und wird als normaler Prozess ausgeführt, welchem beim abmelden auch beendet wird. Die Serveranwendungen sind bei allen Herstellern im selben Stil aufgebaut. Es handelt sich dabei um einen Systemdienst unter welchem die virtuellen Maschinen arbeiten sobald der Rechner gestartet wird. Diese Methode hat den Vorteil, dass kein Nutzer am Rechner angemeldet sein muss damit die virtuellen Maschinen betrieben werden können. Bei der Virtualisierung auf Hardwareebene, bei welcher das OS selbst die Virtualisierungsumgebung darstellt/bereitstellt, laufen die virtuellen Maschinen mit direktem, jedoch geteiltem Zugriff auf die vorhandene Hardware. Diese Methode wird von VMWare im ESX Server eingesetzt und ist nicht für die Verwendung auf Workstations geeignet, da ein weiterer Rechner vorhanden sein muss, auf welchem der passende Klient um die Maschinen zu steuern installiert sein muss. ESX selber bietet keine Möglichkeit den Desktop einer virtuellen auf dem Bildschirm des Hostrechners anzuzeigen.
Sowohl bei der Virtualisierung auf Hardware, als auch bei der Virtualisierung auf Softwareebene wird für jede virtuelle Maschine eigene virtuelle Hardware bereitgestellt. Somit betreibt jede virtuelle Maschine einen eigenen Kernel, welcher nach Belieben den jeweiligen Ansprüchen angepasst und erweitert werden kann. Dies hat den Vorteil, dass die Benutzer der virtuellen Maschinen keine Rücksicht auf andere virtuelle Maschinen nehmen müssen bei der Installation von Software. Die virtuellen Maschinen sind absolut unabhängig voneinander. Die Netzwerkkarte wird als normale Netzwerkkarte erkannt welche wie gewohnt eingesetzt werden kann. Parallels Plesk Container benutzt keine der beiden genannten Virtualisierungsstrategien. Bei Parallels Plesk Container wird bei allen virtuellen Maschinen derselbe Kernel genutzt. Dieser kann nur auf dem Hostrechner bearbeitet werden. Auf den virtuellen Maschinen besteht somit sehr eingeschränkter Handlungsfreiraum was die Installation von zusätzlicher Software betrifft. Ausserdem ist es dem Benutzer der virtuellen Maschine nicht möglich Treiber oder Module in den Kernel zu integrieren. Die virtuellen Maschinen sind in diesem Szenario ziemlich abhängig voneinander. Ausserdem wird keine Netzwerkkarte erkannt sondern eine virtuelle Netzwerkschnittstelle, welche allen Traffic über den Host leitet. Der Host selber kann den Traffic dann filtern und erst schlussendlich wird der Traffic dann ins Netz weitergeleitet. Der Unterschied zwischen VMWare Server und ESX Server besteht neben den unterschiedlichen Virtualisierungsebenen auch im Preis. Während eine ESX Lizenz einige tausend Franken kostet ist VMWare Server kostenlos, jedoch nicht für kommerzielle Zwecke freigegeben. Ausserdem verfügt der ESX Server über diverse weitere Funktionen wie Ressourcenbegrenzungen, Performance- Monitoring, Logging, Rechteverwaltung (Multi User fähig!), detailierte Anzeige der Hardwareeigenschaften und eine genaue Statusanzeige der Hardware. Alle in dieser Studie genannten Produkte, welche einen eigenen Serverdienst betreiben verfügen über eine sogenannte Snapshot-Funktion. Diese Funktion ermöglicht es, den aktuellen Zustand der virtuellen Maschine zu speichern und zu einem beliebigen späteren Zeitpunkt wieder zum Zeitpunkt des Snapshots zurückzusetzen. Während der ESX Server dies im laufenden Produktivbetrieb erledigt, pausiert HyperV die betroffene virtuelle Maschine für einige Sekunden und setzt sie danach automatisch wieder fort. Der ESX Server ist vor allem für den industriellen Grossbetrieb vorgesehen, denn dieser kann problemlos auch mit grossen SAN Netzwerken, NAS Speichereinheiten, ISCSI Netzwerken und Disk- Array s kommunizieren. Welche Speicherressource wofür verwendet werden soll kann der Root- Benutzer im Verwaltungspanel (VMWare Infrastructure Client) angeben. So können einzelne
Speicherorte nur als Backupspeicher definiert werden. Der ESX Server verfügt ausserdem auch über eine sehr umfangreiche Treiberdatenbank für alle möglichen Speicherlösungen. Grössere Hersteller von Massenspeicherlösungen im Datacenterbetrieb wie DELL, HP, Lenovo, SUN und einige weitere stellen eine eigene VMWare Version mit umfangreichen integrierten Markeneigenen Treibern zur Verfügung. HyperV hat in sachen Treiber klar die Nase forn, da die integrierten Windows Treiber genutzt werden können. Wenn das Gerät unter Windows Server 2008 verwendbar und passende Treiber vorhanden sind funktioniert die einbindung an eine virtuelle Maschine problemlos. Praktisch alle grösseren Hersteller von Hardware stellen Windows Treiber zur Verfügung für Ihre Geräte. Im Netzwerkbereich bieten alle Virtualisierungslösungen in etwa ähnliche Funktionen. Es besteht die Möglichkeit, die Netzwerkverbindung zu Bridgen, ein NAT mit dem Host zu betreiben (Mit Portforwarding) oder ein virtuelles Netzwerk nur mit dem Hostrechner zu erstellen auf welches externe Rechner keinen Zugriff haben. Gebridgte Verbindung Das Verhalten der virtuellen Maschine ist das selbe, wie wenn diese einen eigenen Switchport belegen würde. Die IP kann vom DHCP zugewiesen werden und ein Netzwerkboot wäre möglich. Die Verbindung wird von einem virtuellen Switch welcher auf dem Hostrechner inform eines Dienstes läuft geswitcht. NAT mit dem Hostrechner Die virtuelle Maschine kommuniziert mit derselben IP (NAT Network Address Translation Mehrere Rechner hinter einem Router/Firewall haben im WAN die selbe IP Adresse.), welche der Hostrechner ebenfalls benutzt. Der virtuelle Netzwerkkontroller entscheidet welcher Traffic per NAT an die virtuelle Maschine gesendet und welcher an den Hostrechner gesendet wird. Mit dieser Technologie wird es möglich, einen einzelnen Port des Hostrechners auf die virtuelle Maschine weiterzuleiten. Damit könnte man für jede Funktion eines Hostingservers ein eigenes virtuelles System betreiben, was die Sicherheit massgeblich erhöhen kann. Ausserdem sind dann alle Dienste unter derselben IP Adresse erreichbar. Virtuelles Netzwerk mit dem Host Die virtuelle Maschine hat keinen Zugriff auf ein WAN oder LAN sondern kommuniziert nur mit dem Hostrechner oder anderen sich im Netzwerk befindlichen virtuellen Maschinen. Die Stabilität der virtuellen Maschinen ist im Gegensatz zu Hardwaremaschinen sehr gut, da bei einer virtuellen Maschine immer dieselbe Hardware verwendet wird. Bei einer Hardwaremaschine sind x tausend verschiedene Konfigurationen von Hardwarekomponenten möglich. Somit kann eine virtuelle Maschine auch Problemlos von einem SUN auf
einen DELL Server migriert werden (Ctrl+C und Ctrl+V). Das virtuelle System erkennt auf beiden Plattformen dieselbe Hardware (Nämlich die virtualisierte). Die Ausbaumöglichkeiten von virtuellen Umgebungen sind extrem gross. Mit dem ESX Server ist es möglich, ein High-Availability System zu realisieren welches eine Uptime von über 99.999% garantieren kann. Zum ESX Server gibt es zahlreiche Erweiterungen, welche für den Betrieb von ganzen Rechenzentren vorgesehen sind. Damit ist es möglich ausnahmslos das gesamte Rechenzentrum zu virtualisieren und eine bisher unerreichte Stabilität, Skalierbarkeit und Uptime zu erreichen. Sobald ein Server ausfällt werden die betroffenen virtuellen Maschinen auf andere Server übertragen und dort praktisch ausfallslos weiterbetrieben. Auch die Disaster Recovery Szenarios bereiten einem Administrator eines virtualisierten Datacenters kein Kopfzerbrechen mehr. Die virtuellen Maschinen können ganz einfach regelmässig extern gesichert und mit wenigen Mausklicks wieder eingespielt werden. Der gesamte Inhalt einer virtuellen Maschine wird in einigen wenigen Dateien gespeichert. Meistens ist dies eine Image-Datei welche die virtuellen Harddisks darstellen und eine Konfigurationsdatei in welcher die Konfiguration der virtuellen Maschine gespeichert ist. Während laufendem Betrieb werden weitere Dateien angelegt, welche Snapshots und RAM sowie SWAP Partitionen darstellen. Seit neuestem Hat VMWare sein neustes Betriebssystem vsphere auf dem Markt mit welchem das Cloud-Computing reelle Formen annimmt. Die grobe Grundstruktur baut darauf auf das ganze Rechenzentrum zu einem grossen Supercomputer zu vereinen und auf diesem dann die virtuellen Maschinen zu betreiben. Dies ermöglicht in Sachen Skalierbarkeit und Uptime bisher noch nie da gewesene Massstäbe zu setzen. Quellen der Bilder: www.google.ch oder PrintScreens des ESX Servers.