Creazione di VM in DaDesktop utilizzando Virt Manager

Introduzione

Spesso, durante la preparazione di un corso, risulta utile virtualizzare un server all'interno di DaDesktop e, allo stesso modo, virtualizzare uno o due client, che possono essere basati sullo stesso sistema operativo oppure su una combinazione di Windows/Linux.

L'esecuzione di VM annidate (Nested VMs) può essere effettuata utilizzando Virt Manager o VirtualBox con Vagrant opzionale nel caso si utilizzi Linux, oppure semplicemente VirtualBox se si utilizza Windows 10 come sistema operativo per la macchina DaDesktop.

DD Machines Nested Virt

Dopo estesi test, la nostra preferenza è utilizzare Virt Manager, poiché VirtualBox presenta alcuni bug; di conseguenza, al momento non consigliamo l'uso di VirtualBox in questo modo.

L'applicazione VirtManager utilizza la libreria libvirt per fornire servizi di gestione delle macchine virtuali. È dotata di un'interfaccia desktop che facilita la creazione, la cancellazione e la gestione di più macchine virtuali. Viene utilizzata principalmente per le VM KVM, ma può supportare anche altri ipervisor, come Xen e LXC.

Virt Manager funziona anche molto bene con Vagrant, semplicemente :-

apt install vagrant-libvirt

È opportuno notare che sono disponibili meno box Vagrant con libvirt/kvm rispetto a VirtualBox, ma questi possono essere facilmente convertiti per funzionare con libvirt come mostrato qui :-

https://medium.com/@gamunu/use-vagrant-with-libvirt-unsupported-boxes-12e719d71e8e

L'interfaccia utente fornisce una vista riassuntiva di tutte le VM, il loro stato, l'utilizzo della CPU, un grafico di prestazioni live delle VM in esecuzione e statistiche sull'utilizzo delle risorse.

Se non hai mai usato Virt Manager, è molto simile a VirtualBox, ma presenta alcune differenze importanti descritte di seguito.

Questa è una guida completa sull'uso di virt-manager su Ubuntu Linux - https://www.debugpoint.com/virt-manager/

Perché dovrei usare Virt Manager al posto di Virtualbox?

Vantaggi
  1. Le prestazioni sono molto migliori - Virt Manager utilizza i driver VirtIO per lo storage, la rete e la grafica, offrendo prestazioni nettamente superiori. I driver Virtio sono driver di dispositivo para-virtualizzati di KVM, disponibili per macchine virtuali guest Linux e Windows che girano su host KVM. Il pacchetto virtio supporta i dispositivi di storage (block) e i controller di interfaccia di rete, oltre alla grafica. I driver VirtIO sono open source, quindi sono facilmente installabili se non sono già preinstallati nella tua distribuzione Linux.
  2. Sono disponibili più opzioni di configurazione
  3. Funziona bene con Vagrant
  4. Alcune parti di VirtualBox non sono completamente open source
  5. Virt Manager non richiede la ricompilazione dei moduli ad ogni aggiornamento del kernel, a differenza di quanto accade con VirtualBox.
  6. VirtualBox è talvolta noto per causare problemi quando è richiesto un nuovo aggiornamento del kernel.
Svantaggi
  1. Si potrebbe dire che VirtualBox abbia una curva di apprendimento leggermente più breve
  2. La configurazione della 'Rete Host' anziché di NAT è più semplice su VirtualBox, tuttavia NAT funziona abbastanza facilmente sulla maggior parte dei casi d'uso di rete su entrambi i sistemi.
  3. VirtualBox è disponibile su molte piattaforme, mentre Virt Manager è disponibile solo su Linux


In definitiva, riteniamo che per l'esecuzione di server all'interno di una macchina DaDesktop, Virt Manager sia la scelta preferita.

Installazione

Dato che libvirt continua a migliorare, utilizza sempre l'ultima versione non LTS di Ubuntu o Debian.

Installazione di kvm e virt-manager. Queste sono note di installazione molto sintetiche; tuttavia, si prega di seguire una guida aggiornata per il sistema operativo DaDesktop preferito. Una guida è disponibile qui: https://www.debugpoint.com/virt-manager/

sudo apt install virt-manager
sudo adduser student libvirt
sudo systemctl restart libvirtd

Effettua il riavvio della macchina DaDesktop ed esegui Virt Manager dal menu Applicazioni

Configurazione

  1. Come importare o convertire le macchine virtuali? Sebbene sia facile creare VM personalizzate in base alle esigenze di sistema operativo e specifiche, per configurazioni più complesse è spesso preferibile importare un'installazione esistente di un particolare server o appliance. Spesso queste vengono fornite come immagini VMDK, che possono essere aggiunte direttamente a Virt Manager, anche se non è chiaro se ciò sia effettivamente possibile con la versione corrente. Per le immagini dei server VirtualBox, queste non possono essere importate (aggiunte) direttamente in Virt Manager, ma possono essere facilmente esportate in altri formati di virtualizzazione, come il Formato di Virtualizzazione Aperto (.OVF), che Virt Manager può importare facilmente. In alternativa, puoi utilizzare VmWare Convertor se lo disponi, oppure Virt-V2V al posto di questo https://www.redhat.com/en/blog/importing-vms-kvm-virt-v2v. Qemu-convert è anche un grande strumento open source che consente la conversione facile tra diversi formati di macchine virtuali.
    Per convertire da VirtualBox al formato KVM di Virt Manager segui queste istruzioni https://ostechnix.com/how-to-migrate-virtualbox-vms-into-kvm-vms-in-linux/
  2. Il modo migliore per importare file grandi all'interno di standalone. Di recente, è stato aggiunto un metodo per caricare facilmente file dalla tua macchina all'interno della tua macchina DaDesktop.

    In alternativa, considera l'uso di un servizio di archiviazione cloud come Google Drive, Microsoft 365, ecc. Questi possono quindi essere accedendo all'accesso al tool all'interno della macchina DaDesktop.

  3. Quando si importano altre macchine virtuali, specialmente da altri formati, spesso è necessario modificare i tipi di grafica e/o disco. Una delle cose migliori di Virt Manager è che include un eccellente supporto per i driver VirtIO. Questi sono driver virtualizzati completamente open source che offrono prestazioni molto migliori rispetto ai driver originali per disco, rete o grafica e sono disponibili per quasi tutti i sistemi operativi, incluso un ottimo supporto per le macchine guest Windows 10. Se il tuo SO guest li supporta, sono generalmente l'opzione preferita per compatibilità e prestazioni quando si utilizza Virt Manager (KVM). https://wiki.archlinux.org/title/Libvirt
  4. Impostazioni ottimali per le macchine virtuali utilizzando Virt Manager I driver VirtIO sono inclusi in quasi tutti i sistemi operativi di server open source attuali e possono essere installati facilmente su Windows. Generalmente, i driver migliori sono virtio, ma in alcuni casi potresti dover usare uno dei molti altri tipi disponibili. In generale, NAT è sufficiente per la maggior parte dei casi di rete, a meno che tu non richieda una configurazione più complessa dove potrebbe essere necessaria la rete Host bridged, tuttavia questa è generalmente più difficile da far funzionare correttamente.
    https://wiki.archlinux.org/title/Virt-manager È una grande guida di introduzione qui.
    L'esecuzione di Windows richiede alcuni passaggi aggiuntivi e necessiterà dello slipstreaming dei driver VirtIO per consentire all'iso di Windows 10 di avviarsi.
    Nella scelta del formato del disco rigido, per velocità i file .raw sono i migliori a meno che non siano richiesti snapshot, in tal caso usa il formato qcow2, ma questo è un po' più lento.
  5. Sebbene Wayland funzioni bene nella maggior parte dei casi come gestore di display, consigliamo di continuare a usare X11 per il momento. Detto questo, potrebbe valere la pena provare Wayland nella tua configurazione specifica, e le distribuzioni stanno migliorando costantemente il supporto per Wayland.
  6. Non preoccuparti di usare ksm, poiché, anche se funziona annidato e in Virt Manager, fa poca differenza nella pratica.
  7. Supporto Tecnico è disponibile, se necessario, durante la conversione delle immagini disco per farle funzionare con Virt Manager e, inoltre, per la configurazione utilizzando Virt Manager per i corsi DaDesktop.
  8. Dove si trovano i file immagine disco nel file system? Virt Manager utilizza la seguente posizione per archiviare i file immagine, tuttavia questa è configurabile e possono essere usate altre posizioni se preferite.

    /var/lib/libvirt/images