Virtualisierung mit Xen
Transcription
Virtualisierung mit Xen
Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Virtualisierung mit Xen Übersicht, Tools, API’s Henning Sprang Silpion IT Solutions GmbH/B1 Systems GmbH 2007-12-07 / Heinlein SLAC Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Über den Redner Vorschau Über den Redner - Henning Sprang Free Software Enthusiast und -Aktivist in verschiedenen Projekten (Debian, FAI, xen-tools, Xen) Virtualisierung: Nutzung diverser Virtualisierungs-Technologien für Test- und Entwicklungssysteme VMWare, Qemu, Xen Xen seit Ende 2005 Mit-Autor von “Xen - Virtualisierung unter Linux” Software-Entwicklung: FAI mit Shell und Perl seit ca. 3 Jahren Mobile Geräte, Client/Server, Web, XML mit Java, Python, PHP, Ruby Mitarbeiter von Silpion IT Solutions http://www.silpion.de Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Über den Redner Vorschau Vorschau I 1 Einleitung 2 Xen Übersicht 3 Gast-Installation 4 Management-Werkzeuge 5 Programmierung 6 Finally. . . Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Was ist Xen Ein laufendes Xen System besteht aus: Ähnliche Virtualisierungs- Systeme Einsatzzwecke Nutzung Wer macht es - wer nutzt es? Was ist Xen Hypervisor-basierte Virtualisierung Hypervisor: Kontrollinstanz für Betriebssysteme Effiziente Paravirtualisierung Im HVM-Modus: Nutzung von Prozessor-Features für Virtualisierung Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Was ist Xen Ein laufendes Xen System besteht aus: Ähnliche Virtualisierungs- Systeme Einsatzzwecke Nutzung Wer macht es - wer nutzt es? Ein laufendes Xen System besteht aus: Einem Hypervisor (unterstützt PV und HVM) Domain0 - modifiziertes OS im PV Modus Steuerungsfunktionen und Bereitstellung von Treibern in Domain 0 laufen: Xend - Steuerungsdämon qemu-dm (device model) - emuliert Hardware-Schnitstellen xm - Kommandozeilen-Werkzeug 1-n DomU-Systeme im PV oder HVM Modus Virtuelles Netzwerk Standard-Technologien: NAT, Bridge, Routing Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Was ist Xen Ein laufendes Xen System besteht aus: Ähnliche Virtualisierungs- Systeme Einsatzzwecke Nutzung Wer macht es - wer nutzt es? Ähnliche Virtualisierungs- Systeme VMWare ESX Server IBM AVM/LPAR Für Xen HVM: KVM - Kernel Virtual Machine Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Was ist Xen Ein laufendes Xen System besteht aus: Ähnliche Virtualisierungs- Systeme Einsatzzwecke Nutzung Wer macht es - wer nutzt es? Einsatzzwecke Bessere Auslastung von Ressourcen Trennung von Diensten in eigenen OS-Containern Software-Entwicklung und -Testing Desktop-Betrieb? Nicht für reguläre Nutzung (ACPI, Grafik, . . . ) In Entwicklung, z.B. 3D- Beschleunigungs-API, HVM Performance und Stabilität, Xen VFB(Virtual Frame Buffer) Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Was ist Xen Ein laufendes Xen System besteht aus: Ähnliche Virtualisierungs- Systeme Einsatzzwecke Nutzung Wer macht es - wer nutzt es? Nutzung Installation: Distributionspakete in allen Distributionen - gängigen Paketmanager benutzen Pakete/Quellen von XenSource: neueste Features (alle 3-6 Monate) Konfiguration und Bereitstellung von Gastsystemen Umfangreich (man kann Bücher darüber schreiben...) Stark abhängig von Distribution, Anwendungsfall, Hardware, Versionen(Xen und Linux) Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Was ist Xen Ein laufendes Xen System besteht aus: Ähnliche Virtualisierungs- Systeme Einsatzzwecke Nutzung Wer macht es - wer nutzt es? Wer macht es - wer nutzt es? Wer macht Xen? Ursprünglich entwickelt in den Laboratorien von Cambridge Ausgründung von XenSource in den USA Kooperation fast ausnahmslos aller namhaften Hersteller weltweit, sowie einzelne Individuen und kleine bis mitteldständische Unternehmen Wer nutzt Xen? Lufthansa Systems Google Amazon EC2 basiert auf Xen Debian Projekt Es gibt eine sehr belebte Mailingliste von Usern! Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Strategien Lösungen Weitere Installationswerkzeuge Strategien Installation in ein gemountetes Verzeichnis mit geeigneten Werkzeugen Netzwerk-Installation über NFS- Root Starten des Distributions-Installers in einer VM Die SuSE und Fedora Tools gehen diesen Weg für PV-Domains sind Modifikationen und spezielle Vorbereitung nötig Debian D-I läuft noch nicht direkt in einer DomU In HVM-Modus: Installations-CD starten Nicht für alle unveränderten OS – zum Beispiel Schwierigkeiten mit *BSD Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Strategien Lösungen Weitere Installationswerkzeuge Lösungen SuSE: Yast (grafisch), yum Fedora: virt-manager (grafisch), virt-install (Konsole), yum(Konsole) Debian/generell nützliche und flexible Werkzeuge: xen-tools, FAI, Ganeti Cross-Distribution Installationen sind bei Fedora und SuSE hakelig Fedora-Kernel hat Eigenheiten, die ihn für Debian und SuSE-Gäste ungeeignet machen -> Kernel der Gast-Distribution nutzen! Yast unter Fedora und Debian? Nein - Yum! – aber: korrekten Aufruf knifflig und ändert sich von Version zu Version. Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Strategien Lösungen Weitere Installationswerkzeuge Weitere Installationswerkzeuge Selbstverständlich: Autoyast, Anaconda kickstart Smartdomains http://smartdomains.sourceforge.net/ mln http://mln.sourceforge.net/ cobbler/koan http://cobbler.et.redhat.com/ Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber Yast, VirtManager Unter SuSE: Yast Starten/Stoppen/manuelle Überwachung Installation von SuSE-Gästen Funktioniert rund und zuverlässig VirtManager Unter Fedora GUI zum anlegen, installieren, starten, stoppen, manuell überwachen von VM’s Basiert auf libvirt – generische Bibliothek zum Management von Virtualisierungs-Umgebungen Generell O.K. – an machen Stellen etwas hakelig Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber Enomalism, XenMan Enomalism Interessant, aber noch alpha Installationsschwierigkeiten, Packaging, Funktionalität – kann yum config zerschießen XenMan (Project ConVirt) Nettes GUI zum starten und stoppen, Konsole öffnen Gast-Installation: Keine Erfolge im Test, ab 0.6 aber Konzept und Dokumentation verbessert Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber OpenQRM, DTC-Xen I OpenQRM Umfangreiche Datacenter-Management-Lösung Viele Module für Integration von Virtualisierung, Storage, Monitoring, HA arbeiten unter einem Interface Allerdings: Support ur in den USA, Code-Qualität unbefriedigend DTC-Xen Performance-Grafiken und SOAP-Server für DTC Steuerungskonsole Einfaches Generieren von Performance-Grafiken DTC sehr komplex und umfangreich (kein Erfolg bei Versuch, es “eben mal” zu testen) Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber OpenQRM, DTC-Xen II Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber Ganeti Ganeti - Management-Tool für Xen-basierte Cluster http://code.google.com/p/ganeti/ – getestet Version 1.2b(eta)2 Installation von virtuellen Instanzen Vereinfacht Einrichten und Verwalten redundanter Block-Devices mit DRBD Verschieben von Node zu Node im Fehlerfall Dateien kopieren und Kommandos ausführen auf dem gesamten Cluster Verschiedene andere Management-Kommandos Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber Basis-Werkzeuge: xen-tools xm xen-shell Cluster-Management: Ganeti Deployment und Netzwerk-Konfiguration: FAI ssh, brctl, ip, iptables Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber xen-tools Generiert Xen-Konfigurationen und Block-Devices Config-Templates werden gefüllt aus: xen-tools Haupt-Konfigurationsdatei Preset Dateien (–conf: komplett überarbeiten! - erstmal xen und lvm plugin Erweiterungenig) Kommandozeilen-Eingabe Roles für spezifische Anpassungen Erweiterbar mit Hooks und eigenen Role Scripten Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber xen-tools - Konfiguration - xen-tools.conf I lvm = vmdisks debootstrap = 1 size memory swap fs dist = = = = = 1Gb 128Mb 128Mb ext3 etch # # # # # Disk image size. Memory size Swap size use the EXT3 filesystem for the disk image. Default distribution to install. dhcp = 1 kernel = /boot/vmlinuz-2.6.18-5-xen-686 initrd = /boot/initrd.img-2.6.18-5-xen-686 mirror = http://ftp.de.debian.org/debian Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber xen-tools - Konfiguration - host_xen-tools-test.conf I hostname=xen-tools-test mac=00:16:3E:3C:02:80 install=1 template=/etc/xen-tools/paravirtual.tmpl size=5GB dist=centos-5 install-method=rinse mirror=http://debmirror/mirrors/ role=centos-fixes Das Template hierzu findet sich in den Beispieldateien paravirtual.tmpl Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber xen-tools - Konfiguration - role centos-fixes I #!/bin/sh TARGET=$1 chroot $TARGET passwd echo "root"| chroot $TARGET passwd root --stdin echo ’p 0 nosegneg’ > $TARGET/etc/ld.so.conf.d/libc6-xen.conf chroot $TARGET ldconfig mount -o bind /proc $TARGET/proc chroot $TARGET yum install -y kernel-xen dhclient umount $TARGET/proc Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber Xen-Shell I Xen-Shell Management-Shell für einzelne Xen Domains Funktioniert auf Anhieb, interessant für Hosting Funktionen - nach Auswahl der zu steuernden DomU: starten, stoppen Konsolen-Zugriff Re-Installation Unterstützt mehrere Screens - Steuerung wie bei “screen” Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber Xen-Shell II Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber Xen-Shell - Nutzung Installation mit “apt-get install” oder aus Sourcen mit “make install” User anlegen: “sh /usr/share/doc/xen-shell/examples/xen-add-user xen-master” echo xen_shell=’xen-master’»/etc/xen/<MYCONFIGFILE>.cfg /etc/sudoers anpassen - folgende Einträge ergänzen: User_Alias Cmnd_Alias Cmnd_Alias XENUSERS XENUSERS XEN XENIMG ALL = = = = henning,xen-master /usr/sbin/xm /usr/bin/xen-create-image NOPASSWD: XEN,XENIMG Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber Xen-Shell – Re-Imaging Für re-imaging support ist die Datei /home/$USER/image.sh notwendig: #!/bin/sh hostname=$1 username=$2 sudo xen-create-image --force --config host_$hostname.conf --ad Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber Kommandozeilen-Werkzeuge – xm Xm – Das mitgelieferte Konsolenwerzeug Starten/Stoppen/Herunterfahren von VM’s Top – Performance Daten anzeigen Jegliche Konfigurationseinstellung zur Laufzeit ändern Hilfreich: man xm, xm help xm help <kommando> Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber Kommandozeilen-Werkzeuge – FAI Kein Xen-spezifisches Werkzeug(einige Funktionen wurden aber speziell für die Nutzung mit Xen angepasst) Installations-Framework Script- und Klassen-basiert Multi-Distribution-Installation Flexibel Installation via Netzwerk oder in ein gemountestes Filesystem Kann auch echte Hardware über Netzwerk oder CD (USB-Stick in Arbeit) installieren Mit beliebigen Scripten erweiterbar Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Yast, VirtManager Enomalism, XenMan OpenQRM, DTC-Xen Ein Werkzeug-Kasten für Kommandozeilen-Liebhaber FAI-Integration für xen-tools Einfach ein Role-Script anlegen, zum Beispiel /etc/xen-tools/role.d/fai-install: #!/bin/sh TARGET=$1 CMD="fai -N -v -u $hostname dirinstall $TARGET" echo running $CMD $CMD Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Konfigurations-Scripting XenAPI Andere API’s Konfigurations-Scripting Xen-Konfigurations-Dateien sind Python Scripte Also kann man alle möglichen Dinge damit anstellen Zum Beispiel: Starten von live CD’s im HVM Modus (Ohne Scripting und GUI müsste man immer eine eigene Konfigurationsdatei anlegen) mit Skripting kann man diesen aber modularisieren – siehe Code-Beispiele paravirtual.tmpl und hvm.tmpl Wiederverwendbare Funktionen und Einstellungen einbinden – siehe Code-Beispiele vminclude.py, vmscriptlib.py und kernel.conf Weiter fortgeschrittene Anwendung z.B.: MAC anhand hostname aus zentraler DB Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Konfigurations-Scripting XenAPI Andere API’s XenAPI – Was ist es? Erst ab Xen 3.1 XML-RPC Interface - über Unix Socket oder HTTP In Zukunft feste und zentrale Schnittstelle für Managementund Monitoring-Tools – Grundlage für xm, Xen-CIM und andere. Bindings für diverse Sprachen: C, Python, Java, Perl Leider kaum (für Programmierer effizient nutzbar) dokumentiert: API nur als PDF für XML-RPC calls - nicht gut zu browsen Wenige Beispiele für Nutzung der Bindings Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Konfigurations-Scripting XenAPI Andere API’s XenAPI – Beispiel #!/usr/bin/python import sys sys.path.append(’/usr/lib/python’) from xen.xm.XenAPI import Session session = Session(’http://localhost:9363/’) session.login_with_password(’ ’, ’ ’) print "Session: " + str(session) vm = session.xenapi.VM vm_list = session.xenapi.VM.get_all() print vm_list Weiteres Beispiel siehe xen-api-sample-advanced.py Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Konfigurations-Scripting XenAPI Andere API’s Andere libvirt Generalisierte Steuerungs-API für Virtualisierungs-Umgebungen Basis für Fedora’s Virt-Manager Argo/Argos Remote-Protokoll, das via HTTP Connections Fernsteuerung von Xen Hosts erlaubt Von dem Entwickler von xen-tools und xen-shell Argo: funktionierende, ältere Implementierung Argos: kompletter Rewrite in Ruby - Alpha Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Fazit Weitere Infos zu Xen Dankeschön Fazit Xen: Fortgeschrittene und mächtige Virtualisierungs-Technologie Flexibel anpass- und skriptbar Komplexe virtuelle Netzwerke realisierbar Zu beachten bei der Planung: Wahl der passenden Distributionen und Werkzeuge Von Entwicklern und Distributoren vorgesehene Arbeitsweisen einhalten macht vieles leicht Anforderungen prüfen, und Xen mit den anderen Lösungen vergleichen – im Zweifel unabhänbgige Berater konsultieren Hardware-Entwicklungen stehen noch aus (I/O Virtualisierung) Viele third party Tools in Entwicklung und inzwischen gut nutzbar Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Fazit Weitere Infos zu Xen Dankeschön Weitere Infos zu Xen I Xen. Virtualisierung unter Linux. Funktionsweise, Installation, Administration und Management Von Benk, Zdrzalek, Dehner, Sprang erschienen beim Opensourcepress Verlag Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Fazit Weitere Infos zu Xen Dankeschön Weitere Infos zu Xen II Wikis http://wiki.xensource.com - das offizielle englisch-sprachige Wiki von XenSource http://www.xen-info.de/wiki/ – deutsches Xen Wiki, im Aufbau Mailinglisten Englisch: http://lists.xensource.com Deutsch: http://www.xen-info.de Henning Sprang Virtualisierung mit Xen Einleitung Xen Übersicht Gast-Installation Management-Werkzeuge Programmierung Finally. . . Fazit Weitere Infos zu Xen Dankeschön Dankeschön Diese Präsentation wurde ermöglicht durch B1-Systems und Silpion IT Solutions. Xen Consulting, Schulung, Entwicklung und Forschung http://www.xen-info.de http://www.b1-systems.de http://www.silpion.de Henning Sprang Virtualisierung mit Xen