In questa pagina
- Cos'è QEMU?
KVM è l'acronimo di Macchina virtuale basata sul kernel , è una soluzione tecnologica per la virtualizzazione basata sul modulo del kernel Linux. KVM è una soluzione software open source in esecuzione su una macchina Linux x86 con il supporto delle estensioni di virtualizzazione hardware Intel VT o AMD-V . Il modulo del kernel KVM è stato distribuito al kernel Linux dalla versione 2.6.20 ed è stato portato su altri sistemi operativi come FreeBSD e Illumos come moduli del kernel caricabili.
La tecnologia KVM trasformerà la macchina Linux nella virtualizzazione dell'hypervisor, chiamata macchina host. Sulla macchina host, sarai in grado di creare più sistemi isolati chiamati macchine virtuali (VM). Ogni macchina virtuale ha il suo sistema (può essere Linux, Windows o BSD), ha anche hardware privato virtualizzato come memoria, CPU, scheda di rete, disco, grafica, ecc.
Cos'è QEMU?
QEMU o Emulatore rapido è un emulatore di sistema open source e un virtualizzatore per la virtualizzazione dell'hardware. In genere, viene utilizzato come virtualizzatore con il modulo del kernel KVM per eseguire macchine virtuali. Per ottenere grandi prestazioni per macchine guest/macchine virtuali, sfrutterà le estensioni di virtualizzazione hardware come Intel VT o AMD-V. La virtualizzazione QEMU/KVM viene utilizzata principalmente come hypervisor in un data center.
In questa guida imparerai come configurare la virtualizzazione KVM/QEMU su macchine Manjaro/Archlinux. Imparerai inoltre come creare la prima macchina virtuale con l'applicazione GUI "virt-manager", un'interfaccia utente desktop per la gestione delle macchine virtuali.
Prerequisiti
- Un Manjaro/Archlinux con architettura x86 o 64 bit.
- Una CPU/processore con supporto per la virtualizzazione (Intel VT o AMD-V).
- Un utente non root con privilegi di root sudo.
Verifica del supporto per l'architettura del sistema e la virtualizzazione della CPU
Innanzitutto, controlla l'architettura della macchina e il supporto hardware dell'accelerazione della virtualizzazione Intel VT per CPU Intel e AMD-v per CPU AMD.
1. Esegui il comando seguente per verificare l'architettura di sistema del tuo sistema.
uname -m
Otterrai il seguente output.
Linux machine1 5.4.134-1 #1 SMP PREEMPT Tue Jul 06 08:10:03 UTC 2021 x86_64 GNU/Linux
Come visto, stiamo attualmente utilizzando il sistema Linux con "x86_64 " o "64 bit " architettura e versione del kernel "5.4 ".
2. Quindi, controlla il supporto per la virtualizzazione dell'hardware eseguendo il comando seguente.
sudo lscpu | grep Virtualization
Per il processore Intel, vedrai un output simile come di seguito.
Virtualization: VT-x
E per i processori AMD, di seguito è riportato un output simile.
Virtualization: AMD-V
3. Facoltativamente, puoi abilitare la virtualizzazione nidificata sulla tua macchina usando il comando seguente.
sudo modprobe -r kvm_intel
sudo modprobe kvm_intel nested=1
Successivamente, esegui il comando seguente per verificare la virtualizzazione nidificata.
cat /sys/module/kvm_intel/parameters/nested
Se ottieni l'output come "Y" o "1" , significa che la virtualizzazione nidificata della funzionalità è abilitata. In caso contrario, vedrai il messaggio di errore come "Nessun file o directory di questo tipo" .
Installazione dei pacchetti QEMU e Virt-Manager
1. Per installare i pacchetti qemu e virt-manager, eseguire il comando seguente.
sudo pacman -S qemu virt-manager libvirt virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat ebtables libguestfs
Per il sistema manjaro, ci sarà un conflitto di pacchetti tra "iptables " e "ebtables ". Digita "y " per rimuovere il pacchetto iptables predefinito e sostituirlo con "ebtables " e "nftables ".
Di seguito sono riportati i pacchetti essenziali che devi conoscere:
- qemu:un emulatore di macchina open source e un virtualizzatore.
- gestore virtuale; Un'applicazione GUI per la gestione delle macchine virtuali.
- libvirt:un'API per il controllo dei motori di virtualizzazione come KVM, QEMU, ecc.
- dnsmasq:server di inoltro DNS leggero e server DHCP.
- bridge-utils:utilità per la configurazione del bridge ethernet Linux.
- libguestfs:set di strumenti per la modifica delle immagini disco della macchina virtuale (VM).
2. Quindi, avvia e abilita il servizio libvirtd usando il comando seguente.
sudo systemctl enable --now libvirtd
Otterrai un output simile a quello di seguito.
Created symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service → /usr/lib/systemd/system/libvirtd.service.
Created symlink /etc/systemd/system/sockets.target.wants/virtlockd.socket → /usr/lib/systemd/system/virtlockd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/virtlogd.socket → /usr/lib/systemd/system/virtlogd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd.socket → /usr/lib/systemd/system/libvirtd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd-ro.socket → /usr/lib/systemd/system/libvirtd-ro.socket.
3. Successivamente, eseguire il comando seguente per verificare lo stato del servizio libvirtd.
sudo systemctl status libvirtd
E dovresti vedere un output simile come di seguito. Come visto, il servizio libvritd è attivo e in esecuzione.
? libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2021-07-23 10:33:25 UTC; 6s ago
TriggeredBy: ? libvirtd-ro.socket
? libvirtd.socket
? libvirtd-admin.socket
Docs: man:libvirtd(8)
https://libvirt.org
Main PID: 16828 (libvirtd)
Tasks: 19 (limit: 32768)
Memory: 16.4M
CPU: 226ms
CGroup: /system.slice/libvirtd.service
??16828 /usr/bin/libvirtd --timeout 120
Consenti a utenti non root di utilizzare la virtualizzazione KVM/QEMU
Per impostazione predefinita, solo l'utente "root" può creare e gestire macchine virtuali. Per consentire agli utenti non root di creare e gestire macchine virtuali, dovresti seguire la configurazione di libvirtd di seguito.
1. Eseguire il comando seguente per modificare la configurazione di libvirtd.
sudo nano /etc/libvirt/libvirtd.conf
Decommenta l'opzione "unix_sock_group " e inserisci il nome del gruppo come "libvirt ".
# Set the UNIX domain socket group ownership. This can be used to
# allow a 'trusted' set of users access to management capabilities
# without becoming root.
#
# This setting is not required or honoured if using systemd socket
# activation.
#
# This is restricted to 'root' by default.
unix_sock_group = "libvirt"
Dopodiché, decommenta l'opzione "unix_sock_rw_perms " e lascia l'autorizzazione predefinita "0770 ".
# Set the UNIX socket permissions for the R/W socket. This is used
# for full management of VMs
#
# This setting is not required or honoured if using systemd socket
# activation.
#
# Default allows only root. If PolicyKit is enabled on the socket,
# the default will change to allow everyone (eg, 0777)
#
# If not using PolicyKit and setting group ownership for access
# control, then you may want to relax this too.
unix_sock_rw_perms = "0770"
Salva la configurazione premendo Ctrl+x pulsante e digita y , quindi invio .
2. Successivamente, aggiungi il tuo utente al gruppo "libvirt " usando il comando seguente.
sudo usermod -a -G libvirt username
3. Successivamente, riavvia il servizio libvirtd per applicare una nuova configurazione.
sudo systemctl restart libvirtd
Ora tutti gli utenti all'interno del gruppo "libvirt" potranno creare e configurare macchine virtuali.
Verifica l'installazione di QEMU/KVM con virt-manager
Ora apri l'applicazione "virt-manager " dal menu dell'applicazione.
1. Fare clic sul menu "Modifica -> Dettagli connessione " nell'applicazione virt-manager.
2. Nella scheda "Panoramica " vedrai che virt-manager si connetterà automaticamente a "qemu:///system ".
3. Passa alle schede "Reti virtuali " e vedrai il "predefinito " configurazione di rete.
- Interfaccia:virbr0
- Avvio automatico all'avvio:sì
- Indirizzo IP:192.168.122.0/24
- Intervallo indirizzo IP DHCP:192.168.122.2 - 192.168.122.254
- Digita rete:NAT
4. Ora vai alla scheda "Archiviazione ", e vedrai il "predefinito " configurazione di archiviazione del pool.
- Tipo:directory del filesystem
- Dimensioni:dipende dal tuo disco
- Posizione:/var/lib/libvirt/images
- Avvio automatico all'avvio:sì
Tutte le immagini della macchina virtuale saranno disponibili su questo archivio predefinito, la directory "/var/lib/libvirt/images ".
5. Quindi, fai clic sul pulsante "+ " per creare un nuovo spazio di archiviazione del pool per i file di immagine ISO. Tutti i sistemi operativi dei file ISO saranno disponibili in questo pool.
Segui la configurazione dell'archiviazione come di seguito:
- Nome:ISO
- Tipo:dir:Directory del filesystem
- Percorso di destinazione:/percorso/directory/a/tuo/iso/
Fai clic su "Fine " per completare il processo. Dopodiché, sei pronto per creare nuove macchine virtuali.
Crea nuova macchina virtuale usando virt-manager
1. Nell'applicazione virt-manager, fare clic sul pulsante "+ " per creare una nuova macchina virtuale.
2. Seleziona "Supporto di installazione locale " per utilizzare l'immagine ISO per l'installazione e fare clic su "Avanti pulsante " per continuare.
3. Fai clic su "Sfoglia pulsante " per selezionare il file ISO.
Ora scegli lo spazio di archiviazione del pool "ISO " e seleziona il file iso per l'installazione (per questo esempio è "Debian 10 "), quindi fai clic su "Scegli volume ".
Deseleziona l'opzione "Rileva automaticamente dal supporto/origine di installazione ", digita il sistema operativo che desideri installare (per questo esempio è "Debian 10 "), quindi fai clic su "Avanti " di nuovo per continuare.
4. Scegli la quantità di memoria e CPU per la macchina virtuale, quindi fai clic su "Avanti ".
5. Scegli la quantità di disco per la macchina virtuale e fai clic su "Avanti ".
6. Ricontrolla la tua configurazione e fai clic su "Fine " pulsante per installare.
7. Ora la macchina virtuale è attiva e funzionante con la virtualizzazione QEMU/KVM e puoi continuare l'installazione del sistema operativo.
Conclusione
Congratulazioni! hai imparato come impostare la virtualizzazione QEMU/KVM su macchine Manjaro/Archlinux. Inoltre, come utilizzare l'applicazione virt-manager per creare macchine virtuali. Ora puoi creare macchine virtuali con il tuo sistema operativo preferito. Puoi usare un'altra distribuzione Linux, Windows o un sistema operativo della famiglia BSD.