Virtualiseringsværktøjer, bedre kendt som Virt Tools, er en samling af seks open source-virtualiseringsværktøjer, der er skabt af forskellige bidragydere for at gøre virtualiseringsverdenen til et bedre sted.
1_virttools.jpg
(Bryant Son, CC BY-SA 4.0)
Nogle af værktøjerne, som KVM og QEMU, er måske velkendte for Linux-entusiaster, men værktøjer som libvirt og libguestfs er nok mindre velkendte.
Hvis du foretrækker at lære ved at se videoer frem for at læse, har jeg lavet en video-version af denne artikel, som du kan få adgang til på YouTube.
Hvor du går igennem værktøjerne, er det en god idé at kende nogle vigtige virtualiseringsterminologier. Jeg har hentet mange af disse definitioner fra Wikipedia, hvor siderne er linket i tabellen.
Term | Definition |
---|---|
Virtualisering | I databehandling henviser virtualisering til den handling at skabe en virtuel (i stedet for fysisk) version af noget, herunder virtuelle computerhardwareplatforme, lagerenheder og computernetværksressourcer. |
Emulator | En emulator er en hardware eller software, der gør det muligt for et computersystem (kaldet værten) at opføre sig som et andet computersystem (kaldet gæsten). |
Virtuel maskine (VM) | Også kendt som en “gæstemaskine”, er disse emuleringer af rigtige, fysiske hardwarecomputere. |
Hosts | I hardwarevirtualisering er en computer, hvorpå en hypervisor kører en eller flere VM’er. |
Hypervisor | Det er computersoftware, firmware eller hardware, der opretter og kører en VM’er. |
Kernel | Dette er et computerprogram, der er kernen i en computers operativsystem, og som har fuldstændig kontrol over alt i systemet. |
Daemon | Det er et computerprogram, der kører som en baggrundsproces og ikke under direkte kontrol af en interaktiv bruger. |
Denne tabel indeholder en oversigt over hvert Virt-værktøj, herunder licensoplysninger og links til hvert værktøjs websted og kildekode. Mange af disse oplysninger stammer fra Virt Tools-webstedet og hvert enkelt værktøjs websted.
Navn | Hvad det er | Licens | Kildekode |
---|---|---|---|
Kernel-based Virtual Machine (KVM) | Et virtualiseringsmodul i Linux-kernen, der gør det muligt for kernen at fungere som en hypervisor | GNU GPL eller LGPL | Kildekode |
Quick Emulator (QEMU) | En generisk og open source-maskineemulator og virtualisator | GPLv2 | Kildekode |
Libvirt | Et bibliotek og en dæmon, der leverer en stabil, open source API til styring af virtualiseringsværter | GNU | Kildekode |
Libguestfs | Et sæt værktøjer til adgang til og ændring af VM-diskeaftryk | LGPL, GPL | Kildekode |
Virt-manager | En desktop-brugergrænseflade til styring af VM’er via libvirt | GPLv2+ | Kildekode |
Libosinfo | Forudsætter en database over oplysninger om styresystemudgivelser for at hjælpe med at konfigurere hardware optimalt ved implementering af VM’er | LGPLv2+ | Kildekode |
Kernel-based Virtual Manager (KVM)
2_kvm.jpg
(Bryant Son, CC BY-SA 4.0)
KVM er en komplet virtualiseringsløsning til Linux på hardware, der indeholder virtualiseringsudvidelser. KVM leverer hardwarevirtualisering til en lang række gæstestyresystemer, herunder Linux, Windows, macOS, ReactOS og Haiku. Ved hjælp af KVM kan du køre flere VM’er på uændrede Linux- eller Windows-images. Hver VM har privat virtualiseret hardware: et netværkskort, en disk, et grafikkort osv.
Det meste af tiden vil du ikke interagere direkte med KVM. I stedet skal du bruge QEMU, virt-manager eller et andet virtualiseringshåndteringsværktøj for at udnytte KVM.
Du kan finde den fulde dokumentation på KVM-webstedet og få adgang til kildekoden.
Quick Emulator (QEMU)
3_qemu.jpg
(Bryant Son, CC BY-SA 4.0)
QEMU er en generisk, open source-maskineemulator og virtualisator. Når QEMU bruges som en emulator, kan QEMU køre operativsystemer og programmer, der er lavet til en maskine (f.eks. et ARM-kort), på en anden maskine (f.eks. din egen x86_64-pc). Når QEMU bruges som en virtualisator, opnår QEMU næsten native ydeevne ved at udføre gæstekoden direkte på værts-CPU’en ved hjælp af KVM.
QEMU understøttes på flere styresystemer, og installationsprocessen er lige så nem som at køre et par enkle kommandoer; her kan du se, hvordan du installerer QEMU på macOS med Homebrew.
3_1_qemuinstall.jpg
(Bryant Son, CC BY-SA 4.0)
Når du har installeret det, kan du lære at bruge det ved at læse dets dokumentation, og du kan også få adgang til dets kildekode.
Libvirt
4_libvirt.jpg
(Bryant Son, CC BY-SA 4.0)
Libvirt er et bibliotek og en dæmon, der leverer et stabilt open source API til styring af virtualiseringsværter. Det er rettet mod flere hypervisorer, herunder QEMU, KVM, LXC, Xen, OpenVZ, VMWare ESX, VirtualBox og flere.
En anden interessant ting ved libvirt er, at KubeVirt, et open source-projekt til oprettelse og administration af VM’er inden for Kubernetes-platformen, i vid udstrækning anvender Libvirt. (Jeg vil dække KubeVirt i en fremtidig artikel.) Libvirt er et interessant projekt at udforske, og du kan finde et væld af oplysninger på dets officielle websted samt downloade kildekoden.
Libguestfs
5_libguestfs.jpg
(Bryant Son, CC BY-SA 4.0)
Libguestfs er et sæt værktøjer til adgang til og ændring af VM-diskeaftryk. Du kan bruge det til visning og redigering af filer inde i gæster; scripting af ændringer i VM’er; overvågning af statistikker over brugte/frie diske; oprettelse af gæster, fysiske til virtuelle (P2V) eller virtuelle til virtuelle (V2V) maskiner; udførelse af sikkerhedskopier; kloning af VM’er; opbygning af VM’er; formatering af diske; ændring af diskenes størrelse; og meget mere. Jeg har for nylig brugt det, mens jeg arbejdede på et KubeVirt-baseret projekt kaldet OpenShift Virtualization, som du kan lære mere om i min videotutorial.
Libguestfs’ officielle websted indeholder omfattende dokumentation om, hvordan du bruger hver enkelt kommando, og du kan også downloade kildekoden på GitHub.
Virt-manager
6_virtualmanager.jpg
(Bryant Son, CC BY-SA 4.0)
Virt-manager er en desktop-brugergrænseflade til administration af VM’er via libvirt. Det er primært rettet mod KVM-VM’er, men det administrerer også Xen og LXC. Den indeholder også kommandolinjeforsyningsværktøjet virt-install. Tænk på virt-manager som et brugervenligt administrationsværktøj til dine VM’er. Du kan f.eks. bruge virt-manager til at køre et Microsoft Windows-miljø på en Linux-arbejdsstation eller omvendt.
Virt-managers kildekode er tilgængelig på GitHub, og dokumentationen findes på dets websted. På nuværende tidspunkt er virt-manager kun tilgængelig for Linux-platforme.
Libosinfo
7_libosinfo.jpg
(Bryant Son, CC BY-SA 4.0)
Libosinfo indeholder en database med oplysninger om operativsystemudgivelser som hjælp til at konfigurere hardware ved implementering af VM’er. Den indeholder et C-bibliotek til søgning efter oplysninger i databasen, som også er tilgængelig fra ethvert sprog, der understøttes af GObject introspektion. Som du måske kan gætte, er libosinfo mere en byggesten til at muliggøre et styresystems funktionalitet – men en ganske vigtig en.
Libosinfosinfos kildekode er tilgængelig på GitLab, og dens dokumentation kan findes på på dens websted.