libvirt

Über Libvirt

Über Libvirt
Libvirt ist eines der beliebtesten Virtualisierungsmanagement-Tools auf dem Markt. Es besteht aus einer Management-API und einem Daemon, mit dem Sie mit Ihrem Virtualisierungs-Stack interagieren können. Libvirt ist bestrebt, den Managementprozess für alle verschiedenen Virtualisierungstechnologien von KVM über VMWare ESX bis hin zu BHyve . zu vereinheitlichen. Es kann auch LXC-Container und sogar einige der Paravirtualisierungstechnologien wie Xen . verwalten.

Nur weil es eine Vielzahl von Technologien unterstützt, heißt das nicht, dass Sie mit allen vertraut sein müssen. Sie können sich auf eine Technologie wie KVM konzentrieren und Ihre libvirt-Erfahrung darauf aufbauen. Dieser Artikel wird versuchen, eine umfassende Kritik an der Technologie aus den persönlichen Erfahrungen des Autors mit ihr zu geben.

Hintergrund

Um herauszufinden, wozu Libvirt fähig ist und wie Sie es auf Ihrem eigenen System verwenden können, können Sie den folgenden Anleitungen folgen:

  1. KVM und Libvirt unter Debian installieren
  2. Libvirt mit Python

Wenn Sie bereits mit Tools wie virsh, virt-install, virt-manager, oVirt usw. vertraut sind, verwenden Sie libvirt bereits, ohne es zu wissen. Die oben genannten Tools verwenden libvirt im Backend und bieten eine benutzerfreundliche Oberfläche, sei es Kommandozeile oder GUI.

Die Architektur

Libvirt ist so konzipiert, dass es mit jedem Hypervisor funktioniert und ist im Laufe der Jahre gewachsen, um mit einer Vielzahl von Hypervisoren zu arbeiten. Der libvirt-Daemon stellt eine API bereit, die von Apps wie virt-manager oder virsh (und sogar Ihren benutzerdefinierten Python-Skripten) verwendet werden kann. Die Benutzeranfragen werden von der API empfangen. Diese Anfragen können etwa das Erstellen eines KVM-Gasts oder das Anzeigen des von einem bestimmten LX-Contianer verwendeten Speichers sein usw.

Der libvirt-Daemon delegiert die Anfrage dann an den entsprechenden libvirt-Hypervisor-Treiber. Dieser Treiber versteht und implementiert alle Besonderheiten einer bestimmten Virtualisierungstechnologie und führt die Anweisungen entsprechend aus.

Es gibt eine andere Klasse von Treibern für die Handhabung von Speicher und sogar Netzwerken von VMs.

Pools und Volumen

VMs brauchen viel Speicher. Die Speichertechnologie selbst ist von Hypervisor zu Hypervisor sehr variabel. VMWare verwendet ein eigenes vmdk-Format, QEMU verwendet gerne qcow2, es gibt auch Raw-Disk-Images und LXC-Images sind auch eine andere Geschichte. Darüber hinaus möchten Sie alle VM-Disk-Images zusammenfassen und ihnen ein anderes Speichermedium wie einen NFS-Server, einen ZFS-Datensatz oder nur ein Verzeichnis zur Verfügung stellen. Auf diese Weise können Sie libvirt in einer Vielzahl unterschiedlicher Anwendungsfälle verwenden, von einem einzelnen Heimserver bis hin zu einer skalierbaren Virtualisierungslösung der Enterprise-Klasse.

In der libvirt-Sprache wird ein einzelnes virtuelles Speichergerät, das mit einer VM verknüpft ist, wie die qcow2-, raw- oder vmdk-Image-Datei einer VM oder ein mountbares ISO, als a . bezeichnet Volumen. Das Speichermedium, das auf dem Host zum Speichern einer Gruppe zugehöriger Volumes verwendet wird, wird als a . bezeichnet Schwimmbad. Sie können einen NFS-Server als Pool oder ein ZFS-Dataset verwenden, wie bereits erwähnt. Wenn Sie keine ausgefallene Speicherlösung haben, können Sie einfach ein Verzeichnis verwenden.

Standardmäßig hat libvirt zwei verschiedene Pools. Die erste ist /var/lib/libvirt/images und /var/lib/libvirt/boot. Volumes für eine einzelne VM können auf mehrere Pools aufgeteilt werden. Zum Beispiel speichere ich alle sauberen Cloud-Images und OS-Installer-ISOs im /var/lib/libvirt/boot-Pool und für einzelne VMs wird rootfs in Image-Dateien installiert, die in /var/lib/libvirt/images gespeichert sind.

Sie können sogar einen einzelnen Pool für eine einzelne VM haben oder die Pools für VM-Snapshots, Backups usw. weiter aufteilen. Es ist alles sehr flexibel und ermöglicht es Ihnen, Ihre Daten nach Ihren Wünschen zu organisieren organize.

Konfigurationen

Virsh ist ein beliebtes Tool, um alles von Ihrer VM über das Netzwerk virtueller Maschinen bis hin zum Speicher zu konfigurieren. Die Konfigurationsdateien selbst leben im XML-Format. Sie werden feststellen, dass Sie Befehle ausgeben wie:

$ virsh dumpxml VM1
$ virsh bearbeiten VM1

Ebenso gibt es Unterbefehle wie net-dumpxml und pool-edit, um die Konfiguration von Pools, Netzwerken usw. anzuzeigen oder zu konfigurieren or. Wenn Sie wissen möchten, wo sich diese Konfigurationsdateien befinden, können Sie zu /etc/libvirt/ gehen und das betreffende Hypervisor-Verzeichnis suchen.  Das übergeordnete Verzeichnis /etc/libvirt/ selbst enthält viele globale Konfigurationen wie Treiber (z.g qemu.conf und lxc.conf ) und deren Konfiguration und das Standardverhalten von libvirt.

Um sich die spezifische Konfiguration einzelner Komponenten wie VMs, Pools und Volumes anzusehen, müssen Sie in die entsprechenden Verzeichnisse gehen. Für qemu-Gäste ist dies /etc/libvirt/qemu

root@deb:/etc/libvirt/qemu# ls -al
insgesamt 24
drwxr-xr-x 4 root root 4096 21. Apr 10:39 .
drwxr-xr-x 6 root root 4096 Apr 28 17:19…
drwxr-xr-x 2 root root 4096 21. April 10:39 Autostart
drwxr-xr-x 3 root root 4096 14. April 13:49 Netzwerke
-rw------- 1 root root 3527 20. Apr 19:10 VM1.xml
-rw------- 1 root root 3527 20. Apr 19:09 VM2.xml

Das Autostart-Verzeichnis enthält symbolische Links zu VM1.xml und VM2.xml, wenn Sie die VMs so konfiguriert haben, dass sie beim Booten des Hostsystems automatisch starten ( $ virsh autostart VM1 ).

Ebenso enthält /etc/libvirt/qemu/network eine Konfiguration für das Standardnetzwerk a qemu guest. Die Datei /etc/libvirt/storage enthält XMLs, die die Speicherpools definieren.

Fazit

Wenn Sie daran interessiert sind, Ihren eigenen Virtualisierungshost einzurichten, ist dieser Artikel ein guter Ausgangspunkt, in dem ich zeige, wie Sie QEMU-KVM-Gäste auf einem Debian-Host mit libvirt und verwandten Tools installieren.

Danach können Sie mit virsh CLI spielen und Entitäten wie Domain anzeigen und verwalten (libvirt ruft Gast-VMs a Domain) Netzwerke, Speicherpools und Volumes. Dadurch werden Sie mit der Technologie vertraut genug, um zu anderen Konzepten wie Snapshots und Netzwerkfiltern übergehen zu können. Ich hoffe, dieser Artikel ist ein guter Ausgangspunkt für Sie.

Microsoft Sculpt Touch Wireless-Maus Bewertung
Ich habe vor kurzem gelesen, dass Microsoft Sculpt Touch kabellose Maus und beschloss, sie zu kaufen. Nachdem ich es eine Weile benutzt hatte, beschlo...
AppyMouse On-Screen Trackpad und Mauszeiger für Windows Tablets
Tablet-Benutzer vermissen oft den Mauszeiger, insbesondere wenn sie die Laptops gewohnt sind. Die Touchscreen-Smartphones und -Tablets bieten viele Vo...
Mittlere Maustaste funktioniert nicht unter Windows 10
Das mittlere Maustaste hilft Ihnen beim Scrollen durch lange Webseiten und Bildschirme mit vielen Daten. Wenn das aufhört, werden Sie am Ende die Tast...