Virtualization Tools, meglio noto come Virt Tools, è una raccolta di sei strumenti di virtualizzazione open source creati da vari contributori per rendere il mondo della virtualizzazione un posto migliore.
Alcuni strumenti, come KVM e QEMU, potrebbero essere familiari agli appassionati di Linux, ma strumenti come libvirt e libguestfs probabilmente lo sono meno.
Nel caso in cui preferisci imparare guardando i video piuttosto che leggendo, ho creato una versione video di questo articolo, a cui puoi accedere su YouTube.
Prima di esaminare gli strumenti, è una buona idea conoscere una terminologia essenziale per la virtualizzazione. Ho derivato molte di queste definizioni da Wikipedia, con pagine collegate nella tabella.
Durata | Definizione |
---|---|
Virtualizzazione | Nell'informatica, la virtualizzazione si riferisce all'atto di creare una versione virtuale (piuttosto che fisica) di qualcosa, incluse piattaforme hardware di computer virtuali, dispositivi di archiviazione e risorse di rete di computer. |
Emulatore | Un emulatore è un hardware o un software che consente a un computer (denominato host) di comportarsi come un altro computer (denominato guest). |
Macchina virtuale (VM) | Nota anche come "macchina ospite", queste sono emulazioni di computer hardware fisici reali. |
Host | Nella virtualizzazione hardware, un computer su cui un hypervisor esegue una o più VM. |
Hypervisor | Questo è software, firmware o hardware per computer che crea ed esegue una VM. |
Kernel | Questo è un programma per computer al centro del sistema operativo di un computer con il controllo completo su tutto nel sistema. |
Daemon | Questo è un programma per computer che viene eseguito come processo in background, piuttosto che sotto il controllo diretto di un utente interattivo. |
Questa tabella riassume ogni strumento Virt, comprese le informazioni sulla licenza e i collegamenti al sito Web e al codice sorgente di ogni strumento. Gran parte di queste informazioni provengono dal sito Web di Virt Tools e dal sito di ogni strumento.
Nome | Che cos'è | Licenza | Codice sorgente |
---|---|---|---|
Macchina virtuale basata su kernel (KVM) | Un modulo di virtualizzazione nel kernel Linux che consente al kernel di funzionare come hypervisor | GNU GPL o LGPL | Codice sorgente |
Emulatore rapido (QEMU) | Un emulatore e virtualizzatore di macchine generico e open source | GPLv2 | Codice sorgente |
Libvirt | Una libreria e un demone che forniscono un'API open source stabile per la gestione degli host di virtualizzazione | GNU | Codice sorgente |
Libguestfs | Un set di strumenti per l'accesso e la modifica delle immagini disco della VM | LGPL, GPL | Codice sorgente |
Virt-manager | Un'interfaccia utente desktop per la gestione delle VM tramite libvirt | GPLv2+ | Codice sorgente |
Libosinfo | Fornisce un database di informazioni sulle versioni del sistema operativo per assistere nella configurazione ottimale dell'hardware durante la distribuzione di VM | LGPLv2+ | Codice sorgente |
Gestione virtuale (KVM) basato sul kernel
KVM è una soluzione di virtualizzazione completa per Linux su hardware contenente estensioni di virtualizzazione. KVM fornisce la virtualizzazione hardware per un'ampia varietà di sistemi operativi guest, inclusi Linux, Windows, macOS, ReactOS e Haiku. Utilizzando KVM, puoi eseguire più VM su immagini Linux o Windows non modificate. Ogni VM dispone di hardware virtualizzato privato:una scheda di rete, un disco, una scheda grafica, ecc.
La maggior parte delle volte, non interagirai direttamente con KVM. Invece, devi utilizzare QEMU, virt-manager o un altro strumento di gestione della virtualizzazione per sfruttare KVM.
Puoi trovare la documentazione completa sul sito Web di KVM e accedere al suo codice sorgente.
Emulatore rapido (QEMU)
QEMU è un emulatore e virtualizzatore di macchine open source generico. Se utilizzato come emulatore, QEMU può eseguire sistemi operativi e programmi realizzati per una macchina (ad esempio una scheda ARM) su una macchina diversa (ad esempio, il tuo PC x86_64). Quando viene utilizzato come virtualizzatore, QEMU raggiunge prestazioni quasi native eseguendo il codice guest direttamente sulla CPU host tramite KVM.
QEMU è supportato su più sistemi operativi e il suo processo di installazione è facile come eseguire alcuni semplici comandi; qui puoi vedere come installare QEMU su macOS con Homebrew.
Dopo l'installazione, scopri come usarlo leggendo la sua documentazione e puoi anche accedere al suo codice sorgente.
Libvirt
Libvirt è una libreria e un demone che fornisce un'API open source stabile per la gestione degli host di virtualizzazione. Si rivolge a più hypervisor, inclusi QEMU, KVM, LXC, Xen, OpenVZ, VMWare ESX, VirtualBox e altri.
Un'altra cosa interessante di libvirt è che KubeVirt, un progetto open source per la creazione e la gestione di VM all'interno della piattaforma Kubernetes, utilizza ampiamente Libvirt. (Tratterò KubeVirt in un prossimo articolo.) Libvirt è un progetto interessante da esplorare e puoi trovare una miriade di informazioni sul suo sito Web ufficiale e scaricare il suo codice sorgente.
Libguestfs
Libguestfs è un insieme di strumenti per l'accesso e la modifica delle immagini del disco della macchina virtuale. Puoi usarlo per visualizzare e modificare i file all'interno degli ospiti; modifiche di script alle macchine virtuali; monitoraggio del disco utilizzato/statistiche libere; creazione di guest, macchine da fisico a virtuale (P2V) o da virtuale a virtuale (V2V); eseguire backup; clonazione di macchine virtuali; costruzione di macchine virtuali; dischi di formattazione; ridimensionamento dei dischi; e altro ancora. L'ho usato di recente mentre lavoravo a un progetto basato su KubeVirt chiamato OpenShift Virtualization, di cui puoi saperne di più nel mio tutorial video.
Il sito Web ufficiale di Libguestfs contiene un'ampia documentazione su come utilizzare ciascun comando e puoi anche scaricarne il codice sorgente su GitHub.
Virt-manager
Virt-manager è un'interfaccia utente desktop per la gestione di VM tramite libvirt. Si rivolge principalmente alle macchine virtuali KVM, ma gestisce anche Xen e LXC. Include anche lo strumento di provisioning della riga di comando virt-install. Pensa a virt-manager come a uno strumento di gestione facile da usare per le tue macchine virtuali. Ad esempio, puoi utilizzare virt-manager per eseguire un ambiente Microsoft Windows su una workstation Linux o viceversa.
Il codice sorgente di Virt-manager è disponibile su GitHub e la documentazione è sul suo sito web. Al momento virt-manager è disponibile solo per piattaforme Linux.
Libosinfo
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
Libosinfo fornisce un database di informazioni sulle versioni del sistema operativo per assistere nella configurazione dell'hardware durante la distribuzione di macchine virtuali. Include una libreria C per interrogare le informazioni nel database, accessibile anche da qualsiasi linguaggio supportato dall'introspezione di GObject. Come puoi immaginare, libosinfo è più un elemento costitutivo per abilitare la funzionalità di un sistema operativo, ma piuttosto importante.
Il codice sorgente di Libosinfo è disponibile su GitLab e la relativa documentazione può essere trovata sul suo sito web.
Conclusione
Virt-tools è un insieme di sei potenti strumenti che semplificano la virtualizzazione e abilitano importanti funzioni di virtualizzazione. Sono tutti progetti open source, quindi ti incoraggio a esplorare ulteriormente e forse anche a contribuire.
Cosa ne pensi? Sentiti libero di lasciare un commento per condividere i tuoi pensieri o porre domande.