Virtualization Tools, joka tunnetaan paremmin nimellä Virt Tools, on kokoelma kuutta avoimen lähdekoodin virtualisointityökalua, jotka on luotu useiden eri tekijöiden toimesta ja joiden tarkoituksena on parantaa virtualisointimaailmaa.
1_virttools.jpg
(Bryant Son, CC BY-SA 4.0)
Jotkut työkaluista, kuten KVM ja QEMU, saattavat olla tuttuja Linux-harrastajille, mutta libvirtin ja libguestfs:n kaltaiset työkalut luultavasti vähemmän.
Jos haluat oppia mieluummin katsomalla videoita kuin lukemalla, loin tästä artikkelista videoversion, johon pääset käsiksi YouTubessa.
Voit ennen työkalujen läpikäyntiä tutustua joihinkin olennaisiin virtualisointitermistöihin. Johdin monet näistä määritelmistä Wikipediasta, jonka sivut on linkitetty taulukossa.
Termi | Määritelmä |
---|---|
Virtualisointi | Virtualisoinnilla tarkoitetaan tietojenkäsittelyn alalla virtuaalisen (fyysisen) version luomista jostakin asiasta, mukaan luettuina virtuaaliset tietokoneen laitteistoalustat, tallennuslaitteet ja tietokoneverkon resurssit. |
Emulaattori | Emulaattori on laitteisto tai ohjelmisto, jonka avulla yksi tietokonejärjestelmä (nimeltään isäntä) voi käyttäytyä kuin toinen tietokonejärjestelmä (nimeltään vieras). |
Virtuaalikone (VM) | Nimeltään ”vieras-kone”, nämä ovat oikeiden fyysisten laitteisto-tietokoneiden jäljitelmiä. |
Hostit | Laitteistovirtualisoinnissa tietokone, jossa hypervisor ajaa yhtä tai useampaa VM:ää. |
Hypervisor | Se on tietokoneohjelmisto, laiteohjelmisto tai -laitteisto, joka luo ja ajaa VM:ää. |
Kernel | Tämä on tietokoneen käyttöjärjestelmän ytimessä oleva tietokoneohjelma, jolla on täydellinen määräysvalta kaikkeen järjestelmässä olevaan. |
Daemon | Tämä on tietokoneohjelma, joka toimii taustaprosessina eikä vuorovaikutteisen käyttäjän suorassa hallinnassa. |
Tässä taulukossa on yhteenveto jokaisesta Virt-työkalusta, mukaan lukien lisenssitiedot ja linkit kunkin työkalun verkkosivuille ja lähdekoodiin. Suuri osa näistä tiedoista on peräisin Virt Tools -sivustolta ja kunkin työkalun sivustolta.
Nimi | Mitä se on | Lisenssi | Lähdekoodi |
---|---|---|---|
Kernel-based Virtual Machine (KVM) | Linux-ytimen virtualisointimoduuli, jonka avulla ydin voi toimia hypervisorina | GNU GPL tai LGPL | Lähdekoodi |
Lähdekoodi | |||
Nopea Emulator (QEMU) | Yleinen ja avoimen lähdekoodin kone-emulaattori ja virtualisoija | GPLv2 | Lähdekoodi |
Libvirt | Kirjasto ja daemon, joka tarjoaa vakaan, avoimen lähdekoodin API virtualisointi-isäntien hallintaan | GNU | Lähdekoodi |
Libguestfs | Työkalut VM-levykuvien käyttämiseen ja muokkaamiseen | LGPL, GPL | Lähdekoodi |
Virt-manager | Työpöydän käyttöliittymä VM:ien hallintaan libvirt:n avulla | GPLv2+ | Lähdekoodi |
Libosinfo | Tarjoaa tietokannan tietoja käyttöjärjestelmän julkaisuista, jotka auttavat laitteiston optimaalisessa konfiguroinnissa VM:ien käyttöönoton yhteydessä | LGPLv2+ | Lähdekoodi |
Kernel-based Virtual Manager (KVM)
2_kvm.jpg
(Bryant Son, CC BY-SA 4.0)
KVM on täydellinen virtualisointiratkaisu Linux-käyttöjärjestelmälle laitteistoissa, jotka sisältävät virtualisointilaajennuksia. KVM tarjoaa laitteistovirtualisoinnin monille erilaisille vieraskäyttöjärjestelmille, kuten Linux, Windows, macOS, ReactOS ja Haiku. KVM:n avulla voit käyttää useita VM:iä muokkaamattomilla Linux- tai Windows-kuvilla. Jokaisella VM:llä on oma virtualisoitu laitteisto: verkkokortti, levy, grafiikkasovitin jne.
Viime aikoina et ole suoraan tekemisissä KVM:n kanssa. Sen sijaan sinun on käytettävä QEMU:ta, virt-manageria tai muuta virtualisoinnin hallintatyökalua, jotta voit hyödyntää KVM:ää.
KVM:n verkkosivuilta löydät täydellisen dokumentaation sekä pääset käsiksi sen lähdekoodiin.
Quick Emulator (QEMU)
3_qemu.jpg
(Bryant Son, CC BY-SA 4.0)
QEMU on yleinen, avoimen lähdekoodin kone-emulaattori ja virtualisaattori. Kun QEMUa käytetään emulaattorina, sillä voidaan ajaa käyttöjärjestelmiä ja ohjelmia, jotka on tehty yhdelle koneelle (esim. ARM-levylle), toisella koneella (esim. omalla x86_64-tietokoneella). Virtualisaattorina käytettynä QEMU saavuttaa lähes natiivin suorituskyvyn suorittamalla vieraskoodin suoraan isäntäsuorittimella KVM:n avulla.
QEMU:ta tuetaan useissa käyttöjärjestelmissä, ja sen asennusprosessi on yhtä helppoa kuin muutaman yksinkertaisen komennon suorittaminen; tässä näet, miten QEMU asennetaan macOS:ään Homebrew:n avulla.
3_1_qemuinstall.jpg
(Bryant Son, CC BY-SA 4.0)
Asennuksen jälkeen opettele käyttämään sitä lukemalla sen dokumentaatio läpi, ja pääset myös käsiksi sen lähdekoodiin.
Libvirt
4_libvirt.jpg
(Bryant Son, CC BY-SA 4.0)
Libvirt on kirjasto ja daemon, joka tarjoaa vakaan avoimen lähdekoodin sovellusrajapinnan virtualisointi-isäntäkoneiden hallintaan. Se kohdistuu useisiin hypervisoreihin, kuten QEMU:hun, KVM:ään, LXC:hen, Xeniin, OpenVZ:hen, VMWare ESX:ään, VirtualBoxiin ja muihin.
Toinen mielenkiintoinen asia libvirtistä on se, että KubeVirt, avoimen lähdekoodin projekti VM:ien luomiseen ja hallintaan Kubernetes-alustan sisällä, hyödyntää pitkälti Libvirtiä. (Käsittelen KubeVirtiä tulevassa artikkelissa.) Libvirt on mielenkiintoinen projekti, johon kannattaa tutustua, ja sen viralliselta sivustolta löytyy runsaasti tietoa sekä sen lähdekoodin lataaminen.
Libguestfs
5_libguestfs.jpg
(Bryant Son, CC BY-SA 4.0)
Libguestfs on joukko työkaluja VM-levykuvien käyttämiseen ja muokkaamiseen. Voit käyttää sitä vieraiden sisällä olevien tiedostojen tarkasteluun ja muokkaamiseen, VM-kuviin tehtävien muutosten skriptaamiseen, käytettyjen/vapaiden levytilastojen seurantaan, vieraiden, fyysisistä virtuaalikoneista virtuaalikoneiksi (P2V) tai virtuaalisista virtuaalikoneista virtuaalikoneiksi (V2V) luotujen koneiden luomiseen, varmuuskopioinnin suorittamiseen, VM:ien kloonaamiseen, VM:ien rakentamiseen, levyjen alustamiseen, levyjen koon muuttamiseen ja paljon muuhun. Olen käyttänyt sitä viime aikoina työskennellessäni KubeVirt-pohjaisen projektin nimeltä OpenShift Virtualization parissa, josta voit oppia lisää video-oppaassani.
Libguestfs:n virallisella verkkosivustolla on laaja dokumentaatio kunkin komennon käytöstä, ja voit myös ladata sen lähdekoodin GitHubista.
Virt-manager
6_virtualmanager.jpg
(Bryant Son, CC BY-SA 4.0)
Virt-manager on työpöydän käyttöliittymä VM:ien hallintaan libvirt:n avulla. Se kohdistuu ensisijaisesti KVM-VM:iin, mutta hallitsee myös Xeniä ja LXC:tä. Se sisältää myös komentorivin provisiointityökalun virt-install. Ajattele virt-manageria helppokäyttöisenä VM:ien hallintatyökaluna. Voit esimerkiksi käyttää virt-manageria Microsoft Windows -ympäristön käyttämiseen Linux-työasemalla tai päinvastoin.
Virt-managerin lähdekoodi on saatavilla GitHubissa ja dokumentaatio löytyy sen verkkosivuilta. Tällä hetkellä virt-manager on saatavilla vain Linux-alustoille.
Libosinfo
7_libosinfo.jpg
(Bryant Son, CC BY-SA 4.0)
Libosinfo tarjoaa tietokannan, joka sisältää tietoja käyttöjärjestelmän julkaisuista ja auttaa laitteiston konfiguroinnissa VM:n käyttöönoton yhteydessä. Se sisältää C-kirjaston tietokannan tietojen kyselyyn, jota voi käyttää myös millä tahansa kielellä, jota GObject-introspektio tukee. Kuten arvata saattaa, libosinfo on enemmänkin rakennuspalikka, joka mahdollistaa käyttöjärjestelmän toiminnallisuuden – mutta varsin tärkeä sellainen.
Libosinfon lähdekoodi on saatavilla GitLabissa, ja sen dokumentaatio löytyy sen verkkosivuilta.