Springe zum Hauptinhalt

VMware


vmware.gif

Virtualisierung mit VMware und Co.


Kursinhalt:

Stand: Februar 2009


Virtualisierung im Überblick


"Virtualisierung bezeichnet Methoden, die es erlauben, Ressourcen eines Computers aufzuteilen." (Wikipedia)

  • Virtualisierung bietet ein großes Potential bei der Erschließung von Ressourcen. Voraussetzung dafür ist eine sorgfältigen Planung.
  • Servervirtualisierung wird bereits in vielen Bereichen praktiziert.
  • Dadurch wird auch die Virtualisierung auf den Gebieten Storage und Netzwerk vorangetrieben.
  • virtualization.info


Ziele

  • Serverkonsolidierung
    • weniger physische Hardware
    • bessere Auslastung der vorhandenen Ressourcen
    • Senkung Betriebskosten (Energieverbrauch, Klimatisierung, Stellfläche)
  • höhere Verfügbarkeit der Dienste durch HA-Cluster, Lastverteilung
  • Provisionierung
    • schnelle Bereitstellung neuer Systeme
  • Effektivierung des Systemmanagements
    • Zentralisierung des Servermanagements
    • Homogenität der Gastsysteme
  • Sicherheit
    • Isolierung von Diensten


Die Technik im Überblick

aus Sicht des Gastsystems

Hardware-Emulation:
  • VM emuliert die komplette Hardware eines Systems
  • Architektur der VM muss nicht mit der Architektur des Wirtssystems identisch sein
  • unmodifizierte Gastbetriebssysteme
  • Bochs

Hardware-Virtualisierung:
(volle Virtualisierung)
  • Teile der Hardware eines Systems werden emuliert (Netzkarte, Grafik, usw.)
  • Architektur von VM und Wirt sind identisch
  • unmodifizierte Gastbetriebssysteme
  • VMware, VirtualBox

Paravirtualisierung:
  • keine virtualisierte Hardware
  • nur angepasste Wirts- und Gastbetriebssysteme
  • XEN

aus Sicht des Wirtssystems

Type 1 Hypervisors

Type 2 Hypervisors

Thin Hypervisor
  • vergleichbar mit Type 1 Hypervisors
  • native I/O, keine emulierten Geräte
  • shared address space
  • Blue Pill Rootkit

Das Ring-Konzept (CPU)

Der Ring (auch Domain) beschreibt eine Privilegierungsschicht innerhalb der Betriebssystemprogrammierung.

CPU_ring_scheme.png
CPU Ring Schema (Quelle: Wikipedia)

  • Ring 0 - Kernel Mode
  • Ring 1-3 - User Mode

Betriebssysteme wie Linux (und Windows) nutzen Ring 0 für den Kernel und die Gerätetreiber. Die Anwendungen laufen im Ring 3. Das Umschalten zwischen Kernel- und User Mode bezeichnet man als Kontext-Wechsel.
Bei virtualisierten Betriebssysteme wie XEN läuft im Ring 0 der sogenannte Hypervisor (auch als Dom0 bezeichnet). Dieser verwaltet die im Ring 1 laufenden Kernel (auch als DomU bezeichnet).

VMware (Player, Workstation, Server) und VirtualBox setzen einen sogenannten VMM (Virtual Machine Monitor) im Kernel des Wirtssystems ein, um Zugriffe der Gastsysteme auf CPU und Speicher zur physischen Hardware umzusetzen. Zugriffe z.B. auf Netzinterfaces, Festplatten, usw. werden durch das Wirtsbetriebssystems abgewickelt. Damit obliegt die Unterstützung der physischen Hardware dem Wirtsbetriebssystem.

Virtuelle Maschine - VM

esx_server_hardware.jpg
virtuelle Hardware (Quelle: VMware Inc.)

  • CPU
    • Ausführen der Befehle der VM auf der realen CPU
    • VMM fängt kritische Befehle ab (hardwarenahe Befehle)
    • Prozessorvirtualisierung (AMD-SVM, Intel VT) realisiert die Abgrenzung zwischen VM und VMM
  • Speicher
    • VMM verwaltet den Speicher der VM (Shadow - oder Nested Page Tables; Paravirtuell - direkter, lesender Zugriff)
    • Ballooning zur dynamischen Belegung und Freigabe des Speichers in der VM (Kommunikation zwischen VMM und Ballooning-Treiber)
  • HDD, Floppy, CDROM*
    • Emulation des I/O-Controllers
    • als Image im Filesystem des Wirtes oder physische Partition
  • Netzwerkinterface
    • Emulation der NIC(s)
    • optimierter Treiber für Gastsystem
    • verschiedene Netzwerkszenarios:
      • Bridged, NAT, Host only,
      • virtuelle Switches
  • Grafik
    • Emulation der Hardware
    • optimierter Treiber für Gastsystem
  • I/O
    • Emulation der Hardware
    • Seriell, Parallel, USB
    • exklusive Bindung an physische Gerät, Files oder Pipes


Einsatzszenarien

auf dem Desktop

  • für die Ausführung weiterer Betriebssysteme auf leistungsstarken Desktopsystemen
  • Speicherausstattung, Multicore CPU !

Betreibe niemals 2 verschiedene Hypervisor gleichzeitig!

VMware Player (frei)

  • Betrieb vorkonfigurierter virtueller Gastsysteme auf Desktops (Linux, Windows)
    mittels VMware Player ist die Erstellung/Konfiguration virtueller Gastsysteme nicht möglich!
  • Öffnen virtueller Maschinen von Drittanbietern möglich
  • Nutzung lokaler Komponenten wie Floppy, CDROM, USB
  • verschiedene Netzwerkszenarios (Host-only, Bridged, NAT)
  • Shared Folder für Datenaustausch mit Wirtssystem (alternativ Sambaserver),
  • Copy & Paste, Drag & Drop von Files durch VMware Tools
  • Unity View seamless Darstellung von Applikationen der VM auf Desktop
  • Shrink Disk durch VMware Tools

VMware Workstation ($)

  • Erstellen und konfigurieren virtueller Gastsysteme
  • Snapshot-Technik für Sicherung mehrerer Installationsstufen bzw. Betriebszustände
  • 3D-Unterstützung von DirectX? 9.0
  • Entwicklung und Evaluierung von Anwendungen
    • Recorder für Anweisungen
    • Anwendungs-Debugging
  • VNC für Remote Konsole

Sun xVM VirtualBox (frei/$)

  • Privat, für Evaluierung und Lehrzwecke frei nutzbar
  • Open Source Edition als GPL V2
    • ohne USB, integriertes RDP, iSCSI, SATA Controller
  • Funktionsumfang vergleichbar mit VMware Workstation
  • unterstützt Hardwarevirtualisierung der CPU (optional)
  • mehrere Generation von Snapshots
  • Gastsystem im headless-Mode, VRDP als (remote) KVM-Zugang
  • VirtualBox Guest Additions:
    • optimierte Treiber (Grafik)
    • Kommunikation Wirt - Gast, Copy & Paste, Shared Folder, ...
    • Hardware 3D-Beschleunigung für Windows-Gäste (experimental), OpenGL

Server

  • dedizierte(r) Server für die Ausführung virtueller Maschinen
  • webbasiertes Management
    • der/des Server(s) direkt
    • des Cluster über Managementhost
  • KVM-Zugang (Browserplugin oder als native Anwendung)

VMware Server (frei)

  • auf Linux- bzw. Windowsbetriebssystem lauffähig, damit keine Einschränkungen bezüglich Hardwareunterstützung
  • webbasiertes Management von jedem Arbeitsplatz möglich
  • KVM über Browserplugin bzw. native Anwendung
  • Umleitung lokaler Geräte (Floppy, CDROM, kein USB)
  • Snapshot-Technik
  • in vorhandene Authentifizierungsinfrastruktur einbindbar (Linux, PAM)
  • Rollen zur Verwaltung virtueller Maschinen, feingranulierbare Berechtigungsvergabe
  • Anwendungsgebiete:
    • Entwicklungssysteme
    • Evaluierung von Anwendungen
    • bedingt zur Serverkonsolidierung geeignet

Einsatzszenario (intern)

  • AMD Athlon(tm) 64 X2 Dual Core Processor 4200+
  • 4 GB RAM
  • 240 GB HDD (SATA)
  • Scientific Linux 5

  • ca. 20 VM-Images verfügbar, ca. 3..6 gleichzeitig aktive VMs
  • WindowXP, Windows 2003, Windows Vista, Fedora Linux
    • Softwareevaluierung und -Paketbau
    • Erprobung Installationstechnologien und Managementwerkzeuge
    • Testsysteme

VMwareESX Server ($)

  • direkte Installation auf Hardware (angepasster Linuxkernel als VMM)
    • VMwareESX: Installation von CD-Image auf lokale Platte oder bootfähige SAN-Partition, Zugang über Managementsystem (RedHat? 3)
    • VMwareESXi: Flashspeicher, Manangement über API, VirtualCenter
  • beachte Hardwareunterstützung http://www.vmware.com/go/hcl
  • Hochverfügbarkeit durch Clustering und redundante Infrastrukturanbindung
  • Definition von Ressourcepools, Lastausgleich
  • Livemigration ohne Serviceunterbrechung
  • Lizensierung je gesockelte CPU, statisch je Host oder floating mit Lizenzmanager

  • CPU-Virtualisierung
  • Speicher-Virtualisierung
    • Überbuchung des Hostmemory möglich
  • Storage-Virtualisierung
    • VMFS - Clusterfilesystem
    • LVM - Logical Volume Manager, Hinzufügen von LUNs zu Volume
    • Anbindung an SAN mittels Fibre Channel HBA, iSCSI, ...
    • Raw Device Mapping
  • Netzwerk-Virtualisierung
    • virtualisierte Netzwerkadapter, Standard und optimierte Adapter mit nativen Treibern
    • virtuelle Switches
    • VLAN-Tagging
    • Traffic Shaping
  • Anwendungsgebiete:
    • Serverkonsolidierung

Einsatzszenario

  • 5 Server
  • 4 Dual-Core AMD Opteron(tm) Processor 8218
  • 64GB RAM
  • Fibre Channel QLogic QLA2432
  • 2x Gb Ethernet Management, 4x Gb Ethernet Gastsysteme

  • über 100 virtuelle Maschinen
  • Linux- und Windows 2003-Gäste vom
    • Computeserver
    • Applikationsserver (Windows Terminalserver)
    • Webportale (LAMP)
    • Lizenzserver, Keymanagement, Antivirensoftware, ...
    • Entwicklungs- und Testsysteme

vmware_esx.png
VMware ESX Schema

VMware Infrastructure VirtualCenter($)

  • Managementumgebung zur Verwaltung von VMwareESX-Servern und Gästen
  • Windows-Anwendung, betreiben wir als VM
  • Lizenzserver
  • Datenbankserver (Oracle, MSSQL)
  • Webinterface zur Gastverwaltung
  • feingranulierbare Berechtigungsvergabe, Rollen zur Verwaltung virtueller Maschinen


Sicherheit?

  • Virtualisierung - Sandbox - Trennung von Diensten
  • neue Herausforderungen bei der Erarbeitung von Sicherheitskonzepten
    • DoS?-Attacke auf VMM
    • Ausbruch aus übernommenen Gastsystemen
  • Gefahren durch unerkannte/ungewollte Virtualisierung - Erkennung virtualisierter Umgebungen


Stand und Ausblick

  • stabiler Betrieb eines VMwareESX-Cluster - Dienstangebot: VPSH
    • Erweiterung des Clusters geplant
  • Einsatzmöglichkeiten weiterer Virtualisierungslösungen
    • Einsatzanalyse XEN - aktuell durch eine Studienarbeit unterstützt
    • VMware Player, Virtual Box - Einsatz auf Desktop
  • Desktopvirtualisierung, Thin Clients ?


Quellen, Links