6 tecnologie di virtualizzazione open source da conoscere nel 2020

Virtualization Tools, meglio conosciuto come Virt Tools, è una raccolta di sei strumenti di virtualizzazione open source creati da vari collaboratori 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 lo sono probabilmente meno.

Nel caso in cui preferiate imparare guardando video piuttosto che leggendo, ho creato una versione video di questo articolo, a cui potete accedere su YouTube.

Prima di camminare attraverso gli strumenti, è una buona idea conoscere alcuni termini essenziali di virtualizzazione. Ho derivato molte di queste definizioni da Wikipedia, con le pagine collegate nella tabella.

Termine Definizione
Virtualizzazione In informatica, la virtualizzazione si riferisce all’atto di creare una versione virtuale (piuttosto che fisica) di qualcosa, incluse piattaforme hardware virtuali per computer, dispositivi di archiviazione e risorse di rete.
Emulatore Un emulatore è un hardware o software che permette a un sistema di computer (chiamato host) di comportarsi come un altro sistema di computer (chiamato guest).
Macchina virtuale (VM) Anche nota come “macchina ospite”, queste sono emulazioni di computer reali, hardware fisici.
Hosts Nella virtualizzazione hardware, un computer su cui un hypervisor esegue una o più VM.
Hypervisor Si tratta di software, firmware o hardware che crea e gestisce una VM.
Kernel È un programma informatico al centro del sistema operativo di un computer con il controllo completo su tutto il sistema.
Daemon Questo è un programma per computer che viene eseguito come un processo in background, piuttosto che sotto il controllo diretto di un utente interattivo.

Questa tabella riassume ogni Virt Tool, includendo informazioni sulla licenza e link al sito web e al codice sorgente di ogni strumento. Molte di queste informazioni provengono dal sito web di Virt Tools e dal sito di ogni strumento.

Nome Cosa è Licenza Codice sorgente
Kernel-based Virtual Machine (KVM) Un modulo di virtualizzazione nel kernel Linux che permette al kernel di funzionare come un hypervisor GNU GPL o LGPL Codice sorgente
Quick Emulator (QEMU) A generic and open source machine emulator and virtualizer GPLv2 Source code
Libvirt A library and daemon providing a stable, open source per la gestione di host di virtualizzazione GNU Codice sorgente
Libguestfs Un insieme di strumenti per accedere e modificare le immagini disco delle VM LGPL, GPL Codice sorgente
Virt-manager Un’interfaccia utente desktop per gestire le VM attraverso libvirt GPLv2+ Codice sorgente
Libosinfo Fornisce un database di informazioni sulle versioni del sistema operativo per aiutare a configurare in modo ottimale l’hardware quando si distribuiscono le VM LGPLv2+ Codice sorgente

Kernel-based Virtual Manager (KVM)

2_kvm.jpg

Sito web di KVM

(Bryant Son, CC BY-SA 4.0)

KVM è una soluzione di virtualizzazione completa per Linux su hardware contenente estensioni di virtualizzazione. KVM fornisce la virtualizzazione dell’hardware per un’ampia varietà di sistemi operativi guest, inclusi Linux, Windows, macOS, ReactOS e Haiku. Usando KVM, è possibile eseguire più VM su immagini Linux o Windows non modificate. Ogni VM ha un hardware virtualizzato privato: una scheda di rete, un disco, un adattatore grafico, ecc.

Il più delle volte, non si interagisce direttamente con KVM. Invece, devi usare QEMU, virt-manager, o un altro strumento di gestione della virtualizzazione per sfruttare KVM.

Puoi trovare la documentazione completa sul sito web di KVM, così come accedere al suo codice sorgente.

Quick Emulator (QEMU)

3_qemu.jpg

Sito web di QEMU

(Bryant Son, CC BY-SA 4.0)

QEMU è un emulatore e virtualizzatore di macchine generico, open source. Quando viene usato come emulatore, QEMU può eseguire sistemi operativi e programmi fatti per una macchina (ad esempio, una scheda ARM) su una macchina diversa (ad esempio, il proprio PC x86_64). Quando viene utilizzato come virtualizzatore, QEMU raggiunge prestazioni quasi native eseguendo il codice del guest direttamente sulla CPU host utilizzando KVM.

QEMU è supportato su più sistemi operativi, e il suo processo di installazione è facile come eseguire alcuni semplici comandi; qui, potete vedere come installare QEMU su macOS con Homebrew.

3_1_qemuinstall.jpg

QEMU macOS installation info

(Bryant Son, CC BY-SA 4.0)

Dopo l’installazione, impara ad usarlo leggendo la sua documentazione, e puoi anche accedere al suo codice sorgente.

Libvirt

4_libvirt.jpg

Sito web di Libvirt

(Bryant Son, CC BY-SA 4.0)

Libvirt è una libreria e un demone che fornisce un’API open source stabile per gestire gli host di virtualizzazione. Si rivolge a più hypervisor, tra cui QEMU, KVM, LXC, Xen, OpenVZ, VMWare ESX, VirtualBox e altri ancora.

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. (Libvirt è un progetto interessante da esplorare, e potete trovare una pletora di informazioni sul suo sito ufficiale così come scaricare il suo codice sorgente.

Libguestfs

5_libguestfs.jpg

Sito web di Libguestfs

(Bryant Son, CC BY-SA 4.0)

Libguestfs è un insieme di strumenti per accedere e modificare immagini disco VM. Puoi usarlo per visualizzare e modificare i file all’interno dei guest; eseguire lo scripting delle modifiche alle VM; monitorare le statistiche sui dischi usati/liberi; creare guest, macchine da fisiche a virtuali (P2V) o da virtuali a virtuali (V2V); eseguire backup; clonare le VM; costruire le VM; formattare i dischi; ridimensionare i dischi; e molto altro. L’ho usato di recente mentre lavoravo a un progetto basato su KubeVirt chiamato OpenShift Virtualization, di cui potete saperne di più nel mio video tutorial.

Il sito ufficiale di Libguestfs contiene un’ampia documentazione su come usare ogni comando, ed è anche possibile scaricare il suo codice sorgente su GitHub.

Virt-manager

6_virtualmanager.jpg

Sito web di Virt-manager

(Bryant Son, CC BY-SA 4.0)

Virt-manager è un’interfaccia utente desktop per gestire le VM attraverso libvirt. Si rivolge principalmente alle VM KVM, ma gestisce anche Xen e LXC. Include anche lo strumento di provisioning a riga di comando virt-install. Pensate a virt-manager come ad uno strumento di gestione facile da usare per le vostre VM. Per esempio, puoi usare 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

7_libosinfo.jpg

Sito web di Libosinfo

(Bryant Son, CC BY-SA 4.0)

Libosinfo fornisce un database di informazioni sulle versioni del sistema operativo per assistere nella configurazione dell’hardware quando si distribuiscono le VM. Include una libreria C per interrogare le informazioni nel database, che è anche accessibile da qualsiasi linguaggio supportato dall’introspezione GObject. Come si può intuire, libosinfo è più che altro un blocco di costruzione per abilitare le funzionalità di un sistema operativo, ma piuttosto importante.

Il codice sorgente di libosinfo è disponibile su GitLab, e la sua documentazione può essere trovata sul suo sito web.

Conclusione

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.