Virtualization Tools, mai bine cunoscut sub numele de Virt Tools, este o colecție de șase instrumente de virtualizare open source create de diverși contribuitori pentru a face lumea virtualizării un loc mai bun.
1_virttools.jpg
(Bryant Son, CC BY-SA 4.0)
Câteva dintre instrumente, cum ar fi KVM și QEMU, ar putea fi familiare pasionaților de Linux, dar instrumente precum libvirt și libguestfs sunt probabil mai puțin familiare.
În cazul în care preferați să învățați prin vizionare de videoclipuri decât prin lectură, am creat o versiune video a acestui articol, pe care o puteți accesa pe YouTube.
Înainte de a parcurge instrumentele, este o idee bună să cunoașteți o parte din terminologia esențială a virtualizării. Am derivat multe dintre aceste definiții din Wikipedia, cu pagini legate în tabel.
Termen | Definiție |
---|---|
Virtualizare | În informatică, virtualizarea se referă la actul de a crea o versiune virtuală (mai degrabă decât fizică) a ceva, inclusiv platforme hardware virtuale de calculator, dispozitive de stocare și resurse de rețea de calculatoare. |
Un emulator este un hardware sau un software care permite unui sistem informatic (numit gazdă) să se comporte ca un alt sistem informatic (numit oaspete). | |
Mașină virtuală (VM) | Cunoscută și sub numele de „mașină oaspete”, aceasta este o emulație a calculatoarelor hardware reale, fizice. |
Hosturi | În virtualizarea hardware, un calculator pe care un hipervizor rulează una sau mai multe VM. |
Hypervizor | Acesta este un software, firmware sau hardware de calculator care creează și rulează o VM. |
Kernel | Acesta este un program de calculator aflat în centrul sistemului de operare al unui calculator, cu control complet asupra tuturor elementelor din sistem. |
Acesta este un program de calculator care rulează ca un proces de fundal, mai degrabă decât sub controlul direct al unui utilizator interactiv. |
Acest tabel rezumă fiecare instrument Virt, incluzând informații despre licență și link-uri către site-ul web și codul sursă al fiecărui instrument. O mare parte din aceste informații provin de pe site-ul Virt Tools și de pe site-ul fiecărui instrument.
Nume | Ce este | Licență | Cod sursă |
---|---|---|---|
Kernel-based Virtual Machine (KVM) | GNU GPL sau LGPL | Codul sursă | |
Codul sursă | |||
Rapid Emulator (QEMU) | Un emulator de mașini și un virtualizator generic și cu sursă deschisă | GPLv2 | Cod sursă |
Libvirt | O bibliotecă și un daemon care oferă o funcție stabilă, API open source pentru gestionarea gazdelor de virtualizare | Cod sursă | |
Libguestfs | Un set de instrumente pentru accesarea și modificarea imaginilor de disc ale mașinilor virtuale | LGPL, GPL | |
Virt…manager | O interfață utilizator desktop pentru gestionarea VM-urilor prin libvirt | GPLv2+ | Cod sursă |
Libosinfo | Furnizează o bază de date de informații despre versiunile sistemului de operare pentru a ajuta la configurarea optimă a hardware-ului atunci când se implementează VM-uri | LGPLv2+ | Cod sursă |
Kernel-based Virtual Manager (KVM)
2_kvm.jpg
(Bryant Son, CC BY-SA 4.0)
KVM este o soluție completă de virtualizare pentru Linux pe hardware care conține extensii de virtualizare. KVM asigură virtualizarea hardware pentru o mare varietate de sisteme de operare invitate, inclusiv Linux, Windows, macOS, ReactOS și Haiku. Utilizând KVM, puteți rula mai multe mașini virtuale pe imagini Linux sau Windows nemodificate. Fiecare VM are hardware virtualizat privat: o placă de rețea, un disc, un adaptor grafic etc.
În cea mai mare parte a timpului, nu veți interacționa direct cu KVM. În schimb, trebuie să folosiți QEMU, virt-manager sau un alt instrument de gestionare a virtualizării pentru a valorifica KVM.
Puteți găsi documentația completă pe site-ul web KVM, precum și să accesați codul său sursă.
Quick Emulator (QEMU)
3_qemu.jpg
(Bryant Son, CC BY-SA 4.0)
QEMU este un emulator și virtualizator de mașini generic, open source. Atunci când este utilizat ca emulator, QEMU poate rula sisteme de operare și programe realizate pentru o mașină (de exemplu, o placă ARM) pe o altă mașină (de exemplu, propriul PC x86_64). Atunci când este utilizat ca virtualizator, QEMU obține performanțe aproape native prin executarea codului invitat direct pe CPU-ul gazdă folosind KVM.
QEMU este suportat pe mai multe sisteme de operare, iar procesul său de instalare este la fel de ușor ca și rularea câtorva comenzi simple; aici, puteți vedea cum să instalați QEMU pe macOS cu Homebrew.
3_1_qemuinstall.jpg
(Bryant Son, CC BY-SA 4.0)
După instalare, învățați cum să îl folosiți citind documentația sa și puteți accesa și codul său sursă.
Libvirt
4_libvirt.jpg
(Bryant Son, CC BY-SA 4.0)
Libvirt este o bibliotecă și un daemon care oferă un API open source stabil pentru gestionarea gazdelor de virtualizare. Acesta vizează mai multe hipervizoare, inclusiv QEMU, KVM, LXC, Xen, OpenVZ, VMWare ESX, VirtualBox și multe altele.
Un alt lucru interesant despre libvirt este că KubeVirt, un proiect open source pentru crearea și gestionarea VM-urilor în interiorul platformei Kubernetes, utilizează în mare parte Libvirt. (Voi aborda KubeVirt într-un articol viitor.) Libvirt este un proiect interesant de explorat și puteți găsi o multitudine de informații pe site-ul său oficial, precum și să descărcați codul său sursă.
Libguestfs
5_libguestfs.jpg
(Bryant Son, CC BY-SA 4.0)
Libguestfs este un set de instrumente pentru accesarea și modificarea imaginilor de disc VM. Îl puteți utiliza pentru vizualizarea și editarea fișierelor din interiorul oaspeților; scriptingul modificărilor la VM-uri; monitorizarea statisticilor de discuri utilizate/libere; crearea de oaspeți, mașini fizice la virtuale (P2V) sau virtuale la virtuale (V2V); efectuarea de copii de rezervă; clonarea VM-urilor; construirea de VM-uri; formatarea discurilor; redimensionarea discurilor; și multe altele. L-am folosit recent în timp ce lucram la un proiect bazat pe KubeVirt numit OpenShift Virtualization, despre care puteți afla mai multe în tutorialul meu video.
Site-ul oficial al lui Libguestfs conține o documentație amplă despre cum se utilizează fiecare comandă și puteți, de asemenea, descărca codul său sursă de pe GitHub.
Virt-manager
6_virtualmanager.jpg
(Bryant Son, CC BY-SA 4.0)
Virt-manager este o interfață de utilizator desktop pentru gestionarea VM-urilor prin libvirt. Acesta vizează în primul rând VM-urile KVM, dar gestionează și Xen și LXC. Include, de asemenea, instrumentul de provizionare în linie de comandă virt-install. Gândiți-vă la virt-manager ca la un instrument de gestionare ușor de utilizat pentru mașinile dumneavoastră virtuale. De exemplu, puteți folosi virt-manager pentru a rula un mediu Microsoft Windows pe o stație de lucru Linux sau invers.
Codul sursă al virt-manager este disponibil pe GitHub, iar documentația este disponibilă pe site-ul său. În acest moment, virt-manager este disponibil doar pentru platformele Linux.
Libosinfo
7_libosinfo.jpg
(Bryant Son, CC BY-SA 4.0)
Libosinfo oferă o bază de date cu informații despre versiunile sistemului de operare pentru a ajuta la configurarea hardware-ului la implementarea VM-urilor. Acesta include o bibliotecă C pentru interogarea informațiilor din baza de date, care este, de asemenea, accesibilă din orice limbaj acceptat de introspecția GObject. După cum probabil ați ghicit, libosinfo este mai mult un bloc de construcție pentru a activa funcționalitatea unui sistem de operare – dar unul destul de important.
Codul sursă al libosinfo este disponibil pe GitLab, iar documentația sa poate fi găsită pe site-ul său.