Virtualization Tools, mer känt som Virt Tools, är en samling av sex virtualiseringsverktyg med öppen källkod som skapats av olika bidragsgivare för att göra virtualiseringsvärlden till en bättre plats.
1_virttools.jpg
(Bryant Son, CC BY-SA 4.0)
En del av verktygen, som KVM och QEMU, kan vara bekanta för Linuxentusiaster, men verktyg som libvirt och libguestfs är förmodligen mindre bekanta.
Ifall du föredrar att lära dig genom att titta på videor istället för att läsa har jag skapat en videoversion av den här artikeln, som du kan komma åt på YouTube.
För att gå igenom verktygen är det en bra idé att känna till några viktiga virtualiseringsterminologier. Jag har hämtat många av dessa definitioner från Wikipedia, med sidor länkade i tabellen.
Term | Definition |
---|---|
Virtualisering | I datateknik hänvisar virtualisering till handlingen att skapa en virtuell (i stället för fysisk) version av något, inklusive virtuella hårdvaruplattformar för datorer, lagringsenheter och datornätverksresurser. |
Emulator | En emulator är en maskinvara eller programvara som gör det möjligt för ett datorsystem (värd) att bete sig som ett annat datorsystem (gäst). |
Virtuell maskin (VM) | Också känd som en ”gästmaskin” är dessa emuleringar av verkliga, fysiska hårdvarudatorer. |
Hosts | I hårdvaruvirtualisering är en dator på vilken en hypervisor kör en eller flera virtuella maskiner. |
Hypervisor | Det här är dataprogramvara, firmware eller hårdvara som skapar och kör en virtuell maskin. |
Kärnan | Detta är ett datorprogram som är kärnan i en dators operativsystem med fullständig kontroll över allt i systemet. |
Daemon | Detta är ett datorprogram som körs som en bakgrundsprocess, snarare än under direkt kontroll av en interaktiv användare. |
Denna tabell innehåller en sammanfattning av varje Virt-verktyg, inklusive information om licenser och länkar till varje verktygs webbplats och källkod. Mycket av denna information kommer från Virt Tools webbplats och varje verktygs webbplats.
Namn | Vad det är | Licens | Källkod |
---|---|---|---|
Kernel-based Virtual Machine (KVM) | En virtualiseringsmodul i Linuxkärnan som gör att kärnan kan fungera som en hypervisor | GNU GPL eller LGPL | Källkod |
Quick Emulator (QEMU) | En generisk och öppen källkodsmaskinemulator och virtualiserare | GPLv2 | Källkod |
Libvirt | Ett bibliotek och en daemon som tillhandahåller en stabil, API med öppen källkod för hantering av virtualiseringsvärdar | GNU | Källkod |
Libguestfs | En uppsättning verktyg för åtkomst till och ändring av virtuella skivavbildningar | LGPL, GPL | Källkod |
Virt-manager | Ett skrivbordsgränssnitt för hantering av virtuella maskiner via libvirt | GPLv2+ | Källkod |
Libosinfo | Gör en databas över information om operativsystemversioner för att hjälpa till att konfigurera maskinvaran optimalt vid installation av virtuella maskiner | LGPLv2+ | Källkod |
Kernel-based Virtual Manager (KVM)
2_kvm.jpg
(Bryant Son, CC BY-SA 4.0)
KVM är en fullständig virtualiseringslösning för Linux på hårdvara som innehåller virtualiseringstillägg. KVM tillhandahåller hårdvaruvirtualisering för en mängd olika gästoperativsystem, inklusive Linux, Windows, macOS, ReactOS och Haiku. Med KVM kan du köra flera virtuella maskiner på oförändrade Linux- eller Windows-avbildningar. Varje VM har privat virtualiserad hårdvara: ett nätverkskort, en disk, ett grafikkort osv.
För det mesta kommer du inte att interagera direkt med KVM. Istället måste du använda QEMU, virt-manager eller ett annat virtualiseringshanteringsverktyg för att utnyttja KVM.
Du kan hitta fullständig dokumentation på KVM:s webbplats och få tillgång till källkoden.
Quick Emulator (QEMU)
3_qemu.jpg
(Bryant Son, CC BY-SA 4.0)
QEMU är en generisk, öppen källkodsmaskinemulator och virtualiserare. När QEMU används som emulator kan man köra operativsystem och program som är gjorda för en maskin (t.ex. ett ARM-kort) på en annan maskin (t.ex. din egen x86_64-dator). När QEMU används som en virtualiserare uppnår QEMU nästan nativ prestanda genom att exekvera gästkoden direkt på värdprocessorn med hjälp av KVM.
QEMU stöds av flera operativsystem och dess installationsprocess är lika enkel som att köra några enkla kommandon; här kan du se hur du installerar QEMU på macOS med Homebrew.
3_1_qemuinstall.jpg
(Bryant Son, CC BY-SA 4.0)
När du har installerat den kan du lära dig att använda den genom att läsa igenom dokumentationen, och du kan också få tillgång till källkoden.
Libvirt
4_libvirt.jpg
(Bryant Son, CC BY-SA 4.0)
Libvirt är ett bibliotek och en daemon som tillhandahåller ett stabilt öppen källkod API för hantering av virtualiseringsvärdar. Det riktar sig till flera hypervisorer, inklusive QEMU, KVM, LXC, Xen, OpenVZ, VMWare ESX, VirtualBox med flera.
En annan intressant sak om libvirt är att KubeVirt, ett öppen källkodsprojekt för att skapa och hantera virtuella maskiner inom Kubernetes-plattformen, till stor del använder Libvirt. (Jag kommer att ta upp KubeVirt i en framtida artikel.) Libvirt är ett intressant projekt att utforska, och du kan hitta en uppsjö av information på dess officiella webbplats samt ladda ner källkoden.
Libguestfs
5_libguestfs.jpg
(Bryant Son, CC BY-SA 4.0)
Libguestfs är en uppsättning verktyg för att få tillgång till och modifiera VM-diskavbildningar. Du kan använda det för att visa och redigera filer i gäster, skriva skript för ändringar i virtuella maskiner, övervaka statistik över använda/fria diskar, skapa gäster, maskiner från fysisk till virtuell (P2V) eller från virtuell till virtuell (V2V), utföra säkerhetskopior, klona virtuella maskiner, bygga upp virtuella maskiner, formatera diskar, ändra storleken på diskar och mycket mer. Jag har nyligen använt det när jag arbetat med ett KubeVirt-baserat projekt som heter OpenShift Virtualization, som du kan lära dig mer om i min videohandledning.
Libguestfs officiella webbplats innehåller omfattande dokumentation om hur du använder varje kommando, och du kan också ladda ner källkoden på GitHub.
Virt-manager
6_virtualmanager.jpg
(Bryant Son, CC BY-SA 4.0)
Virt-manager är ett skrivbordsgränssnitt för hantering av virtuella maskiner via libvirt. Det är främst inriktat på KVM-VM:s men hanterar även Xen och LXC. Det innehåller också kommandoradsverktyget virt-install. Se virt-manager som ett lättanvänt hanteringsverktyg för dina virtuella maskiner. Du kan till exempel använda virt-manager för att köra en Microsoft Windows-miljö på en Linux-arbetsstation eller vice versa.
Virt-managers källkod finns på GitHub och dokumentation finns på webbplatsen. För närvarande är virt-manager endast tillgänglig för Linux-plattformar.
Libosinfo
7_libosinfo.jpg
(Bryant Son, CC BY-SA 4.0)
Libosinfo tillhandahåller en databas med information om operativsystemutgåvor för att hjälpa till att konfigurera maskinvara när man distribuerar virtuella maskiner. Den innehåller ett C-bibliotek för att söka information i databasen, som också är tillgänglig från alla språk som stöds av GObject introspektion. Som du kanske kan gissa är libosinfo mer av en byggsten för att möjliggöra ett operativsystems funktionalitet – men en ganska viktig sådan.
Libosinfos källkod finns tillgänglig på GitLab, och dess dokumentation finns på dess webbplats.