A Virtualization Tools, ismertebb nevén Virt Tools, hat nyílt forráskódú virtualizációs eszköz gyűjteménye, amelyet különböző közreműködők hoztak létre, hogy jobbá tegyék a virtualizáció világát.
1_virttools.jpg
(Bryant Son, CC BY-SA 4.0)
Az eszközök egy része, mint például a KVM és a QEMU, ismerős lehet a Linux-rajongók számára, de az olyan eszközök, mint a libvirt és a libguestfs valószínűleg kevésbé.
Amennyiben inkább videók megtekintésével, mint olvasással szeretne tanulni, elkészítettem ennek a cikknek egy videós változatát, amelyet a YouTube-on érhet el.
Mielőtt végigjárná az eszközöket, nem árt, ha ismer néhány alapvető virtualizációs szakkifejezést. A definíciók közül sokat a Wikipédiából merítettem, a táblázatban hivatkozott oldalakkal.
Term | Definíció |
---|---|
Virtualizáció | A számítástechnikában a virtualizáció valaminek egy virtuális (és nem fizikai) változatának létrehozására utal, beleértve a virtuális számítógépes hardverplatformokat, tárolóeszközöket és számítógépes hálózati erőforrásokat. |
Emulátor | Az emulátor olyan hardver vagy szoftver, amely lehetővé teszi, hogy egy számítógépes rendszer (az úgynevezett host) úgy viselkedjen, mint egy másik számítógépes rendszer (az úgynevezett guest). |
Virtuális gép (VM) | A “vendéggép” néven is ismert, valódi, fizikai hardveres számítógépek emulációja. |
Host | A hardveres virtualizációban egy számítógép, amelyen egy hipervizor egy vagy több VM-et futtat. |
Hypervisor | Ez a számítógépes szoftver, firmware vagy hardver, amely létrehozza és futtatja a VM-eket. |
Kernel | Ez a számítógép operációs rendszerének magját képező számítógépes program, amely a rendszerben minden felett teljes ellenőrzést gyakorol. |
Daemon | Ez egy olyan számítógépes program, amely háttérfolyamatként fut, nem pedig az interaktív felhasználó közvetlen irányítása alatt. |
Ez a táblázat összefoglalja az egyes Virt eszközöket, beleértve a licencadatokat és az egyes eszközök weboldalára és forráskódjára mutató linkeket. Ezen információk nagy része a Virt Tools weboldaláról és az egyes eszközök oldaláról származik.
Név | Miről van szó | Licenc | Forráskód |
---|---|---|---|
Kernel-based Virtual Machine (KVM) | A Linux kernel virtualizációs modulja, amely lehetővé teszi, hogy a kernel hipervisorként működjön | GNU GPL vagy LGPL | Source code |
Quick Emulator (QEMU) | Egy általános és nyílt forráskódú gépemulátor és virtualizátor | GPLv2 | Forráskód |
Libvirt | Egy könyvtár és démon, amely stabil, nyílt forráskódú API-t a virtualizációs hosztok kezeléséhez | GNU | Forráskód |
Libguestfs | Egy eszközkészlet a VM lemezképek eléréséhez és módosításához | LGPL, GPL | Forráskód |
Virt-manager | Egy asztali felhasználói felület a VM-ek kezelésére a libvirt segítségével | GPLv2+ | Forráskód |
Libosinfo | Bizonyít egy adatbázist a információkat az operációs rendszerek kiadásairól, hogy segítse a hardver optimális konfigurálását a VM-ek telepítésekor | LGPLv2+ | Forráskód |
Kernel-based Virtual Manager (KVM)
2_kvm.jpg
(Bryant Son, CC BY-SA 4.0)
A KVM egy teljes virtualizációs megoldás Linuxhoz a virtualizációs kiterjesztéseket tartalmazó hardvereken. A KVM a vendég operációs rendszerek széles skálájához biztosítja a hardveres virtualizációt, beleértve a Linuxot, a Windows-t, a macOS-t, a ReactOS-t és a Haiku-t is. A KVM használatával több VM futtatható változatlan Linux- vagy Windows-képeken. Minden VM saját virtualizált hardverrel rendelkezik: hálózati kártya, lemez, grafikus adapter stb.
A legtöbbször nem lép közvetlenül kapcsolatba a KVM-mel. Ehelyett a QEMU-t, a virt-manager-t vagy más virtualizációs kezelőeszközt kell használnia a KVM kihasználásához.
A KVM weboldalán teljes dokumentációt talál, valamint hozzáférhet a forráskódjához.
Quick Emulator (QEMU)
3_qemu.jpg
(Bryant Son, CC BY-SA 4.0)
AQEMU egy általános, nyílt forráskódú gépemulátor és virtualizátor. Emulátorként használva a QEMU képes egy gépre (pl. ARM lapkára) készült operációs rendszerek és programok futtatására egy másik gépen (pl. saját x86_64-es PC-n). Virtualizátorként használva a QEMU közel natív teljesítményt ér el azáltal, hogy a vendégkódot a KVM segítségével közvetlenül a host CPU-n hajtja végre.
A QEMU több operációs rendszeren is támogatott, és a telepítési folyamata olyan egyszerű, mint néhány egyszerű parancs futtatása; itt láthatod, hogyan telepítheted a QEMU-t macOS-re a Homebrew segítségével.
3_1_qemuinstall.jpg
(Bryant Son, CC BY-SA 4.0)
A telepítés után a dokumentáció átolvasásával tanulja meg a használatát, és hozzáférhet a forráskódjához is.
Libvirt
4_libvirt.jpg
(Bryant Son, CC BY-SA 4.0)
A Libvirt egy könyvtár és daemon, amely stabil nyílt forráskódú API-t biztosít a virtualizációs hosztok kezeléséhez. Több hipervisort céloz meg, többek között a QEMU, KVM, LXC, Xen, OpenVZ, VMWare ESX, VirtualBox stb.
A libvirt további érdekessége, hogy a KubeVirt, a Kubernetes platformon belüli VM-ek létrehozására és kezelésére szolgáló nyílt forráskódú projekt nagyrészt a Libvirtet használja. (A KubeVirt-tel egy későbbi cikkben fogok foglalkozni.) A Libvirt egy érdekes projekt, és rengeteg információt találhatsz a hivatalos weboldalán, valamint letöltheted a forráskódját.
Libguestfs
5_libguestfs.jpg
(Bryant Son, CC BY-SA 4.0)
A Libguestfs egy eszközkészlet a VM lemezképek eléréséhez és módosításához. Használhatja a vendégeken belüli fájlok megtekintésére és szerkesztésére; a VM-ek módosításának szkriptelésére; a használt/szabad lemezek statisztikáinak figyelésére; vendégek, fizikai-virtuális (P2V) vagy virtuális-virtuális (V2V) gépek létrehozására; biztonsági mentések elvégzésére; VM-ek klónozására; VM-ek építésére; lemezek formázására; lemezek méretének módosítására; és még sok másra. Az utóbbi időben egy KubeVirt-alapú, OpenShift Virtualization nevű projekten dolgozva használtam, amelyről többet megtudhatsz a videós bemutatómban.
A Libguestfs hivatalos honlapján részletes dokumentáció található az egyes parancsok használatáról, és a forráskódja is letölthető a GitHubról.
Virt-manager
6_virtualmanager.jpg
(Bryant Son, CC BY-SA 4.0)
A virt-manager egy asztali felhasználói felület a VM-ek kezelésére a libvirt segítségével. Elsősorban a KVM VM-eket célozza meg, de kezeli a Xen és az LXC VM-eket is. Tartalmazza a virt-install parancssori provisioning eszközt is. Gondoljon úgy a virt-managerre, mint egy könnyen használható menedzsment eszközre a VM-jei számára. A virt-manager segítségével például egy Microsoft Windows környezetet futtathat egy Linux munkaállomáson, vagy fordítva.
A virt-manager forráskódja elérhető a GitHub-on, a dokumentáció pedig a weboldalán. A virt-manager jelenleg csak Linux platformokra érhető el.
Libosinfo
7_libosinfo.jpg
(Bryant Son, CC BY-SA 4.0)
A Libosinfo az operációs rendszerek kiadásaira vonatkozó információkat tartalmazó adatbázist biztosít, amely VM-ek telepítésekor segít a hardver konfigurálásában. Tartalmaz egy C könyvtárat az adatbázisban lévő információk lekérdezéséhez, amely bármely, a GObject introspection által támogatott nyelvből is elérhető. Mint sejthető, a libosinfo inkább egy építőelem, amely lehetővé teszi az operációs rendszer funkcionalitását – de elég fontos.
A libosinfo forráskódja elérhető a GitLab-on, dokumentációja pedig a weboldalán található.