Virtualization Tools, beter bekend als Virt Tools, is een verzameling van zes open source virtualisatietools die door verschillende bijdragers zijn gemaakt om de virtualisatiewereld beter te maken.
1_virttools.jpg
(Bryant Son, CC BY-SA 4.0)
Enkele van de tools, zoals KVM en QEMU, zijn wellicht bekend bij Linux-liefhebbers, maar tools zoals libvirt en libguestfs zijn dat waarschijnlijk minder.
In het geval dat je liever leert door video’s te bekijken dan door te lezen, heb ik een video versie van dit artikel gemaakt, die je kunt bekijken op YouTube.
Voordat je de tools doorloopt, is het een goed idee om wat essentiële virtualisatie terminologie te kennen. Veel van deze definities heb ik ontleend aan Wikipedia, met pagina’s waarnaar in de tabel wordt verwezen.
Term | Definitie |
---|---|
Virtualisatie | In de informatica verwijst virtualisatie naar het maken van een virtuele (in plaats van fysieke) versie van iets, met inbegrip van virtuele computerhardwareplatforms, opslagapparaten, en computernetwerkbronnen. |
Emulator | Een emulator is hardware of software waarmee een computersysteem (de host genoemd) zich kan gedragen als een ander computersysteem (de gast genoemd). |
Virtuele machine (VM) | Ook bekend als een “gastmachine”, dit zijn emulaties van echte, fysieke hardwarecomputers. |
Hosts | In hardwarevirtualisatie, een computer waarop een hypervisor een of meer VM’s uitvoert. |
Hypervisor | Dit is computersoftware, firmware of hardware waarmee een VM wordt gemaakt en uitgevoerd. |
Kernel | Dit is een computerprogramma dat de kern vormt van het besturingssysteem van een computer en volledige controle heeft over alles in het systeem. |
Daemon | Dit is een computerprogramma dat als achtergrondproces draait, in plaats van onder de directe controle van een interactieve gebruiker. |
Deze tabel geeft een samenvatting van elke Virt Tool, inclusief licentie-informatie en links naar de website en broncode van elke tool. Veel van deze informatie komt van de Virt Tools website en de site van elke tool.
Naam | Wat het is | Licentie | Broncode |
---|---|---|---|
Kernel-based Virtual Machine (KVM) | Een virtualisatiemodule in de Linux-kernel die de kernel in staat stelt als hypervisor te fungeren | GNU GPL of LGPL | Broncode |
Quick Emulator (QEMU) | Een generieke en open source machine emulator en virtualizer | GPLv2 | Broncode |
Libvirt | Een library en daemon die een stabiele, open source API voor het beheer van virtualisatie hosts | GNU | Broncode |
Libguestfs | Een set tools voor het benaderen en wijzigen van VM disk images | LGPL, GPL | Broncode |
Virt-manager | Een desktop gebruikersinterface voor het beheren van VM’s via libvirt | GPLv2+ | Broncode |
Libosinfo | Voorziet in een database met informatie over besturingssysteemversies om te helpen bij het optimaal configureren van hardware bij het inzetten van VM’s | LGPLv2+ | Broncode |
Kernel-gebaseerde Virtuele Manager (KVM)
2_kvm.jpg
(Bryant Zoon, CC BY-SA 4.0)
KVM is een volledige virtualisatie-oplossing voor Linux op hardware met virtualisatie-extensies. KVM biedt hardwarevirtualisatie voor een breed scala aan gastbesturingssystemen, waaronder Linux, Windows, macOS, ReactOS en Haiku. Met KVM kunt u meerdere VM’s draaien op ongewijzigde Linux- of Windows-images. Elke VM heeft eigen gevirtualiseerde hardware: een netwerkkaart, schijf, grafische adapter, enz.
In de meeste gevallen zul je geen directe interactie hebben met KVM. In plaats daarvan moet u QEMU, virt-manager of een ander virtualisatiebeheerprogramma gebruiken om KVM te kunnen gebruiken.
De volledige documentatie is te vinden op de KVM-website, waar u ook toegang hebt tot de broncode.
Quick Emulator (QEMU)
3_qemu.jpg
(Bryant Zoon, CC BY-SA 4.0)
QEMU is een generieke, open-source machine-emulator en -virtualisator. Bij gebruik als emulator kan QEMU besturingssystemen en programma’s die zijn gemaakt voor een bepaalde machine (bijvoorbeeld een ARM-board) op een andere machine uitvoeren (bijvoorbeeld uw eigen x86_64-pc). Wanneer QEMU wordt gebruikt als virtualizer, bereikt het bijna-native prestaties door de gastcode rechtstreeks op de host-CPU uit te voeren met KVM.
QEMU wordt ondersteund op meerdere besturingssystemen, en het installatieproces is zo eenvoudig als het uitvoeren van een paar eenvoudige commando’s; hier kunt u zien hoe u QEMU op macOS installeert met Homebrew.
3_1_qemuinstall.jpg
(Bryant Zoon, CC BY-SA 4.0)
Na de installatie kunt u leren hoe u het moet gebruiken door de documentatie door te lezen, en u kunt ook toegang krijgen tot de broncode.
Libvirt
4_libvirt.jpg
(Bryant Zoon, CC BY-SA 4.0)
Libvirt is een bibliotheek en daemon die een stabiele open source API biedt voor het beheer van virtualisatiehosts. Het richt zich op meerdere hypervisors, waaronder QEMU, KVM, LXC, Xen, OpenVZ, VMWare ESX, VirtualBox en meer.
Een ander interessant aspect van libvirt is dat KubeVirt, een open-sourceproject voor het maken en beheren van VM’s binnen het Kubernetes-platform, grotendeels gebruikmaakt van Libvirt. (Ik zal KubeVirt in een toekomstig artikel behandelen.) Libvirt is een interessant project om te verkennen, en je kunt een overvloed aan informatie vinden op de officiële website en ook de broncode downloaden.
Libguestfs
5_libguestfs.jpg
(Bryant Zoon, CC BY-SA 4.0)
Libguestfs is een verzameling hulpprogramma’s voor het benaderen en wijzigen van VM schijfimages. Je kunt het gebruiken voor het bekijken en bewerken van bestanden in guests; het scripten van wijzigingen in VM’s; het monitoren van gebruikte/vrije schijfstatistieken; het maken van guests, physical to virtual (P2V), of virtual to virtual (V2V) machines; het uitvoeren van back-ups; het klonen van VM’s; het bouwen van VM’s; het formatteren van schijven; het aanpassen van de grootte van schijven; en nog veel meer. Ik heb het onlangs gebruikt tijdens het werken aan een KubeVirt-gebaseerd project genaamd OpenShift Virtualization, waar je meer over kunt leren in mijn video tutorial.
Libguestfs ‘officiële website bevat uitgebreide documentatie over het gebruik van elk commando, en je kunt ook de broncode downloaden op GitHub.
Virt-manager
6_virtualmanager.jpg
(Bryant Zoon, CC BY-SA 4.0)
Virt-manager is een desktop-gebruikersinterface voor het beheren van VM’s via libvirt. Het is primair gericht op KVM VM’s maar beheert ook Xen en LXC. Het bevat ook het command line provisioning tool virt-install. Zie virt-manager als een eenvoudig te gebruiken beheertool voor uw VM’s. U kunt virt-manager bijvoorbeeld gebruiken om een Microsoft Windows-omgeving op een Linux-werkstation te draaien of vice versa.
De broncode van virt-manager is beschikbaar op GitHub en de documentatie staat op de website. Op dit moment is virt-manager alleen beschikbaar voor Linux-platforms.
Libosinfo
7_libosinfo.jpg
(Bryant Zoon, CC BY-SA 4.0)
Libosinfo biedt een database met informatie over besturingssysteemreleases om te helpen bij het configureren van hardware bij het implementeren van VM’s. Het bevat een C-bibliotheek voor het opvragen van informatie in de database, die ook toegankelijk is vanuit elke taal die door GObject-introspectie wordt ondersteund. Zoals je misschien al raadt, is libosinfo meer een bouwsteen om de functionaliteit van een besturingssysteem mogelijk te maken – maar wel een hele belangrijke.
De broncode van libosinfo is beschikbaar op GitLab, en de documentatie is te vinden op de website.