Ricerca nel sito web

Come installare KVM/QEMU su Manjaro/Archlinux


Su questa pagina

  1. Che cos'è QEMU?

KVM è l'acronimo di Kernel-based Virtual Machine, è una soluzione tecnologica per la virtualizzazione basata sul modulo del kernel Linux. KVM è una soluzione software open source in esecuzione sulla macchina Linux x86 con il supporto delle estensioni di virtualizzazione hardware Intel VT o AMD-V. Il modulo kernel KVM è stato fornito al kernel Linux dalla versione 2.6.20 ed è stato portato su altri sistemi operativi come FreeBSD e Illumos come moduli kernel caricabili.

La tecnologia KVM trasformerà la macchina Linux in una virtualizzazione 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 virtualizzato privato come memoria, CPU, scheda di rete, disco, grafica, ecc.

Cos'è QEMU?

QEMU o Quick Emulator è 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/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 sulla macchina Manjaro/Archlinux. Inoltre, imparerai 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 sudo root.

Verifica dell'architettura di sistema e del supporto per 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. Eseguire il seguente comando per verificare l'architettura di sistema del proprio 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, attualmente stiamo usando il sistema Linux con architettura \x86_64\ o \64-bit\ e la versione del kernel \5.4\.

2. Successivamente, verificare il supporto della virtualizzazione hardware eseguendo il seguente comando.

sudo lscpu | grep Virtualization

Per il processore Intel, vedrai un output simile a quello di seguito.

Virtualization:                  VT-x

E per i processori AMD, di seguito è riportato un output simile.

Virtualization:                  AMD-V

3. Facoltativamente, è possibile abilitare la virtualizzazione nidificata sulla macchina utilizzando il seguente comando.

sudo modprobe -r kvm_intel
sudo modprobe kvm_intel nested=1

Successivamente, esegui il seguente comando per verificare la virtualizzazione nidificata.

cat /sys/module/kvm_intel/parameters/nested

Se ottieni l'output come \Y\ o \1\, significa che la funzionalità di virtualizzazione nidificata è abilitata. In caso contrario, verrà visualizzato il messaggio di errore \Nessun file o directory\.

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 saranno conflitti di pacchetti tra \iptables\ e \ebtables\. Digita \y\ per rimuovere il pacchetto iptables predefinito e sostituiscilo con \ebtables\ e \nftables\.

Di seguito sono riportati i pacchetti essenziali che devi conoscere:

  • qemu: un emulatore e virtualizzatore di macchine open source.
  • virt-manager; Un'applicazione GUI per la gestione di macchine virtuali.
  • libvirt: un'API per il controllo di motori di virtualizzazione come KVM, QEMU, ecc.
  • dnsmasq: forwarder 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. Successivamente, avviare e abilitare il servizio libvirtd utilizzando il seguente comando.

sudo systemctl enable --now libvirtd

Otterrai un output simile al seguente.

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 seguente comando per verificare lo stato del servizio libvirtd.

sudo systemctl status libvirtd

E dovresti vedere un output simile come sotto. Come visto, il servizio libvritd è attivo e funzionante.

? 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 all'utente 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, è necessario seguire la configurazione di libvirtd riportata di seguito.

1. Eseguire il seguente comando per modificare la configurazione di libvirtd.

sudo nano /etc/libvirt/libvirtd.conf

Rimuovere il commento dall'opzione \unix_sock_group\ e inserire 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"

Successivamente, decommenta l'opzione \unix_sock_rw_perms\ e lascia l'autorizzazione come 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"

Salvare la configurazione premendo il pulsante Ctrl+x e digitare y, quindi invio.

2. Successivamente, aggiungi il tuo utente al gruppo \libvirt\ utilizzando il seguente comando.

sudo usermod -a -G libvirt username

3. Successivamente, riavviare il servizio libvirtd per applicare una nuova configurazione.

sudo systemctl restart libvirtd

Ora tutti gli utenti all'interno del gruppo \libvirt\ saranno in grado di creare e configurare macchine virtuali.

Verificare 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 la configurazione di rete \predefinita\.

  • 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 passa alla scheda \Archiviazione\ e vedrai la configurazione di archiviazione del pool \predefinita\.

  • Digitare: directory del file system
  • Dimensione: dipende dal tuo disco
  • Posizione: /var/lib/libvirt/images
  • Avvio automatico all'avvio: sì

Tutte le immagini delle macchine virtuali saranno disponibili su questo archivio predefinito, la directory \/var/lib/libvirt/images\.

5. Successivamente, fare clic sul pulsante \+\ per creare un nuovo pool di storage per i file immagine ISO. Tutti i sistemi operativi con file ISO saranno disponibili in questo pool.

Segui la configurazione di archiviazione come di seguito:

  • Nome: ISO
  • Digita: dir: Directory del filesystem
  • Percorso di destinazione: /path/directory/to/your/iso/

Fare clic sul pulsante \Fine\ per completare il processo. Successivamente, sei pronto per creare nuove macchine virtuali.

Crea una nuova macchina virtuale usando virt-manager

1. Nell'applicazione virt-manager, fare clic sul pulsante \+\ per creare una nuova macchina virtuale.

2. Selezionare \Supporto di installazione locale\ per utilizzare l'immagine ISO per l'installazione e fare clic sul pulsante \Avanti\ per continuare.

3. Fare clic sul pulsante \Sfoglia\ per selezionare il file ISO.

Ora scegli il pool di archiviazione \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/sorgente di installazione\, digita il sistema operativo che desideri installare (per questo esempio è \Debian 10\), quindi fai di nuovo clic sul pulsante \Avanti\ per continuare.

4. Scegli quanta 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 configurazione e fai clic sul pulsante \Fine\ per installare.

7. Ora la macchina virtuale è attiva e funzionante con la virtualizzazione QEMU/KVM ed è possibile continuare l'installazione del sistema operativo.

Conclusione

Congratulazioni! hai imparato come impostare la virtualizzazione QEMU/KVM sulla macchina 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 utilizzare un'altra distribuzione Linux, Windows o sistema operativo della famiglia BSD.