libvirt

Om Libvirt

Om Libvirt
Libvirt er et af de mest populære virtualiseringsstyringsværktøjer derude. Den er sammensat af en ledelses-API og en dæmon, som du kan interagere med din virtualiseringsstak med. Libvirt stræber efter at forene styringsprocessen for alle de forskellige virtualiseringsteknologier fra KVM til VMWare ESX og endda BHyve. Det kan også styre LXC-containere og endda nogle af paravirtualiseringsteknologierne som Xen.

Bare fordi det understøtter en lang række teknologier, betyder det ikke, at du skal være fortrolig med dem alle. Du kan fokusere på en teknologi som KVM og opbygge din libvirt-oplevelse omkring det. Denne artikel vil forsøge at give en omfattende kritik af teknologien ud fra forfatterens personlige erfaring med den.

Baggrund

For at få fat på, hvad Libvirt er i stand til, og hvordan du kan bruge det på dit eget system, kan du følge følgende vejledninger:

  1. Installer KVM og Libvirt på Debian
  2. Libvirt med Python

Hvis du allerede er fortrolig med værktøjer som virsh, virt-install, virt-manager, oVirt osv., Bruger du allerede libvirt uden at vide det. De ovennævnte værktøjer bruger libvirt i backend og giver en brugervenlig grænseflade, hvad enten det er kommandolinje eller GUI.

Arkitektur

Libvirt er designet til at arbejde med enhver hypervisor og er vokset gennem årene til at arbejde med en bred vifte af hypervisorer. Libvirt-dæmonen udsætter en API, der kan bruges af apps som virt-manager eller virsh (og endda dine brugerdefinerede Python-scripts). Brugeranmodningerne modtages af API'en. Disse anmodninger kan være alt som at oprette en KVM-gæst eller vise mig den hukommelse, der bruges af en given LX-medarbejder osv.

Libvirt-dæmonen delegerer derefter anmodningen til den relevante libvirt hypervisor-driver. Denne driver forstår og implementerer alle detaljerne i en given virtualiseringsteknologi og udfører instruktionerne i overensstemmelse hermed.

Der er en anden klasse af drivere til håndtering af lagring og endda netværk af virtuelle computere.

Puljer og volumener

VM'er har brug for meget lagerplads. Selve lagringsteknologien er meget variabel fra hypervisor til hypervisor. VMWare bruger sit eget vmdk-format, QEMU kan lide at bruge qcow2, der er også rå diskbilleder og LXC-billeder er også en anden historie. Desuden vil du gerne gruppere alle VM-diskbilleder og give dem et andet lagermedium som en NFS-server, et ZFS-datasæt eller bare et bibliotek. Dette giver dig mulighed for at bruge libvirt på tværs af en række forskellige brugssager fra en enkelt hjemmeserver til en skalerbar virtualiseringsløsning til enterprise grade.

I libvirt-folkesprog er en enkelt virtuel lagerenhed tilknyttet enhver VM, som f.eks. Qcow2, raw eller vmdk-billedfilen til en VM eller monterbar ISO kendt som en bind. Lagringsmediet, der bruges på værten til at gemme en gruppe tilknyttede diskenheder, er kendt som en pool. Du kan bruge en NFS-servere som en pool eller et ZFS-datasæt, som tidligere nævnt. Hvis du ikke har en fancy opbevaringsløsning, kan du blot bruge et bibliotek.

Som standard har libvirt to forskellige puljer. Først er / var / lib / libvirt / images og / var / lib / libvirt / boot. Volumener til en enkelt VM kan opdeles på flere puljer. For eksempel gemmer jeg alle de rene skybilleder og OS-installationsinstallations-ISO'er i / var / lib / libvirt / boot-poolen, og for individuelle VM'er er rootfs installeret i billedfiler, der er gemt i / var / lib / libvirt / images.

Du kan endda have en enkelt pool til en enkelt VM, eller du kan opdele puljerne yderligere for VM-snapshots, sikkerhedskopier osv. Det hele er meget fleksibelt og giver dig mulighed for at organisere dine data efter din bekvemmelighed.

Konfigurationer

Virsh er et populært værktøj til at konfigurere alt fra din virtuelle maskine, netværk af virtuelle maskiner og endda lagring. Selve konfigurationsfilerne lever i XML-format. Du finder ud af, at du udsteder kommandoer som:

$ virsh dumpxml VM1
$ virsh rediger VM1

Og ligeledes er der underkommandoer som net-dumpxml og pool-redigering for at se eller konfigurere konfigurationen af ​​puljer, netværk osv. Hvis du er nysgerrig efter, hvor disse konfigurationsfiler lever, kan du gå til / etc / libvirt / og finde dit hypervisor-relaterede bibliotek.  Overordnet bibliotek / etc / libvirt / selv indeholder mange globale konfigurationer som drivere (f.eks.g qemu.conf og lxc.conf) og deres konfiguration og standardopførelsen for libvirt.

For at se på den specifikke konfiguration af individuelle komponenter som VM'er, pools og diskenheder skal du gå til de tilsvarende mapper. For qemu-gæster er dette / etc / libvirt / qemu

root @ deb: / etc / libvirt / qemu # ls -al
i alt 24
drwxr-xr-x 4 rodrod 4096 21. april 10:39 .
drwxr-xr-x 6 rodrod 4096 28. april 17: 19 ..
drwxr-xr-x 2 rodrod 4096 21. april 10:39 autostart
drwxr-xr-x 3 rodrod 4096 14. april 13:49 netværk
-rw ------- 1 rodrod 3527 20. april 19:10 VM1.xml
-rw ------- 1 rodrod 3527 20. april 19:09 VM2.xml

Autostart-biblioteket indeholder symlinks til VM1.xml og VM2.xml hvis du har konfigureret de virtuelle computere til automatisk start, når værtssystemet starter ($ virsh autostart VM1).

Tilsvarende indeholder / etc / libvirt / qemu / netværket en konfiguration for standardnetværket en qemu-gæst. / Etc / libvirt / storage indeholder XML'er, der definerer lagerpools.

Konklusion

Hvis du er interesseret i at oprette din egen virtualiseringsvært, vil et godt sted at starte være denne artikel, hvor jeg viser, hvordan jeg installerer QEMU-KVM-gæster på en Debian-vært ved hjælp af libvirt og relaterede værktøjer.

Derefter kan du begynde at spille med virsh CLI og se og administrere enheder som Domain (libvirt kalder gæst-VM'er a domæne) netværk, lagringsbassiner og diskenheder. Dette vil gøre dig komfortabel nok med den teknologi, som du kan gå videre til andre koncepter som snapshots og netværksfilter. Jeg håber, at denne artikel vil vise sig at være et godt udgangspunkt for dig.

Sådan styrkes FPS i Linux?
FPS står for Billeder i sekundet. FPS's opgave er at måle billedhastigheden i videoafspilninger eller spiloptræden. I enkle ord betegnes antallet af u...
Top Oculus App Lab-spil
Hvis du er Oculus-headset-ejer, skal du være opmærksom på sideloading. Sideladning er processen med at installere ikke-butiksindhold på dit headset. S...
Top 10 spil at spille på Ubuntu
Windows-platform har været en af ​​de dominerende platforme til spil på grund af den enorme procentdel af spil, der udvikler sig i dag til indbygget a...