Libvirt
# Libvirt

libvirt ist eine Sammlung quelloffener Werkzeuge zur Verwaltung von virtuellen Maschinen auf einem Hostsystem. Diese besteht aus einer Programmierschnittstelle (API), einem Daemon (libvirtd) und einem Kommandozeilenprogramm (virsh). Mit Hilfe von libvirt ist es möglich, Hypervisortechnologien unterschiedlicher Hersteller wie beispielsweise KVM/QEMU, Xen, VMware, VirtualBox oder Hyper-V zu steuern und über eine einheitliche Schnittstelle zu bedienen.

## Geschichte

Die erste Version von libvirt wurde im Dezember 2005 auf der libvir-list Mailingliste (damals noch unter dem Namen libvir) angekündigt. Diese enthielt bereits eine rudimentär arbeitende Anbindung an Python, funktionierte vorerst allerdings nur mit dem Xen-Hypervisor. Es war jedoch schon geplant, auch andere Virtualisierungstechnologien zu unterstützen. Im Februar 2006 wurde das Projekt von libvir in libvirt umbenannt und im März desselben Jahres folgte die Veröffentlichung der ersten Version für die Anbindung via Perl. Im August 2006 wurde die erstmalige Unterstützung für den QEMU Hypervisor eingeführt. Im November 2007 kam die Ruby-Anbindung hinzu, ebenso wurde begonnen daran zu arbeiten libvirt unter Windows in der Cygwin-Umgebung lauffähig zu machen. 2009 wurden Patches eingepflegt, mit denen der VirtualBox Hypervisor angesprochen werden konnte und 2010 wurde die Unterstützung für die Virtualisierung mit VMware hinzugefügt.

## Technische Daten

libvirt ist in der Programmiersprache C geschrieben und unterstützt von sich aus auch die Anbindung mittels C++ und Python. Weiters werden ebenso die folgenden zusätzlichen Programmiersprachen offiziell unterstützt:

* C#
* Java
* OCaml
* Perl
* PHP
* Ruby

### Unterstützte Hypervisoren

Derzeit können mit libvirt etwa ein Dutzend Virtualisierungstechnologien verwendet werden. Darunter:

* KVM/QEMU
* Xen
* VirtualBox von Oracle
* VMware Workstation und Player, sowie ESX und GSX
* Hyper-V von Microsoft
* PowerVM von IBM
* Parallels
* bhyve

### Benutzerschnittstelle

Das Kommandozeilenprogramm virsh dient zur Verwaltung von virtuellen Maschinen und ist ein Bestandteil von libvirt. Des Weiteren gibt es unter anderem das GUI-Programm Virtual Machine Manager, welches so wie libvirt von Red Hat mitentwickelt wird. Auch die Webanwendung oVirt (ebenfalls von Red Hat) setzt weitgehend auf libvirt zur Bereitstellung der angebotenen Funktionalität.

