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.
Datacenter’s little helper
Libvirt könnte eine praktische Bibliothek werden, mit der sich einerseits Management-GUIs für Xen realisieren lassen. Andererseits bieten die Perl- und Python-Bindings die Möglichkeit für Skripte, um zum Beispiel in Datacentern virtuelle Maschinen zu kontrollieren. Funktionen zum Migrieren von Maschinen oder Ähnliches fehlen leider noch. Zudem beschränkt sich die Libvirt bisher auf die Virtualisierung mit Xen. Andere Virtualisierungslösungen sollen nach Bedarf folgen. Die große Frage ist nur, wie sich Libvirt auf Systemen anderer Hersteller als Red Hat verbreiten wird.
|
Infos |
|---|
|
[1] Libvirt: [http://libvirt.org] [2] Virt-Manager: [http://virt-manager.et.redhat.com/] |
Copyright © 2002 Linux New Media AG





