Xen Kochbuch

Dies ist die Webseite des Xen Kochbuchs, einem Buch, dass sich dem Thema Virtualisierung mit Hilfe des Xen Hypervisors beschäftigt.

Das Buch mit der ISBN Nummer 978-3-89721-729-4 wird verlegt vom O'Reilly Verlag. Es kann bei oreilly.de, von amazon.de oder dem lokalen Buchhändler der Wahl erworben werden.

1. Auflage Januar 2009
ISBN 978-3-89721-729-4
Seiten 488, gebundene Ausgabe
EUR39.90, SFR67.90




Übersicht:

Kurzbeschreibung

Virtualisierung ist ein beliebter Weg, um Hardware- Ressourcen kostensparend mehreren Gastsystemen zur Verfügung zu stellen. XEN hat sich dabei als intelligente Virtualisierungstechnik bewährt, bei der I/O-APIs, ein zentraler Hypervisor und ein Domänensystem für hohe Geschwindigkeit und hervorragende Isolation der Gastsysteme sorgen.

Ausführliche Beschreibung der Buchrückseite

Im nützlichen Rezeptformat aus Aufgabe, Lösung und Erläuterung erfahren Leser in diesem Kochbuch, wie sie XEN 3 installieren, booten und konfigurieren, welche Administrationstools wie genutzt werden können, welche Sicherheitsaspekte zu beachten sind, und vieles mehr.

Virtualisierung ist einer der wichtigsten aktuellen IT-Trends und Xen ist einer ihrer populärsten Vertreter - soviel gehört inzwischen schon zum Allgemeinwissen. Auch, dass Virtualisierung Kosten spart, die Flexibilität und Effizienz erhöht und Teil einer wirkungsvollen Sicherheitsstrategie sein kann.

Hier erfahren Sie nun alles rund um den praktischen Einsatz der Open Source-Technologie Xen in der Version 3.3, von der Installation über die Konfiguration des Netzwerks bis zu zahlreichen fortgeschritteneren Themen wie Hochverfügbarkeit, Sicherheit oder der Entwicklung eigener Programme zur Systemverwaltung. Wie lassen sich virtuelle Maschinen überwachen? Wie führt man reibungslose Migrationen durch? Wie kann ich die Ressourcen kontrollieren und was mache ich bei kryptischen Fehlermeldungen? Krempeln Sie die Ärmel hoch, hier wird ernsthaft gearbeitet!

Reiner, ungestreckter Stoff.

Mit Vorgeplänkel hält sich der Autor nicht lange auf. Kompakt erläutert er zentrale Konzepte und Begriffe, um sich dann den tatsächlichen und ganz konkreten Aufgaben und Fragen eines SysAdmins zu widmen und substanzielle Informationen und nützliche Hilfestellungen zu bieten.

Zu jedem Problem gibt es eine Lösung.

In O'Reillys bewährter Kochbuch-Struktur greift Hans-Joachim Picht typische Fragestellungen rund um die Virtualisierung mit Xen auf und liefert gleich die passende Lösung. Eine ausführliche Diskussion des Lösungswegs vertieft das Verständnis des Gezeigten und verweist auf Alternativen, Fallstricke oder angrenzende Themen.

Durch den modularen Aufbau des Buchs können Sie jederzeit gezielt die Rezepte herauszugreifen, die Sie gerade interessieren.

Praxiserfahrung sticht

Mit etwas angelesenem Wissen und viel grauer Theorie braucht man einem gestandenen Linux-Administratoren gar nicht erst zu kommen. Was zählt, sind erprobte Techniken, vielfach angewandtes Know-how aus der täglichen Praxis und gerade auch das Wissen um die Dinge, die nicht so einfach funktionieren, wie sie sollten. Hier bekommen Sie die gesammelte Erfahrung eines Profis aus erster Hand.

Kolophon

Barisia imbricata
Los Dinamos, Federal District © Petr Myska Quelle: vivanatura.org


Das Tier auf dem Cover vom Xen Kochbuch ist eine Geschuppte Alligatorschleiche (Barisia imbricata). Diese Art der Alligatorschleichen (auch Krokodilschleichen genannt) lebt in Mittelamerika und ist an Höhen bis zu 4000 Meter angepasst. Die Geschuppte Alligatorschleiche ist lebendgebärend (ovivipar), d.h. die Eier werden bis zur Schlüpfreife im Leib des Weibchens zurückgehalten. Solange werden die Jungen von der Dottermasse der Eier ernährt.

Als Textschrift verwenden wir die Linotype Birka, die Überschriftenschrift ist die Adobe Myriad Condensed und die Nichtproportionalschrift för Codes ist LucasFont's TheSans Mono Condensed. Die in diesem Buch enthaltenen Abbildungen stammen von Michael Oreal und wurden mit Adobe FreeHand MX 11 erzeugt.

Inhaltsverzeichnis

Dieses Buch besteht aus 20 Kapitel sowie drei Anhängen, auf die sich die folgenden Inhalte verteilen:

Kapitel 1, Einführung in die Virtualisierung

Als Erstes wollen wir auf das Thema Virtualisierung im Allgemeinen eingehen und erklären, was sich hinter dem Begriff verbirgt. Weiterhin gehen wir kurz auf die Geschichte der Virtualisierung ein, gefolgt von möglichen Anwendungsszenarien sowie einem Überblick über die verschiedenen Virtualisierungsarten, denen man heutzutage begegnet.

Kapitel 2, Xen installieren und das Hostsystem vorbereiten (Domain-0)

Als Grundlage für alles Weitere wollen wir Ihnen zeigen, wie Sie Ihr bestehendes Linux-System auf den Einsatz von Xen vorbereiten.

Kapitel 3, Konfiguration des Hostsystems (Domain-0)

Nachdem in Kapitel 2, Xen installieren und das Hostsystem vorbereiten (Domain-0) die notwendigen Voraussetzungen installiert wurden, macht Sie dieses Kapitel mit allen Dingen rund um die Konfiguration der Domain-0, dem Hostsystem, vertraut.

Kapitel 4, Vorbereitung des Systems auf die Gäste (Paravirtualisierung)

Jetzt, wo das Hostsystem in der Lage ist, ein Gastsystem zu betreiben, betrachtet das Kapitel 4, Vorbereitung des Systems auf die Gäste (Paravirtualisierung) die zur Einrichtung einer virtuellen Maschine notwendigen Schritte. Neben verschiedenen Möglichkeiten, eine virtuelle Festplatte einzurichten, stehen in diesem Kapitel die benötigten Anweisungen, um eine virtuelle Maschine unabhängig von einer bestimmten Linux-Distribution aufzusetzen. Neben der Erstellung einer Konfigurationsdatei und den nötigen Anpassungen der Netzwerkkonfiguration wird beschrieben, wie man sich mit einem Gastsystem über die Kommandozeile und die grafische Oberfläche verbindet.

Kapitel 5, Distributionsspezifische Gast-Installation (Paravirtualisierung)

Dieses Kapitel beschreibt die distributionsspezifische Installation von Gastsystemen. Aufgrund der Tatsache, dass von Distribution zu Distribution unterschiedliche Insellösungen existieren, wird auf die Installation in folgenden weitverbreiteten Distributionen eingegangen: Debian, Fedora, SUSE und Ubuntu. Am Ende des Kapitels ist zusätzlich die Installation von NetBSD beschrieben.

Kapitel 6, Unmodifizierte Gastsysteme

In diesem Kapitel, das mit einigen Vorbemerkungen zum Thema Hardware-Virtualisierung beginnt, werden Sie mit den notwendigen Techniken vertraut gemacht, die es ermöglichen, ein unmodifiziertes Betriebssystem, beispielsweise aus dem Hause Microsoft, unter Linux in einer Xen-Instanz zu betreiben.

Kapitel 7, Hardwarezugriff

Der Zugriff auf verschiedene Hardware aus einer virtuellen Maschine heraus wird in diesem Kapitel besprochen. Hierbei betrachten wir sowohl virtuelle Hardware, die einer unprivilegierten virtuellen Maschine zugewiesen werden kann, als auch den direkten Zugriff eines Gastsystems auf die Hardware.

Kapitel 8, Automatische Installation

Einen wesentlichen Vorteil der Virtualisierung lernen wir in Kapitel 8, Automatische Installation kennen: die Möglichkeit, neue Systeme in kurzer Zeit zur Verfügung zu stellen. Dies wird vor allem durch die Technik des Klonens virtueller Maschinen möglich, wobei ein System einmalig installiert wird, um daraus anschliessend einfach weitere Kopien anzufertigen. Weiterhin beschäftigt sich dieser Teil des Buches mit Fragen rund um das Thema automatisierte Installation.

Kapitel 9, Backup & Restore

Dieses Kapitel zeigt Ihnen die besonderen Vorteile und Fallstricke, denen man begegnet, wenn es um die Datensicherung oder das Wiederherstellen eines Xen-Systems geht.

Kapitel 10, Migration virtueller Maschinen

Dieses Kapitel beschäftigt sich anfangs mit den Möglichkeiten der Migration von physikalischen Servern zu virtuellen Maschinen. Im Weiteren wird darauf eingegangen, wie vorhandene Virtualisierungslösungen zu Xen migriert werden können.

Kapitel 11, Live-Migration

Den Vorteil virtueller Maschinen, dass sich das gesamte System mit vergleichsweise geringem Aufwand auf ein anderes physikalisches System migrieren lässt, betrachten wir in diesem Kapitel, das sich der Live-Migration widmet.

Kapitel 12, Hochverfügbarkeit

Nachdem wir uns in den vorangegangenen zwei Kapiteln mit der Migration vertraut gemacht haben, wollen wir uns diese nun zunutze machen, um Hochverfügbarkeits- Cluster auf Xen-Basis aufzubauen.

Kapitel 13, Monitoring

Dieses Kapitel beschäftigt sich mit dem Warum, Was, Wann, Wo und Wie des Monitorings, mit den Xen-spezifischen Aspekten, dem Einsatz von Linux-Bordmitteln und auch mit grossen Monitoring-Lösungen wie Nagios.

Kapitel 14, Virtuelle Maschinen verwalten

In diesem Kapitel werden einige alternative Lösungen zum zentralen Xen-Verwaltungsprogramm xm vorgestellt. Diese reichen von kommandozeilenbasierten Programmen über Web-Frontends bis hin zu grafischen Oberflächen.

Kapitel 15, Eigene Anwendungen zum Xen-Management entwickeln

In diesem Abschnitt des Xen-Kochbuchs wird erläutert, wie man aus eigenen Programmen heraus auf die Xen-Funktionen zugreifen kann. Dies ist vor allem für Anwendungsentwickler interessant, die bestehende Anwendungen um Funktionen zur Verwaltung virtueller Maschinen erweitern oder eine eigene, angepasste Management-Lösung erstellen wollen.

Kapitel 16, Der XenStore

In diesem Kapitel eignen wir uns Wissen über den XenStore an, eine Technologie, mit der Informationen zwischen virtuellen Maschinen ausgetauscht oder gespeichert werden und die bei der Fehlersuche oder bei der Entwicklung eigener Treiber und Programme hilfreich ist.

Kapitel 17, Ressourcenkontrolle

In diesem Kapitel wird beschrieben, wie die Ressourcen Speicher, CPU sowie Netzwerkbandbreite unter den einzelnen Gästen aufgeteilt werden. Weiterhin werden wir lernen, wie einer Domäne zusätzliche Ressourcen zur Verfügung gestellt werden können. Obendrein werden Wege aufgezeigt, um zu verhindern, dass eine virtuelle Maschine bestimmte Ressourcen übermässig nutzt und dabei andere Gastsysteme blockiert.

Kapitel 18, Sicherheit

Dieses Kapitel widmet sich den Sicherheitsaspekten einer Xen-Installation. Hierbei werden ausgehend von allgemeinen Hinweisen folgende Themen behandelt: der Einsatz verschlüsselter Dateisystemimages, unterschiedliche Firewall-Architekturen, Policies sowie der Einsatz von Intrusion-Detection-Systeme in virtualisierten Umgebungen.

Kapitel 19, Troubleshooting

Hier finden Sie die fünf häufigsten Probleme, die beim Einsatz von Xen typischerweise auftauchen können und natürlich die entsprechenden Lösungen. Anschliessend gehen wir noch darauf ein, wie man bei den Entwicklern von Xen einen Bug- Report einreicht.

Kapitel 20, Erweiterte Netzwerkkonfiguration

Dieses Kapitel beschäftigt sich mit fortgeschrittenen Aspekten der Netzwerkkonfiguration in Host und Gast. Neben der Konfiguration eines VLANs wird auf das Thema Bonding eingegangen. In den Anhängen zum Buch finden Sie noch eine Reihe von Informationen zum Nachschlagen. Diese werden Ihnen sowohl beim Lesen des Textteils als auch später bei der täglichen Arbeit hilfreiche Dienste leisten.

Anhang A, Das Programm xm im Überblick

Dieser Anhang enthält eine Zusammenstellung der wichtigsten Befehle rund um das zentrale Xen-Verwaltungsprogramm xm.

Anhang B, Glossar

In diesem Anhang finden Sie ein Glossar, in dem an zentraler Stelle die wichtigsten Fachbegriffe erklärt werden, die in diesem Kochbuch verwendet werden.

Anhang C, Weiterführende Informationen

Der letzte Anhang gibt einen Überblick über weiterführende Ressourcen.

Quellcode

Kapitel 15, Eigene Anwendungen zum Xen-Management entwickeln, beschreibt, wie man aus eigenen Programmen heraus auf die Xen-Funktionen zugreifen kann. Dies ist vor allem für Anwendungsentwickler interessant, die bestehende Anwendungen um Funktionen zur Verwaltung virtueller Maschinen erweitern oder eine eigene, angepasste Management-Lösung erstellen wollen. Mit der XenAPI existiert eine direkte Schnittstelle zu den Funktionen von Xen. Diese ist jedoch einem ständigen Entwicklungsprozess unterworfen, schlecht dokumentiert und nicht einfach zu benutzen. Daher wird in diesem Kapitel die Bibliothek libvirt vorgestellt, die als zusätzliche Abstraktionsebene auf der XenAPI sitzt und ihre Funktionen nutzt.

Bei der libvirt handelt es sich um eine Programmbibliothek (Library) für die Entwicklung von Managementlösungen für virtualisierte Systeme. Die libvirt bildet eine zusätzliche Abstraktionsebene und bietet dem Anwendungsentwickler eine definierte Schnittstelle zu den Virtualisierungsfunktionen des Betriebssystems. Die libvirt ist freie Software und steht unter der LGPL.

Die libvirt-Bibliothek ist in C geschrieben. Das Einbinden entsprechender Header-Dateien und das Linken gegen diese Bibliothek reichen also aus, um die von libvirt bereitgestellten Funktionen in eigenen C/C++-Programmen zu nutzen. Darüber hinaus existieren auch Bindungen für andere Sprachen wie z.B. OCaml, Perl, Python und Ruby.

Neben den eigentlichen C-Funktionen wird in Kapitel 15 auch die Verwendung der libvirt in Python-Skripten beschrieben. Python ist schliesslich sehr weit verbreitet, einfach zu erlernen und zu benutzen, ausserdem bauen viele bestehende Xen-Management- Lösungen auf Python und der libvirt auf.

Nachfolgend finden Sie den Quellcode der Programme, die in Kapitel 15 vorgestellt werden. Diese können Sie entweder einzeln oder als komplettes Archiv namens xen-kochbuch-beispielcode.tar.bz2 herunter laden.

Programmiersprache: C

Das erste C-Programm mit libvirt
Problem:
Sie wollen ein C-Programm erstellen, das Funktionen der libvirt nutzt und als Basis für weitere Entwicklungen dienen kann.
Lösung:
Erstellen Sie eine Datei mit folgendem Inhalt, und speichern Sie diese als base.c ab:

#include <stdio.h>
#include <stdlib.h>
#include <libvirt/libvirt.h>

int main()
{
  virConnect *conn = NULL;

  conn = virConnectOpen(NULL);
  if (!conn)
    return -1;

  virConnectClose(conn);
  return 0;
}
Ausführliche Erläuterungen und weiterführende Informationen finden Sie im Buch ab Seite 314.
Bitte denken Sie daran, die Programme mit folgenden gcc Optionen zu übersetzen: -lvirt -Wall -pedantic
Beispiel:
  gcc  -lvirt -Wall -pedantic -o base base.c
Die Fähigkeiten des Hypervisors in C-Programmen anzeigen
Problem:
Sie wollen das im in Rezept Das erste C-Programm mit libvirt vorgestellte Basis-C-Programm dahin gehend erweitern, dass es die Fähigkeiten des Hypervisors auf dem Bildschirm ausgibt
Lösung:
Erweitern Sie das vorgestellte Basisprogramm um die Funktion printCapabilities. Dazu bietet es sich an, base.c zu kopieren - z.B. in base1.c.

#include <stdio.h>
#include <stdlib.h>
#include <libvirt/libvirt.h>

static void printCapabilities(virConnect *conn)
{
  char *cap = NULL;

  cap = virConnectGetCapabilities(conn);
  printf("%s\n", cap);
  free(cap);
}


int main()
{
  virConnect *conn = NULL;
 
  conn = virConnectOpen(NULL);
  if (!conn)
    return -1;

  printCapabilities(conn);

  virConnectClose(conn);
  return 0;
}

Ausführliche Erläuterungen und weiterführende Informationen finden Sie im Buch ab Seite 317.
Eine Domäne verwalten
Problem:
Die Verbindung zu einem Hypervisor steht, nun wollen Sie sich mit einer bestimmten Domäne verbinden.
Lösung:
Speichern Sie die nachfolgende Datei unter dem Dateinamen list.c

#include <stdio.h>
#include <stdlib.h>
#include <libvirt/libvirt.h>

static void printDomain(virConnect *conn, int id)
{
  virDomain *dom;

  dom = virDomainLookupByID(conn, id);
  printf("%d\t %s\t %lu\n", virDomainGetID(dom), virDomainGetName(dom),
         virDomainGetMaxMemory(dom) / 1024);
  virDomainFree(dom);
}


static void printDomains(virConnect *conn)
{
  int number_of_domains, id, *ids;

  number_of_domains = virConnectNumOfDomains(conn);
  ids = malloc(number_of_domains * sizeof(int));
  if (!ids)
    return;

  virConnectListDomains(conn, ids, number_of_domains);

  printf("ID\t Name\t\t Memory\n");
  for (id = 0; id < number_of_domains; id++)
    printDomain(conn, ids[id]);

  free(ids);
}


int main()
{
  virConnect *conn;

  conn = virConnectOpen(NULL);
  if (!conn)
    return -1;

  printDomains(conn);
  virConnectClose(conn);
  return 0;
}

Ausführliche Erläuterungen und weiterführende Informationen finden Sie im Buch ab Seite 20.
Eine neue Domäne anlegen
Problem:
Sie wollen eine neue Domäne anlegen. Voraussetzung dafür ist, dass Sie bereits über eine geeignete Konfigurationsdatei und ein Dateisystem-Image verfügen.
Lösung:

#include <stdio.h>
#include <stdlib.h>
#include <libvirt/libvirt.h>

#define MAXLEN 1000


char *read_xml_desc(char *xml_desc, int len, FILE *in)
{
  int c;

  while ((--len > 0) && (c = getc(in)) != EOF)
    *xml_desc++ = c;

  *xml_desc = '\0';

  return (len >= 0 && c == EOF) ? xml_desc : NULL;
}



int main(int argc, char *argv[])
{
  virConnect *conn;
  virDomain *dom;
  char *xml;
  int ret = -1;

  conn = virConnectOpen(NULL);
  if (!conn)
    return ret;

  xml = malloc(MAXLEN);
  if (!xml)
    goto out;

  if (!read_xml_desc(xml, MAXLEN, stdin))
    goto out;

  dom = virDomainCreateXML(conn, xml, 0);
  if (!dom)
    goto out;

  printf("created domain %s\n", virDomainGetName(dom));
  virDomainFree(dom);
  ret = 0;

 out:
  free(xml);
  virConnectClose(conn);
  return ret;
}

Bitte beachten Sie, dass in diesem Beispiel die XML-Konfigurationsdatei von STDIN gelesen werden muss. Zum Beispiel:
./create < vm.xml
 
Ausführliche Erläuterungen und weiterführende Informationen finden Sie im Buch ab Seite 321.
Die Geräte einer Domäne mit einem C-Programm verwalten
Problem
Sie wollen eine neue Domäne anlegen. Voraussetzung dafür ist, dass Sie bereits über eine geeignete Konfigurationsdatei und ein Dateisystem-Image verfügen.
Lösung

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <libvirt/libvirt.h>

#define MAXLEN 1000

char *read_xml_desc(char *xml_desc, int len, FILE *in)
{
  int c;

  while ((--len > 0) && (c = getc(in)) != EOF)
    *xml_desc++ = c;

  *xml_desc = '\0';

  return (len >= 0 && c == EOF) ? xml_desc : NULL;
}



int main(int argc, char *argv[])
{
  virConnect *conn;
  virDomain *dom;
  char *xml;
  int ret = -1;

  if (argc != 3) {
    printf("usage: %s id [--attach|--detach] < mydevice.xml\n", argv[0]);
    return -1;
  }

  conn = virConnectOpen(NULL);
  if (!conn)
    return ret;

  dom = virDomainLookupByID(conn, atoi(argv[1]));
  if (!dom)
    return ret;

  xml = malloc(MAXLEN);
  if (!xml)
    goto out;

  if (!read_xml_desc(xml, MAXLEN, stdin))
    goto out;

  if (strcmp(argv[2], "--attach") == 0) {
    virDomainAttachDevice(dom, xml);
  } else if (strcmp(argv[2], "--detach") == 0) {
    virDomainDetachDevice(dom, xml);
  }

  printf(virDomainGetXMLDesc(dom, VIR_DOMAIN_XML_SECURE));
  ret = 0;

 out:
  free(xml);
  virDomainFree(dom);
  virConnectClose(conn);
  return ret;
}

Bitte beachten Sie, dass in diesem Beispiel die XML-Konfigurationsdatei von STDIN gelesen werden muss, und zwei Kommandozeilen Parameter (ID sowie Keyword) notwendig sind. Zum Beispiel:
./modify_device 23 --attach < mydevice.xml
./modify_device 23 --detach < mydevice.xml
 
Ausführliche Erläuterungen und weiterführende Informationen finden Sie im Buch ab Seite 328.

Programmiersprache: Python

Im folgenden werden die bereits zuvor gezeigten Programmbeispiele an Hand der Programmiersprache Python präsentiert.
Das erste Python-Programm mit libvirt
Problem
Sie wollen ein Python-Skript erstellen, das Funktionen der libvirt benutzt und als Basis für weitere Entwicklungen dienen kann.
Lösung
Erstellen Sie eine Datei mit folgendem Inhalt, und speichern Sie diese als base.py ab:

#!/usr/bin/python
import libvirt
import sys

try:
    conn = libvirt.open(None)
except:
    sys.exit(1)
Ausführliche Erläuterungen und weiterführende Informationen finden Sie im Buch ab Seite 316.
Die Fähigkeiten des Hypervisors in Python-Skripten anzeigen
Problem:
Sie wollen das Python-Basisscript dahin gehend erweitern, dass es die Fähigkeiten des Hypervisors auf dem Bildschirm ausgibt.
Lösung:
Erweitern Sie das vorgestellte Basisskript um die obige Funktion printCapabilities. Dazu bietet es sich an, base.py zu kopieren - z.B. in base1.py.

#!/usr/bin/python
import libvirt
import sys

try:
    conn = libvirt.open(None)
except:
    sys.exit(1)

def printCapabilities(conn):
    cap = conn.getCapabilities()
    print cap

printCapabilities(conn)

Ausführliche Erläuterungen und weiterführende Informationen finden Sie im Buch ab Seite 318.
Eine Domäne verwalten
Problem:
Die Verbindung zu einem Hypervisor steht, nun wollen Sie sich mit einer bestimmten Domäne verbinden.
Lösung:

#!/usr/bin/python
import libvirt
import sys

try:
    conn = libvirt.open(None)
    ids = conn.listDomainsID()
except:
    sys.exit(1)

print "ID\t Name\t\t Memory"

for id in ids:
    dom = conn.lookupByID(id)
    print "%d\t %s\t %lu" % (dom.ID(), dom.name(), dom.maxMemory() / 1024)
Eine neue Domäne anlegen
Problem:
Sie wollen eine neue Domäne anlegen. Voraussetzung dafür ist, dass Sie bereits über eine geeignete Konfigurationsdatei und ein Dateisystem-Image verfügen.
Lösung:

#!/usr/bin/python
import libvirt
import sys

try:
    conn = libvirt.open(None)
    xmlDesc = ""
    for line in sys.stdin:
        xmlDesc += line

    dom = conn.createLinux(xmlDesc, 0)
    print "created domain %s" % dom.name()


except:
    sys.exit(1)
Bitte beachten Sie, dass in diesem Beispiel die XML-Konfigurationsdatei von STDIN gelesen werden muss. Zum Beispiel:
./create.py < vm.xml
 
Ausführliche Erläuterungen und weiterführende Informationen finden Sie im Buch ab Seite 328.
Die Geräte einer Domäne mit einem Python-Script verwalten
Problem
Sie wollen aus Ihrer Python-Anwendung heraus eine virtuelle Netzwerkkarte zu einer Domäne hinzufügen bzw. aus einer Domäne entfernen.
Lösung

#!/usr/bin/python
import libvirt
import sys

try:
    conn = libvirt.open(None)
    if len(sys.argv) != 3 :
        print "usage: %s id [--attach|--detach] < mydevice.xml" % sys.argv[0] 
        sys.exit(1)

    id = sys.argv[1]
    dom = conn.lookupByID(int(id))
    xmlDesc = ""

    for line in sys.stdin:
        xmlDesc += line

    if sys.argv[2] == "--attach" :
        dom.attachDevice(xmlDesc)
    elif sys.argv[2] == "--detach" :
        dom.attachDevice(xmlDesc)

    print dom.XMLDesc(libvirt.VIR_DOMAIN_XML_SECURE)


except:
    sys.exit(1)
Bitte beachten Sie, dass in diesem Beispiel die XML-Konfigurationsdatei von STDIN gelesen werden muss, und zwei Kommandozeilen Parameter (ID sowie Keyword) notwendig sind. Zum Beispiel:
./modify_device 23 --attach < mydevice.xml
./modify_device 23 --detach < mydevice.xml
 
Ausführliche Erläuterungen und weiterführende Informationen finden Sie im Buch ab Seite 329.

Tips und Tricks

An dieser Stelle werden demnächt weitere Tips und Tricks zum Einsatz von Xen veröffentlicht.

Reviews

Linux-Magazin 2009/03

Das Linux-Magazin hat in der Rubrik Tux liest in der Ausgabe 2009/03 das Xen-Buch rezensiert:

Die Materie ist komplex und der herrschende Begriffswirrwarr macht es nicht leichter. So können etwa Voll-, Komplett-, Hardware-, Full- oder Hardware-unterstütze Virtualisierung dasselbe meinen - oder auch nicht, wenn man etwa Vollvirtualisierung mit und ohne Support durch Hardware unterscheidet. Das "Xen-Kochbuch" von Hans-Joachim Picht umgeht die Stolperstellen, indem es sich gar nicht lange mit der Theorie aufhält. Sein Leser wird ohnehin weniger Grundsatzdiskussionen, sondern handfeste Tipps zum Nachbauen suchen.

Und er wird fündig. Das Buch konzentriert sich auf die Praxis und beschreibt typische Problemstellungen von Backup bis Migration zusammen mit passenden Lösungen. Dabei überlappen sich die Erläuterungen zwar zuweilen mit allgemeinen Fragestellungen der Systemadministration, aber so ist zumindest das meiste dessen an einem Platz versammelt, was der Xen-Administrator wissen muss. Den einzelnen Rezepten kommt dabei fraglos zugute, dass der Autor als Trainer und Consultant sie nicht nur in der Versuchsküche selbst zubereitet hat. So brennt auch beim Leser nichts an, der von dieser Erfahrung profitiert und Fallstricke umgehen kann.

Quelle: http://www.linux-magazin.de/heft_abo/ausgaben/2009/03/tux_liest

textico.de

Kochen soll satt machen - Hans-Joachim Picht folgt der Tradition der O'Reilly-Kochbücher und hat in sein XEN Kochbuch all die Lösungen reingepackt, die dem Admin mit Erfahrung in jedem Einsteiger- oder auch Fortgeschrittenen-Buch zum Thema Virtualisierung unter XEN fehlen: thematisch geordnete Lösungen und Anwendungsanleitungen, kurz und knapp, für Admins, die Wissen, was satt macht, aber meist die Zutaten nicht alle auswendig kennen.

Im Fokus für Picht steht XEN unter Linux und Linux sollte man kennen, bevor man sich an das XEN Kochbuch ran macht. Picht rät: "Wenn Sie sich noch nicht mit Linux im Allgemeinen auskennen, sollte dieses Buch frühestens Ihr zweites oder drittes Buch zum Thema Linux-Administration sein." Zwar lässt sich die erste Installation auch mit einfachen Linux-Kenntnissen durchführen, je weiter Picht jedoch in XEN eindringt, umso mehr Vorwissen setzt er voraus.

Ansonsten ist das Kochbuch wie jedes andere O'Reilly-Kochbuch auch nach dem "Nimm Dir, was Du brauchst" -Prinzip aufgebaut. Keine lineare Lektüre sondern problemlösungszentriertes Herauspicken.

Picht arbeitet sich thematisch von der Installation, der Paravirtualisierung über Themenbereiche wie Hardwarezugriff, Backup&Restore zu Hochverfügbarkeit, Ressourcenkontrolle bis hin zu Sicherheit vor. Dazu Programmierschnipsel, Screenshots, weitere Quellen und Anleitungen zur Lösung dieser oder ähnlicher Probleme.

Die Kochbuch-Idee ist reiner Nerd-Stoff und die Urwurzel für O'Reillys Hacker-Ruf: das XEN Kochbuch bildet da keine Ausnahme, dank Open Source-Kontext erst recht nicht. No-Nonsens, so wie wir es haben wollen. --Wolfgang Treß

it-administrator.de

Nun kommen sie langsam auf den Markt, die Xen-Bücher. Höchste Zeit, der Hypervisor gilt als ausgereift und stabil, dem Unternehmenseinsatz steht eigentlich nichts im Weg. Ausser vielleicht eine solide Anleitung für den Administrator, der sich lieber mit einem Buch in den Händen als mit ausschweifender Internet-Recherche ans Werk machen will.

O'Reillys Kochbücher handeln normalerweise auf wenigen Seiten spezifische Problemstellungen ab, die sich aus der praktischen Anwendung ergeben. Hans-Joachim Pichl zweckentfremdet das Konzept hier kurzerhand. Soll Xen aus den Sourcen kompiliert und installiert werden, erklärt er das einfach zum Problem und präsentiert die Lösung als Fliesstext dahinter. Das Ergebnis ist zwar mehr Buch als Kochbuch, aber am Inhalt gibt es nichts auszusetzen.

Erfreulicherweise hält er den Theorieteil mit Historie und Grundlagen sehr kurz. Danach geht es sofort mit der Installation von Host und Gästen los. Kein Zweifel, das ist ein Praxisbuch par excellence. Der technische Level ist hinsichtlich Linux einigermassen anspruchsvoll, am Anfang reichen geringe Kenntnisse aus, später, bei Kapiteln wie Hochverfügbarkeit, sollte man schon sehr sicher im Linux-Sattel sitzen.

Die Mühe, die sich Picht mit der Vorarbeit gemacht hat, kann man nur loben. So sind die Kochrezepte fast durchgehend für vier Distributionen – Ubuntu, Debian, OpenSuse und Fedora – beschrieben, natürlich immer samt Erklärung der Differenzen. Auch der Umfang ist richtig gewählt. Gerade wer mehr mit Xen machen will als mal ein Windows unter Fedora zu starten, für den sind Themen wie Backup, automatisierte Installation und Migration wichtig. Denen widmet der Autor jeweils ein eigenes Kapitel. Wenn ein Bereich mehr Aufmerksamkeit vertragen könnte, dann sind es die grafischen Oberflächen zur Xen-Verwaltung.

Fazit: Praxisgerecht und umfassend, mehr kann man von einem Buch für Administratoren nicht erwarten – ein Standardwerk für angehende Xen-Admins. (Elmar Török)

Quelle: http://www.it-administrator.de/buecher/57663.html

Infoweek.ch

"Wer nach intelligenten Virtualisierungs-Lösungen sucht, dem sei das XEN Kochbuch von Hans-Joachim Picht empfohlen." - InfoWeek.ch, April 2009

ubuntu-at.org

Um meinen Heimischen Server (Dual Xeon 3.0Ghz mit 4GB Ram) zu betreiben, habe ich mich dafür entschieden die Kombination Ubuntu 8.04LTS und XEN zu nutzen. In der Arbeit wird es mir sicher auch noch von nutzen sein. Dank dem Buch von O'Reilly war dann das Konfigurieren meines Heim-Servers auch kaum ein kein Problem.

Das Buch geht auf verschiedene Distributionen ein, wie Debian, Ubuntu, Fedora und OpenSuSE. Des Weiteren wird im ersten Teil des Buches die Theorie erklärt, wer meint das Theorie trocken sein muss, der irrt. Ich fand diesen Teil sehr interessant da er für das weitere Verständnis beiträgt. In den weiteren Abschnitten geht es dann um die Installation, Konfiguration von Host Systemen, Backup & Restore, Migration von virtueller Maschinen, Gastinstallationen, Hochverfügbarkeit, Monitoring, Verwaltung, Ressourcenkontrolle, Sicherheit, usw.

Der Vorteil des Buches liegt klar auf der Hand, die Informationen die man durch dieses Buch erhält, sind vom Fach. O'Reilly überzeugt, wie so oft, mit ihrer Kochbuch Reihe.

Ein guter Freund von mir meinte vor kurzem er kauft sich kein Buch, er verwendet OpenSource Software daher sucht er sich die Informationen im Internet zusammen die er benötigt. Ich habe ihm dann klar gemacht dass es oftmals zu Mühsam ist, und die Informationen nicht immer nutzbar sind. Um ihn davon zu überzeugen habe ich ihm das Buch einige Tage zum durchblättern gegeben, er hat sich das Buch bereits gekauft, ehe er mir noch meines zurück gegeben hat.

Quelle: http://www.ubuntu-at.org/viewtopic.php?f=8&t=283&start=0&sid=ebc3163d08a88295dd122f92aed3c38b

Weitere Kommentare

Weitere Stimmen zu dem Buch finden sich unter anderem auf der Webseite des Buchhändlers amazon.de unter folgendem Link: http://www.amazon.de/product-reviews/3897217295/ref=cm_cr_dp_all_helpful?ie=UTF8&coliid=&showViewpoints=1&colid=&sortBy=bySubmissionDateDescending

Errata

Auch nach vielen Tests auf diversen Distributionen mit unterschiedlichen Kernel-und Xen-Versionen hat sich bestimmt dennoch der eine oder andere Fehler in dieses Buch eingeschlichen. Sollten Sie einen solchen finden, zögern Sie nicht, ihn zu melden, und zwar per E-Mail an hans at picht.org.

Bisher hat noch niemand einen Fehler gemeldet ;-)

Feedback

Wenn Sie das Xen Kochbuch bereits gekauft haben und es Ihnen gefallen hat, können Sie das Buch auf der Webseite von O'Reilly an dieser Stelle weiterempfehlen.

Weiterhin ist es möglich Anmerkungen, Kritik oder Verbesserungsvorschläge, Wünsche sowie Lob oder Tadel zu senden an

Weiterführende Informationen

Kommen bald.