libvirt

Om Libvirt

Om Libvirt
Libvirt är ett av de mest populära verktyg för virtualiseringshantering där ute. Den består av ett hanterings-API och en demon som du kan interagera med din virtualiseringsstack med. Libvirt strävar efter att förena hanteringsprocessen för alla olika virtualiseringsteknologier från KVM till VMWare ESX och till och med BHyve. Det kan också hantera LXC-containrar och till och med några av paravirtualiseringsteknikerna som Xen.

Bara för att den stöder ett stort utbud av tekniker betyder det inte att du måste känna till dem alla. Du kan fokusera på en teknik som KVM och bygga din libvirt-upplevelse runt det. Denna artikel kommer att försöka ge en omfattande kritik av tekniken från författarens personliga erfarenhet av den.

Bakgrund

För att få tag på vad Libvirt kan och hur du kan använda det i ditt eget system kan du följa följande guider:

  1. Installera KVM och Libvirt på Debian
  2. Libvirt med Python

Om du redan känner till verktyg som virsh, virt-install, virt-manager, oVirt, etc, använder du redan libvirt utan att ens veta det. De ovannämnda verktygen använder libvirt i backend och ger ett användarvänligt gränssnitt oavsett om det är kommandorad eller GUI.

Arkitektur

Libvirt är utformat för att arbeta med vilken hypervisor som helst och har genom åren vuxit till att arbeta med ett brett utbud av hypervisorer. Libvirt-demon visar ett API som kan användas av appar som virt-manager eller virsh (och till och med dina anpassade Python-skript). Användarförfrågningarna tas emot av API: et. Dessa förfrågningar kan vara allt som att skapa en KVM-gäst, eller visa mig minnet som används av en viss LX-medarbetare, etc.

Libvirt-demonen delegerar sedan begäran till lämplig libvirt hypervisor-drivrutin. Den här drivrutinen förstår och implementerar alla detaljer för en given virtualiseringsteknik och utför instruktionerna därefter.

Det finns en annan klass av drivrutiner för hantering av lagring och till och med nätverk av virtuella datorer.

Pooler och volymer

Virtuella datorer behöver mycket lagring. Lagringstekniken i sig är mycket varierande från hypervisor till hypervisor. VMWare använder sitt eget vmdk-format, QEMU gillar att använda qcow2, det finns också rå diskbilder och LXC-bilder är också en annan historia. Dessutom vill du gruppera alla VM-skivavbildningar och ge dem ett annat lagringsmedium som en NFS-server, en ZFS-dataset eller bara en katalog. Detta låter dig använda libvirt över en mängd olika användningsfall från en enda hemserver till en skalbar virtualiseringslösning för företagskvalitet.

I libvirt-folkspråk är en enda virtuell lagringsenhet associerad med vilken virtuell dator som helst, som qcow2, raw eller vmdk-bildfilen för en virtuell dator eller monterbar ISO, volym. Lagringsmediet som används på värden för att lagra en grupp med tillhörande volymer kallas a slå samman. Du kan använda en NFS-servrar som en pool eller en ZFS-dataset, som tidigare nämnts. Om du inte har en snygg lagringslösning kan du helt enkelt använda en katalog.

Som standard har libvirt två olika pooler. Först är / var / lib / libvirt / images och / var / lib / libvirt / boot. Volymer för en enda virtuell dator kan delas över flera pooler. Till exempel lagrar jag alla rena molnbilder och OS-installations-ISO: er i / var / lib / libvirt / startpoolen och för enskilda virtuella datorer installeras rootfs i bildfiler lagrade i / var / lib / libvirt / images.

Du kan till och med ha en enda pool för en enda virtuell dator, eller så kan du dela poolerna ytterligare för virtuella ögonblicksbilder, säkerhetskopior etc. Allt är väldigt flexibelt och låter dig organisera dina data enligt din bekvämlighet.

Konfigurationer

Virsh är ett populärt verktyg för att konfigurera allt från din virtuella dator, virtuella maskinnätverk och till och med lagring. Konfigurationsfilerna själva lever i XML-format. Du hittar dig själv att utfärda kommandon som:

$ virsh dumpxml VM1
$ virsh redigera VM1

Och på samma sätt finns det underkommandon som net-dumpxml och poolredigering för att visa eller konfigurera konfigurationen av pooler, nätverk etc. Om du är nyfiken på var dessa konfigurationsfiler bor kan du gå till / etc / libvirt / och hitta din hypervisor-berörda katalog.  Föräldrakatalogen / etc / libvirt / själv innehåller många globala konfigurationer som drivrutiner (t.ex.g qemu.conf och lxc.conf) och deras konfiguration och standardbeteendet för libvirt.

För att titta på specifik konfiguration av enskilda komponenter som virtuella datorer, pooler och volymer måste du gå till motsvarande kataloger. För qemu-gäster är detta / etc / libvirt / qemu

root @ deb: / etc / libvirt / qemu # ls -al
totalt 24
drwxr-xr-x 4 rotrot 4096 21 apr 10:39 .
drwxr-xr-x 6 rotrot 4096 28 april 17: 19 ..
drwxr-xr-x 2 rotrot 4096 21 april 10:39 autostart
drwxr-xr-x 3 root root 4096 Apr 14 13:49 nätverk
-rw ------- 1 rotrot 3527 20 apr 19:10 VM1.xml
-rw ------- 1 rotrot 3527 20 apr 19:09 VM2.xml

Autostartkatalogen innehåller symlänkar till VM1.xml och VM2.xml om du har konfidenterat de virtuella datorerna att starta automatiskt när värdsystemet startar ($ virsh autostart VM1).

På samma sätt innehåller / etc / libvirt / qemu / network en konfiguration för standardnätverket en qemu-gäst. / Etc / libvirt / storage innehåller XML som definierar lagringspoolerna.

Slutsats

Om du är intresserad av att skapa din egen virtualiseringsvärd är en bra plats att börja den här artikeln där jag visar hur man installerar QEMU-KVM-gäster på en Debian-värd med libvirt och relaterade verktyg.

Därefter kan du börja spela med virsh CLI och se och hantera enheter som Domain (libvirt kallar gäst-virtuella datorer a domän) nätverk, lagringspooler och volymer. Detta gör dig tillräckligt bekväm med den teknik som du kan gå vidare till andra koncept som ögonblicksbilder och nätverksfilter. Jag hoppas att den här artikeln kommer att visa sig vara en bra utgångspunkt för dig.

OpenTTD vs Simutrans
Att skapa din egen transportsimulering kan vara rolig, avkopplande och extremt lockande. Det är därför du måste se till att du testar så många spel so...
OpenTTD-handledning
OpenTTD är ett av de mest populära affärssimuleringsspelen där ute. I det här spelet måste du skapa en underbar transportaffär. Du kommer dock att bör...
SuperTuxKart för Linux
SuperTuxKart är en fantastisk titel som är utformad för att ge dig Mario Kart-upplevelsen gratis på ditt Linux-system. Det är ganska utmanande och rol...