Virtualisierung unter Linux Linux Workshop Köln 12. Dezember 2006 Harald Weidner <hweidner@gmx.net>
Übersicht Begriffe und Konzepte Vergleich der Konzepte Xen VMware Andere Virtualisierungsprodukte Online-Ressourcen
Begriffe und Konzepte Zielsetzung: Betrieb eines oder mehrere Gast- Betriebssysteme auf einer Maschine Emulation Simulation eines vollständigen Rechners (CPU, Speicher, Festplatte, Netzwerkkarte,...) Virtualisierung Aufteilung der CPU- und Speicherressourcen Simulation der Hardware (Festplatte, Netzwerkkarte, Grafikkarte,...) Realisierung in Hardware oder Software (Host-OS)
Virtualisierungstechniken (1) Hardware-Virtualisierung Prozessoren und MMUs mit Virt'unterstützung Hypervisor als Verwaltungsinstanz IBM zseries (LPAR, VM), pseries (LPAR), Intel VT (Vanderpool), AMD SVM (Pacifica) Paravirtualisierung Hypervisor als Scheduler und Verwaltungsinstanz I/O über Host-Betriebssystem Angepasstes Gast-Betriebssystem mit idealisierten Treibern für Storage und Netzwerk
Virtualisierungstechniken (2) Virtualisierung Gemeinsame Nutzung der CPU Unmodifiziertes Gast-Betriebssystems Emulation der Hardware Kernel-Virtualisierung Virtualisierungsfunktionen in den einzelnen Subsystemen des Linux-Kernels Prozessverwaltung, Speicherverwaltung, User, Filesysteme, Netzwerk, etc. Applikationsvirtualisierung Virtuelle Maschine für Applikationskontext (z.b. Java)
Virtualisierungstechniken (3) Technik Vertreter CPU Emulation Hardware Emulation idealis. Treiber logische Hardware Gast- ABI Emulation PearPC, VICE x x x x x Virtualisierung VMware, Virtual PC x x x x Paravirtualisierung XEN, colinux x x x x Kernel-Virt. Virtuozzo/OpenVZ, Linux-Vserver x x x ABI-Nachbildung Wine x x API-Nachbildung Cygwin x Gast- API
Xen Steckbrief Technik: Paravirtualisierung HW-Unterstützung: x86, x86_64, Itanium, PPC Host-OS (Dom0): Linux, OpenSolaris, NetBSD Gast-OS (DomU): Host-OS, FreeBSD, Plan9 Hypervisor für Scheduling und Memory Management Modifizierter Kernel mit idealisierten Treibern für Storage und Netzwerk Exklusive Nutzung von PCI-Geräten durch Gast-OS Experimentell: native Gastsysteme auf CPUs mit HW-Virtualisierung
Xen Architektur [ Siehe Abbildung unter http://www.cl.cam.ac.uk/research/srg/netos/papers/2006-xen-ols.pdf ]
Xen Funktionsweise XEN Hypervisor System Boot, Scheduling, Memory Management, Hardware Access Domain 0 Zugriff auf (fast) alle Hardware-Devices Kontrolle der Gastsysteme: Xen Daemon, xm, xentop, Storage, Networking (Backend) Domain U Zugriff auf logische Geräte über idealisierte Treiber (Frontend)
Xen Bootup Nur GRUB, kein LILO! /boot/grub/menu.lst: title Xen 3.0 / Debian 4.0 root (hd0,6) kernel /boot/xen-3.0-unstable-1-i386.gz module /boot/vmlinuz-2.6.17-2-xen-686 \ root=/dev/hda7 ro console=tty0 module /boot/initrd.img-2.6.17-2-xen-686
Xen Storage Datei in Dom0 als Partitionsimage für DomU Linux Loop Device Physische Partition LVM-Partition Verwaltungsfunktionen, Snapshots Peformance geringer als bei Loop-Devices Blktap Loop-Ersatz für XEN-Partitionen Reine Userspace-Lösung, Copy-on-Write Noch nicht ganz ausgereift
Xen Networking Bridged Networking Über Linux Bridging DomU DumU Mit oder ohne externem Interface Routing Hostrouten zwischen Dom0 u. DomU Mit oder ohne NAT Mischformen Interne Bridge, nach außen geroutet Dom0 DumU Dom0 DumU DomU DomU
Xen DomU Konfiguration Linux kernel = "/boot/vmlinuz-2.6.17-2-xen-686" ramdisk = "/boot/initrd.img-2.6.17-2-xen-686" memory = 96 name = "vm1" vif = [ 'bridge=xbr0' ] disk = [ 'phy:/dev/data/vm1sys,hda1,w', 'phy:/dev/data/vm1swap,hda2,w' ] root = "/dev/hda1 ro" extra = "2" OpenSolaris name = "vm2" memory = "128" kernel = "/home/xen/domains/vm2/platform/i86xen/kernel/unix" ramdisk = "/home/xen/domains/vm2/platform/i86pc/boot_archive" disk = ['file:/home/xen/domains/vm2/root.file,0,w'] root = "/dev/dsk/c0d0s0" vif = ['bridge=xbr0'] extra = "/platform/i86xen/kernel/unix"
Xen Installation Binary Packages Einheitlicher Kernel für Dom0 und DomU Xen aus Linux- Distribution SuSE, SLES Kein Modulsupport in DomU Security Updates? Source Packages Eigener schlanker DomU Kernel Fedora, RHEL Debian 4.0, 3.1+bpo eisxen XEN Live Distribution XENsource Demo, Xenoppix
Xen Administration Xm: Xen Management Graphische Tools starten, beenden, neustarten, abbrechen anhalten, neustarten, sichern, rücksichern Speicher und CPUs zuweisen XenMan XenEnterprise VirtualIron OpenQRM Libraries Console aufrufen Xen XML-RPC Migration auf andere Maschine Status, Uptime, Monitor anzeigen
Xen Tipps und Tricks (1) Trennung von OS und Daten Getrennte virtuelle Partitionen OS aus Template wiederherstellbar Verzeichnisse /boot und /lib/modules für Linux- Gast verfügbar machen Kernel-Module, System.map NFS-Export auf Host, mount im Gast Gemeinsames Dateisystem mit OCFS2 oder GFS (Host: r/w, Gast: ro)
Xen Tipps und Tricks (2) Console ohne Passwort (/etc/inittab) 1:2345:respawn:/bin/bash (schlecht!) Besser: /etc/inittab: 1:2345:respawn:/sbin/getty -w -n -l \ /root/mylogin.sh 38400 tty1 /root/mylogin.sh: #!/bin/sh exec /bin/login -f root WICHTIG: nur sinnvoll, wenn Netzwerk-Console deaktiviert oder anderweitig authentifiziert!
Xen Traps and Pitfalls (1) Schwäche: Aussagekraft der Fehlermeldungen Loop-Modul gemountet? Bridge verfügbar? Xen Netwerk-Skripte {network,vif}-{bridge,route,nat} Vollautomatisches Setup des Netzwerkes bei einfachen Netzwerkszenarien Gefährlich bei komplexeren Szenarien! Besser: Einsatz distributionsspez. Mechanismen
Xen Traps and Pitfalls (2) Vorcompilierte Kernel auf Xensource Enthalten kein cramfs-support Daher keine initrd möglich, nur initramfs Debian Pakete linux-image-*-xen-* nur zusammen mit xenhypervisor-* installieren Ansonsten falsche GRUB-Konfiguration backports.org: xen-hypervisor nur zusammen mit aktuellem Python installieren!
VMware Steckbrief Virtualisierung durch Simulation der Hardware Host-OS: Windows, Linux Gast-OS: Windows, Linux, FreeBSD, Solaris Fast alle i386-basierten Systeme als Gast möglich Simuliert SCSI/IDE, Netzwerkkarte, USB Karte Hohe Kompatibilität Performance-Nachteile bei I/O Operationen
VMware Funktionsweise Nutzung der Host-CPU für alle nichtprivilegierten Operationen Abfangen und Emulieren privilegierter Operationen Emulation realer Hardware z.b. BusLogic SCSI Adapter, PCnet32 Ethernet Emulation von HW-Interrups, I/O Ports, DMA Eigene Kernelmodule für Netzwerkfunktionen Zusatzfunktionen über VMware Tools (Gast) Balloon Driver, TimeSync, Enhanced Cursor
VMware Architektur (Server) [ Siehe Abbildung unter http://www.vmware.com/pdf/server_datasheet.pdf ]
VMware Produktpalette Desktop-Produkte Workstation VM auf lokaler Maschine Bildschirm in Fenster ACE HW-Abstraktion in großen Umgebungen Player Abspielen fertiger VMs Server-Produkte (GSX) Server Remote Console ESX Server Eigenes BS, realisiert als Linux-Kernelmodul Virtual Center VMotion
Weitere Virtualisierungsprodukte Linux vserver Ein Kernel für alle virtuellen Maschinen Virtualisierung diverser Subsysteme im Kernel Speicherverwaltung, Prozessverwaltung Filesysteme, Berechtigungen, Netzwerkstack Filesystem des Gast ist Verzeichnis des Host Zahlreiche Einschränkungen durch nichtvirtualisierte Subsysteme, z.b. Netfilter, Quota, Capabilities, Loopback
Weitere Virtualisierungsprodukte SW-Soft Virtuozzo / OpenVZ Ähnlicher Ansatz wie Linux-vServer Ausrichtung auf Internet Provider Höherer Grad an virtualisierten Subsystemen Quota, /proc-filesystem, Loopback, Netfilter, TUN Min-/Max-Speicher festlegbar Virtuozzo Power Panel als Administrationstool Virtuozzo Filesystem (VZFS) für homogene Gast-Systeme (nicht in OpenVZ!)
Performance-Vergleich [ Siehe Abbildung unter http://www.cl.cam.ac.uk/research/srg/netos/xen/performance.html ]
Online-Ressourcen Xen Homepage - http://www.cl.cam.ac.uk/research/srg/netos/xen/ XenSource Homepage - http://www.xensource.com/ Xen Installationsanleitung http://www.pug.org/index.php/xen-installation http://www.rrze.uni-erlangen.de/dienste/arbeiten-rechnen/linux/projekte/xen.shtml Installation von OpenSolaris unter Xen http://www.opensolaris.org/os/community/xen/how-to-8-15-06/solaris-domu/ FreeBSD unter Xen - http://txrx.org/xen/ VMware Homepage - http://www.vmware.com/ VMware Virtual Appliances http://www.vmware.com/vmtn/appliances/