Open Source im professionellen Einsatz

Software entwickeln unter Linux

Maschinen steuern

Auch die Programmierer-Ecke bleibt von der Virtualisierungsmode nicht verschont. Das neue Fedora enthält eine Userspace-Bibliothek für die Steuerung von virtuellen Xen-Maschinen, die auch Bestandteil von Red Hat Enterprise Linux 5 sein wird.

Inhalt

116 | Python 2.5 Die wichtigsten neuen Features der aktuellen Python-Version im Überblick.

120 | Perl-Snapshot Mike Schilli verrät, wie der Gnu-Debugger bei der Perl-Fehlersuche hilft.

Wer die allseits beliebte Virtalisierungslösung Xen einsetzt, ist bisher vorwiegend auf Kommandozeilen-Tools angewiesen. Fedora Core 6 bringt nun ein grafisches Tool mit, mit dem Admins virtuelle Maschinen einrichten und überwachen können (siehe den Fedora-Artikel in diesem Heft): Hinter dem in Python geschrieben Virt-Manager [1] steckt eine neue Bibliothek zur Steuerung von Xen, die dieser Artikel kurz vorstellt.

Auch wer das neue Fedora betreibt, muss sich die Bibliothek von [2] herunterladen, denn dem installierten Paket fehlen die Headerdateien. Die beiden Optionen dafür sind entweder der Download als Tar-File oder die Dateien aus dem CVS auszuchecken. Fedora-Benutzer können sich darauf beschränken, die Header »libvirt.h« und »virterr.h« in das Verzeichnis »/usr/include/libvirt« zu kopieren. Wer die Bibliothek selbst übersetzen möchte oder muss, braucht mindestens die Xen Store Library.

Root-Rechte zum Schreiben

Insgesamt enthält die Libvirt über 50 Funktionen und Strukturen für den Zugriff auf die Xen-Maschinen. Programme, die davon Gebrauch machen, müssen in der Domain 0 laufen. Der erste Schritt besteht darin, eine Verbindung zum Xen-Hypervisor aufzubauen. Dazu bietet das API zwei Funktionen an, abhängig davon, ob der Benutzer über Root-Rechte verfügt oder nicht. Den vollen Zugang gewährt »virConnectOpen()«, den nur lesenden Zugriff bereitet »virConnectOpenReadOnly()« vor. Um die Verbindung zu speichern, bringt das API den Pointer-Typ »virConnectPtr« mit.

Ressourcen listen

Eine Domain namens »virDomainPtr« liefert die Funktion »virDomainLookupByID()«, die zugehörige Information besorgt »virDomainGetInfo()« mit der Xen-Domain als erstem Argument. Das zweite nimmt das Ergebnis auf und ist eine Struktur vom Typ »virDomainInfo«, die den Zustand »state«, den maximalen Speicher »maxMem«, die benutzten Speicher »memory«, die Anzahl »nrVirtCpu« der virtuellen Prozessoren und die beanspruchte Prozessorzeit »cpuTime« enthält. Nicht unbedingt zufällig sind das auch jene Daten, die Fedoras Virt-Manager im Überblick zeigt.

Neben solchen Funktionen, die je nach Bedarf einzelne Daten auslesen, kann die Libvirt die Beschreibung virtueller Xen-Maschinen auch im XML-Format ausgeben. Dazu dient die Funktion »virDomainGetXMLDesc()«. Die Funktion »virDomainCreateLinux()« wiederum verarbeitet dieses Format.

Natürlich erschöpft sich die Libvirt nicht darin, Meta-Informationen über die laufenden Maschinen auszulesen. Auch wenn die Funktionen zur Steuerung derzeit noch recht dürftig ausfallen, bietet die Bibliothek zumindest schon einige Funktionen. So hält »virDomainSuspend()« eine laufende Xen-Maschine an, »virDomainResume()« setzt den Betrieb fort, »virDomainSetMemory()« verändert den aktiven Speicher.

Zur Behandlung von auftretenden Fehlern kennt Libvirt eine ganze Reihe von Funktionen, mit denen sich eigene Error-Handler einbinden lassen.

Abbildung 1: Die Libvirt bietet eine Programmierschnittstelle für das Management von Xen.

Abbildung 1: Die Libvirt bietet eine Programmierschnittstelle für das Management von Xen.

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook