Qemu è l’acronimo di Quick EMUlator, un software che crea delle virtual machine ( ovvero macchine virtuali da questo momento indicate con “VM”) che consentono di far “girare” (emulare) un sistema operativo all’interno di una macchina ospite purché con architettura x86, AMD64, PowerPC, MIPS e ARM. Supporta Linux, Windows e Mac.
Disponibile per Linux, Windows e Mac.
Sito ufficiale https://www.qemu.org
- da terminale digita il comando:
apt install bridge-utils virt-manager - Dal menu lancia il programma [Virtual Machine Manager].
- Se ricevi l'errore "Unable to connect to libvirt qemu:///system" prova a riavviare il computer.
- click [Menu/File/New virtual machine].
- scegli [local install].
- seleziona la ISO contenente il sistema operativo da installare.
nel caso Qemu non abbia i permessi per accedere alla ISO, esegui la correzione come proposto dal programma.
tuttavia è possibile che la ISO risieda in uno spazio non accessibile e che dia errore al momento dell'installazione.
copia la ISO in un hardisk locale. - imposta la memoria ram e il numero di processori da associare alla VM.
- gestisti lo spazio destinato alla VM.
- spunta [v] enable storage...
- digita la dimensione in GiB.
- spunta (o) select or create... + click [Manage...].
- se già non esiste, crea un Pool dove allocare la tua VM.
- click [+ Add Pool].
- dai un nome al Pool.
- seleziona il tipo di Pool, se locale: dir:Filesystem Dir.
- click [Browse] e seleziona la dir che conterrà il Pool.
- crea il volume.
- click [+ Create new volume].
- dai un nome al volume, solitamente il nome del sistema operativo.
- format: raw
Formato immagine RAW
rappresenta un'immagine disco semplice e non strutturata, senza compressione o ottimizzazione. Fornisce accesso diretto al dispositivo di archiviazione sottostante, garantendo prestazioni ottimali. Le immagini RAW sono ideali per scenari in cui le prestazioni sono fondamentali, come cluster di elaborazione ad alte prestazioni (HPC) o server di database. Tuttavia, le immagini RAW tendono a occupare più spazio su disco rispetto a qcow2 a causa dell'assenza di compressione. Le immagini RAW sono essenzialmente file su disco non formattati, che rispecchiano la struttura fisica di un disco rigido. La loro struttura semplice semplifica il ripristino dei dati in caso di danneggiamento della VM. Ino9ltre le funzionalità Snapshot sono limitate: KVM e OpenStack si basano principalmente sugli snapshot per i backup e i rollback delle VM.
Formato immagine Qcow2
Qcow2 (QEMU Copy-On-Write versione 2) è un formato immagine disco versatile che supporta funzionalità come compressione, snapshot e thin provisioning. Le immagini Qcow2 offrono una migliore efficienza di archiviazione grazie all'utilizzo di tecniche di compressione, che si traducono in file di dimensioni inferiori rispetto alle immagini raw. Il meccanismo Copy-On-Write consente un utilizzo efficiente dello storage scrivendo solo le modifiche sul disco, rendendo qcow2 adatto a scenari che richiedono snapshot o backup frequenti. Tuttavia, il sovraccarico di elaborazione aggiuntivo associato alla compressione e al Copy-On-Write può influire leggermente sulle prestazioni rispetto alle immagini raw. Supporta funzionalità come snapshot, migrazione live e ridimensionamento online, essenziali per la gestione delle VM in KVM/OpenStack. Backup senza interruzioni: le immagini qcow2 si integrano perfettamente con le soluzioni di backup KVM e OpenStack, semplificando la protezione e il ripristino dei dati. Inoltre le immagini possono frammentarsi nel tempo, soprattutto quando si utilizzano snapshot e scritture frequenti sul disco, e questa frammentazione può causare un rallentamento delle operazioni di lettura e scrittura, aumentando i tempi di elaborazione.Scegli RAW se:
- le prestazioni assolute sono la priorità assoluta.
- il ripristino dei dati è una preoccupazione importante e la semplicità è la priorità.
Scegli qcow2 se:
- l'efficienza dello storage è fondamentale.
- hai bisogno di funzionalità avanzate di gestione delle VM come snapshot e migrazione live.
- l'integrazione perfetta con le soluzioni di backup KVM/OpenStack è essenziale.
- digita la capacità della VM.
- spunta [v] Allocate entire volume now.
- attendi la creazione del volume.
- seleziona il volume appena creato e click [Choose volume].
- nella finestra "New VM step 4/5" click [Forward].
- nella finestra "New VM step 5/5" scegli iltipo di network:
- NAT : la VM sarà isolata dal resto della intranet, ma potrà comunque accedere ad internet.
- Bridge : la VM farà parte della intranet e riceverà un IP dal modem/router DHCP.
la scelta Bridge non viene ben supportata das Qemu. - Macvtap : funziona per OS Linux Debian, ma potrebbe non funzionare con altri OS.
- device name: il nome della scheda di rete delpc host, es. enp0s31f6.
- device model: e1000e
- il programma lancia l'installazione del OS dalla ISO selezionata.
Dalla finestra di [Virtual Machine Manager] seleziona la VM e click su [> Power on].
- aggiungi la cartella da condividere alla VM.
- dal programma VMM seleziona la VM e click [open].
- click [details].
- click [Add hardware].
- seleziona [Filesystem].
- seleziona il driver: "virtiofs" per Linux, "virtio-9p" per Windows.
- click [Source path/Browse].
- click [Browse local], seleziona la cartella da condividere, click [open].
- digita il nome con cui la cartella verrà condivisa nella VM, es xxpcnnnnName
- click [finish].
- crea il punto di mount nella VM Linux.
- crea una cartella nel punto di mount con il nome digitato al punto 1.h
se necessario esegui esegui con i privilegi di admin, da terminale digita:
mkdir /mnt/xxpcnnnnName - monta la cartella,da terminale digita:
sudo mount -t virtiofs xxpcnnnnName /mnt/xxpcnnnnName
- crea una cartella nel punto di mount con il nome digitato al punto 1.h
- modifica il file [/etc/fstab] in modo damontare la cartella ad ognni avvio della VM.
- apri il file [/etc/fstab] con l'editor, da terminale digita:
sudo nano /etc/fstab - aggiungi la seguente riga:
xxpcnnnnName /mnt/xxpcnnnnName virtiofs defaults 0 0
- apri il file [/etc/fstab] con l'editor, da terminale digita:
- crea il punto di mount nella VM Windows.
- scarica ed installa WinFSP da https://winfsp.dev/rel/
- scarica la ISO Virtio-Win da https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso
- apri [Device Manager] ed esegui l'aggiornamento del drive non funzionante "Mass Storage Controller".
- cerca i drive nella ISO scaricata sotto la cartella dei driver.
-
After that, it’s a good idea to create a service for the drivers, so they are automatically loaded during system startup.
sc.exe create VirtioFsSvc binpath="C:\ProgramData\Chocolatey\bin\virtiofs.exe" start=auto depend="WinFsp.Launcher/VirtioFsDrv" DisplayName="Virtio FS Service"
sc.exe start VirtioFsSvc
If you’ve installed manually, find the location of the .exe and change the binpath.
Potrebbe essere necessario configurare un bridge di rete per facilitare la comunicazione tra sistemi sulla stessa subnet.
Un bridge di rete è uno switch virtuale che incanala i guest virtuali verso la scheda di interfaccia di rete (NIC) fisica dell'host RHEL.
La NIC fisica del server host è collegata a un router vero e proprio con accesso al resto della LAN.
Internet connection ISP --- router/firewall --- NIC "eno1" [Server] --- Bridge "br0" [KVM Host RHEL] --- VM Guest [Ubuntu/Windows]
- Da terminale Host digita: sudo nmtui
- seleziona [Edit a connection].
- se già non esiste una connessione di tipo "Bridge" usa l'opzione [Add] per crearne una.
- oppure seleziona la connessione [Bridge/virbr0] esistente.
│ ┌────────────────────────┐ │
│ │ Ethernet ↑ │ <Add> │
│ │ Wired connection 1 ▒ │ │
│ │ Wi-Fi ▒ │ <Edit...> │
│ │ zis-wifi ▒ │ │
│ │ Bridge ▮ │ <Delete> │
│ │ lxcbr0 ▒ │ │
│ │ virbr0 ▒ │ │
│ │ ▒ │ │
│ │ ↓ │ <Back> │
│ └────────────────────────┘ │ - Se vedi un dispositivo Bridge elencato, sai che un software (GNOME Boxes, Vagrant, VirtualBox o simili) ha già generato uno switch virtuale per te. Se hai bisogno di un solo switch virtuale, il tuo lavoro è tecnicamente completato; tuttavia, potresti voler creare un bridge aggiuntivo per una rete più complessa o semplicemente per tua comodità.
- Inserisci una connessione Ethernet come agente ("slave" nell'interfaccia nmtui) per questa nuova connessione bridge.
È possibile specificare le impostazioni di rete per questo nuovo Bridge (indirizzo IP, maschera di sottorete, gateway e DNS) se la connessione cablata richiede una configurazione manuale.- Device: il nome della scheda di rete dell'Host.
- IPv4: l'indirizzo ip dell'Host.
- Gateway, DNS server e Seaarch domain gli stessi dell'Host.
┌────────────────┤ Edit Connection ├─────────────────────┐
│ ↑│
│ Profile name Wired connection 1______________________ ▮│
│ Device enp0sf6 (4a:5a:6a:0a:0a:8a)___________ ▒│
│ ▒│
│ ═ ETHERNET <Show> ▒│
│ ▒│
│ ╤ IPv4 CONFIGURATION <Automatic> <Hide> ▒│
│ │ Addresses 192.168.1.31/24__________ <Remove> ▒│
│ │ <Add...> ▒│
│ │ Gateway 192.168.1.254____________ ▒│
│ │ DNS servers 192.168.1.254____________ <Remove> ▒│
│ │ <Add...> ▒│
│ │ Search domains 8.8.8.8_______________ <Remove> ▒│
│ │ <Add...> ▒│
│ │ ▒│
│ │ Routing (No custom routes) <Edit...> ▒│
│ │ [ ] Never use this network for default route ▒│
│ │ [ ] Ignore automatically obtained routes ▒│
│ │ [ ] Ignore automatically obtained DNS parameters ▒│
│ │ ▒│
│ │ [ ] Require IPv4 addressing for this connection ▒│
│ └ ▒│
│ ═ IPv6 CONFIGURATION <Automatic> <Show> ▒│
│ ▒│
│ [X] Automatically connect ▒│
│ [X] Available to all users ▒│
│ ▒│
│ <Cancel> <OK> ▮│
│ ↓│
└────────────────────────────────────────────────────────┘
- Chiudi il programma e dopo un paio di secondi, la nuova connessione bridge sarà attiva e funzionante; potrebbe essere necessario riavviare il pc Host.
- Per verificare se l'indirizzo IP locale è ora assegnato alla nuova connessione bridge (virbr0), da terminale digita: ip a
ed osserva la risposta:
4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether fa:3a:9a:3a:ba:6a brd ff:ff:ff:ff:ff:ff
inet 192.168.1.74/24 brd 192.168.1.255 scope global dynamic noprefixroute virbr0
valid_lft 508sec preferred_lft 508sec
inet6 fs80::fs31:9sff:fs36:bs6d/64 scope link
valid_lft forever preferred_lft forever - avvia [Virtual Machine Manager].
- 2click sulla VM per aprirla.
- seleziona la vista [Details].
- seleziona [NIC] dalla lista degli elementi posta sulla sinistra dell'interfaccia.
- Networ source: Bridge.
- Device name: virbr0 , ovvero il nome dato precedentemente alla connessione Bridge.
- Device model: virtio.
- avvia la VM e verifica il corretto funzionamento della connessione Bridge.