Transcription

EinleitungXen grammierungFinally. . .Virtualisierung mit XenÜbersicht, Tools, API’sHenning SprangSilpion IT Solutions GmbH/B1 Systems GmbH2007-12-07 / Heinlein SLACHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Über den RednerVorschauÜber den Redner - Henning SprangFree Software Enthusiast und -Aktivist in verschiedenenProjekten (Debian, FAI, xen-tools, Xen)Virtualisierung:Nutzung diverser Virtualisierungs-Technologien für Test- undEntwicklungssystemeVMWare, Qemu, XenXen seit Ende 2005Mit-Autor von “Xen - Virtualisierung unter Linux”Software-Entwicklung:FAI mit Shell und Perl seit ca. 3 JahrenMobile Geräte, Client/Server, Web, XML mit Java, Python,PHP, RubyMitarbeiter von Silpion IT Solutions http://www.silpion.deHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Über den RednerVorschauVorschau I1Einleitung2Xen Programmierung6Finally. . .Henning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Was ist XenEin laufendes Xen System besteht aus:Ähnliche Virtualisierungs- SystemeEinsatzzweckeNutzungWer macht es - wer nutzt es?Was ist XenHypervisor-basierte VirtualisierungHypervisor: Kontrollinstanz für BetriebssystemeEffiziente ParavirtualisierungIm HVM-Modus: Nutzung von Prozessor-Features fürVirtualisierungHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Was ist XenEin laufendes Xen System besteht aus:Ähnliche Virtualisierungs- SystemeEinsatzzweckeNutzungWer macht es - wer nutzt es?Ein laufendes Xen System besteht aus:Einem Hypervisor (unterstützt PV und HVM)Domain0 - modifiziertes OS im PV ModusSteuerungsfunktionen und Bereitstellung von Treibernin Domain 0 laufen:Xend - Steuerungsdämonqemu-dm (device model) - emuliert Hardware-Schnitstellenxm - Kommandozeilen-Werkzeug1-n DomU-Systeme im PV oder HVM ModusVirtuelles NetzwerkStandard-Technologien: NAT, Bridge, RoutingHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Was ist XenEin laufendes Xen System besteht aus:Ähnliche Virtualisierungs- SystemeEinsatzzweckeNutzungWer macht es - wer nutzt es?Ähnliche Virtualisierungs- SystemeVMWare ESX ServerIBM AVM/LPARFür Xen HVM: KVM - Kernel Virtual MachineHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Was ist XenEin laufendes Xen System besteht aus:Ähnliche Virtualisierungs- SystemeEinsatzzweckeNutzungWer macht es - wer nutzt es?EinsatzzweckeBessere Auslastung von RessourcenTrennung von Diensten in eigenen OS-ContainernSoftware-Entwicklung und -TestingDesktop-Betrieb?Nicht für reguläre Nutzung (ACPI, Grafik, . . . )In Entwicklung, z.B. 3D- Beschleunigungs-API, HVMPerformance und Stabilität, Xen VFB(Virtual Frame Buffer)Henning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Was ist XenEin laufendes Xen System besteht aus:Ähnliche Virtualisierungs- SystemeEinsatzzweckeNutzungWer macht es - wer nutzt es?NutzungInstallation:Distributionspakete in allen Distributionen - gängigenPaketmanager benutzenPakete/Quellen von XenSource: neueste Features (alle 3-6Monate)Konfiguration und Bereitstellung von GastsystemenUmfangreich (man kann Bücher darüber schreiben.)Stark abhängig von Distribution, Anwendungsfall, Hardware,Versionen(Xen und Linux)Henning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Was ist XenEin laufendes Xen System besteht aus:Ähnliche Virtualisierungs- SystemeEinsatzzweckeNutzungWer macht es - wer nutzt es?Wer macht es - wer nutzt es?Wer macht Xen?Ursprünglich entwickelt in den Laboratorien von CambridgeAusgründung von XenSource in den USAKooperation fast ausnahmslos aller namhaften Herstellerweltweit, sowie einzelne Individuen und kleine bismitteldständische UnternehmenWer nutzt Xen?Lufthansa SystemsGoogleAmazon EC2 basiert auf XenDebian ProjektEs gibt eine sehr belebte Mailingliste von Usern!Henning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .StrategienLösungenWeitere InstallationswerkzeugeStrategienInstallation in ein gemountetes Verzeichnis mit geeignetenWerkzeugenNetzwerk-Installation über NFS- RootStarten des Distributions-Installers in einer VMDie SuSE und Fedora Tools gehen diesen Wegfür PV-Domains sind Modifikationen und spezielleVorbereitung nötigDebian D-I läuft noch nicht direkt in einer DomUIn HVM-Modus: Installations-CD startenNicht für alle unveränderten OS – zum BeispielSchwierigkeiten mit *BSDHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .StrategienLösungenWeitere InstallationswerkzeugeLösungenSuSE: Yast (grafisch), yumFedora: virt-manager (grafisch), virt-install (Konsole),yum(Konsole)Debian/generell nützliche und flexible Werkzeuge: xen-tools,FAI, GanetiCross-Distribution Installationen sind bei Fedora und SuSEhakeligFedora-Kernel hat Eigenheiten, die ihn für Debian undSuSE-Gäste ungeeignet machen - Kernel derGast-Distribution nutzen!Yast unter Fedora und Debian? Nein - Yum! – aber: korrektenAufruf knifflig und ändert sich von Version zu Version.Henning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .StrategienLösungenWeitere InstallationswerkzeugeWeitere InstallationswerkzeugeSelbstverständlich: Autoyast, Anaconda ttp://cobbler.et.redhat.com/Henning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-LiebhaberYast, VirtManagerUnter SuSE: YastStarten/Stoppen/manuelle ÜberwachungInstallation von SuSE-GästenFunktioniert rund und zuverlässigVirtManagerUnter Fedora GUI zum anlegen, installieren, starten, stoppen,manuell überwachen von VM’sBasiert auf libvirt – generische Bibliothek zum Managementvon Virtualisierungs-UmgebungenGenerell O.K. – an machen Stellen etwas hakeligHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-LiebhaberEnomalism, XenManEnomalismInteressant, aber noch alphaInstallationsschwierigkeiten, Packaging, Funktionalität – kannyum config zerschießenXenMan (Project ConVirt)Nettes GUI zum starten und stoppen, Konsole öffnenGast-Installation: Keine Erfolge im Test, ab 0.6 aber Konzeptund Dokumentation verbessertHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-LiebhaberOpenQRM, DTC-Xen IOpenQRMUmfangreiche Datacenter-Management-LösungViele Module für Integration von Virtualisierung, Storage,Monitoring, HA arbeiten unter einem InterfaceAllerdings: Support ur in den USA, fiken und SOAP-Server für DTCSteuerungskonsoleEinfaches Generieren von Performance-GrafikenDTC sehr komplex und umfangreich (kein Erfolg bei Versuch,es “eben mal” zu testen)Henning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-LiebhaberOpenQRM, DTC-Xen IIHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-LiebhaberGanetiGaneti - Management-Tool für Xen-basierte Clusterhttp://code.google.com/p/ganeti/ – getestetVersion 1.2b(eta)2Installation von virtuellen InstanzenVereinfacht Einrichten und Verwalten redundanterBlock-Devices mit DRBDVerschieben von Node zu Node im FehlerfallDateien kopieren und Kommandos ausführen auf demgesamten ClusterVerschiedene andere Management-KommandosHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-LiebhaberEin Werkzeug-Kasten für mxen-shellCluster-Management:GanetiDeployment und Netzwerk-Konfiguration:FAIssh, brctl, ip, iptablesHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-Liebhaberxen-toolsGeneriert Xen-Konfigurationen und Block-DevicesConfig-Templates werden gefüllt aus:xen-tools Haupt-KonfigurationsdateiPreset Dateien (–conf: komplett überarbeiten! - erstmal xenund lvm plugin Erweiterungenig)Kommandozeilen-EingabeRoles für spezifische AnpassungenErweiterbar mit Hooks und eigenen Role ScriptenHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-Liebhaberxen-tools - Konfiguration - xen-tools.conf Ilvm vmdisksdebootstrap 1sizememoryswapfsdist 1Gb128Mb128Mbext3etch#####Disk image size.Memory sizeSwap sizeuse the EXT3 filesystem for the disk image.Default distribution to install.dhcp 1kernel /boot/vmlinuz-2.6.18-5-xen-686initrd /boot/initrd.img-2.6.18-5-xen-686mirror http://ftp.de.debian.org/debianHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-Liebhaberxen-tools - Konfiguration - host xen-tools-test.conf Ihostname xen-tools-testmac 00:16:3E:3C:02:80install 1template /etc/xen-tools/paravirtual.tmplsize 5GBdist centos-5install-method rinsemirror http://debmirror/mirrors/role centos-fixesDas Template hierzu findet sich in den Beispieldateien paravirtual.tmplHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-Liebhaberxen-tools - Konfiguration - role centos-fixes I#!/bin/shTARGET 1chroot TARGET passwdecho "root" chroot TARGET passwd root --stdinecho ’p 0 nosegneg’ TARGET/etc/ld.so.conf.d/libc6-xen.confchroot TARGET ldconfigmount -o bind /proc TARGET/procchroot TARGET yum install -y kernel-xen dhclientumount TARGET/procHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-LiebhaberXen-Shell IXen-ShellManagement-Shell für einzelne Xen DomainsFunktioniert auf Anhieb, interessant für HostingFunktionen - nach Auswahl der zu steuernden DomU:starten, stoppenKonsolen-ZugriffRe-InstallationUnterstützt mehrere Screens - Steuerung wie bei “screen”Henning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-LiebhaberXen-Shell IIHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-LiebhaberXen-Shell - NutzungInstallation mit “apt-get install” oder aus Sourcen mit “makeinstall”User anlegen: r xen-master”echoxen shell ’xen-master’»/etc/xen/ MYCONFIGFILE .cfg/etc/sudoers anpassen - folgende Einträge ergänzen:User AliasCmnd AliasCmnd AliasXENUSERSXENUSERSXENXENIMGALL imageNOPASSWD: XEN,XENIMGHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-LiebhaberXen-Shell – Re-ImagingFür re-imaging support ist die Datei /home/ USER/image.shnotwendig:#!/bin/shhostname 1username 2sudo xen-create-image --force --config host hostname.conf --adHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-LiebhaberKommandozeilen-Werkzeuge – xmXm – Das mitgelieferte KonsolenwerzeugStarten/Stoppen/Herunterfahren von VM’sTop – Performance Daten anzeigenJegliche Konfigurationseinstellung zur Laufzeit ändernHilfreich: man xm, xm help xm help kommando Henning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-LiebhaberKommandozeilen-Werkzeuge – FAIKein Xen-spezifisches Werkzeug(einige Funktionen wurdenaber speziell für die Nutzung mit Xen angepasst) Installations-FrameworkScript- und ibelInstallation via Netzwerk oder in ein gemountestes FilesystemKann auch echte Hardware über Netzwerk oder CD(USB-Stick in Arbeit) installierenMit beliebigen Scripten erweiterbarHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Yast, VirtManagerEnomalism, XenManOpenQRM, DTC-XenEin Werkzeug-Kasten für Kommandozeilen-LiebhaberFAI-Integration für xen-toolsEinfach ein Role-Script anlegen, zum hTARGET 1CMD "fai -N -v -u hostname dirinstall TARGET"echo running CMD CMDHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Konfigurations-ScriptingXenAPIAndere Dateien sind Python ScripteAlso kann man alle möglichen Dinge damit anstellenZum Beispiel: Starten von live CD’s im HVM Modus(Ohne Scripting und GUI müsste man immer eine eigeneKonfigurationsdatei anlegen)mit Skripting kann man diesen aber modularisieren – sieheCode-Beispiele paravirtual.tmpl und hvm.tmplWiederverwendbare Funktionen und Einstellungen einbinden –siehe Code-Beispiele vminclude.py, vmscriptlib.py undkernel.confWeiter fortgeschrittene Anwendung z.B.: MAC anhandhostname aus zentraler DBHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Konfigurations-ScriptingXenAPIAndere API’sXenAPI – Was ist es?Erst ab Xen 3.1XML-RPC Interface - über Unix Socket oder HTTPIn Zukunft feste und zentrale Schnittstelle für Managementund Monitoring-Tools – Grundlage für xm, Xen-CIM undandere.Bindings für diverse Sprachen: C, Python, Java, PerlLeider kaum (für Programmierer effizient nutzbar)dokumentiert:API nur als PDF für XML-RPC calls - nicht gut zu browsenWenige Beispiele für Nutzung der BindingsHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Konfigurations-ScriptingXenAPIAndere API’sXenAPI – Beispiel#!/usr/bin/pythonimport syssys.path.append(’/usr/lib/python’)from xen.xm.XenAPI import Sessionsession Session(’http://localhost:9363/’)session.login with password(’ ’, ’ ’)print "Session: " str(session)vm session.xenapi.VMvm list session.xenapi.VM.get all()print vm listWeiteres Beispiel siehe xen-api-sample-advanced.pyHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .Konfigurations-ScriptingXenAPIAndere API’sAnderelibvirtGeneralisierte Steuerungs-API für Virtualisierungs-UmgebungenBasis für Fedora’s Virt-ManagerArgo/ArgosRemote-Protokoll, das via HTTP Connections Fernsteuerungvon Xen Hosts erlaubtVon dem Entwickler von xen-tools und xen-shellArgo: funktionierende, ältere ImplementierungArgos: kompletter Rewrite in Ruby - AlphaHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .FazitWeitere Infos zu XenDankeschönFazitXen: Fortgeschrittene und mächtigeVirtualisierungs-TechnologieFlexibel anpass- und skriptbarKomplexe virtuelle Netzwerke realisierbarZu beachten bei der Planung:Wahl der passenden Distributionen und WerkzeugeVon Entwicklern und Distributoren vorgesehene Arbeitsweiseneinhalten macht vieles leichtAnforderungen prüfen, und Xen mit den anderen Lösungenvergleichen – im Zweifel unabhänbgige Berater konsultierenHardware-Entwicklungen stehen noch aus (I/OVirtualisierung)Viele third party Tools in Entwicklung und inzwischen gutnutzbarHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .FazitWeitere Infos zu XenDankeschönWeitere Infos zu Xen IXen. Virtualisierung unter Linux.Funktionsweise, Installation, Administration und ManagementVon Benk, Zdrzalek, Dehner, Sprangerschienen beim Opensourcepress VerlagHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .FazitWeitere Infos zu XenDankeschönWeitere Infos zu Xen IIWikishttp://wiki.xensource.com - das offizielleenglisch-sprachige Wiki von XenSourcehttp://www.xen-info.de/wiki/ – deutsches XenWiki, im AufbauMailinglistenEnglisch: http://lists.xensource.comDeutsch: http://www.xen-info.deHenning SprangVirtualisierung mit Xen

EinleitungXen grammierungFinally. . .FazitWeitere Infos zu XenDankeschönDankeschönDiese Präsentation wurde ermöglicht durch B1-Systems undSilpion IT Solutions. Xen Consulting, Schulung, Entwicklung stems.dehttp://www.silpion.deHenning SprangVirtualisierung mit Xen

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 Spran