1,955 22/03/2026 07/04/2026 4 min

La virtualizzazione è diventata una componente essenziale nei moderni ambienti di produzione. KVM (Kernel-based Virtual Machine) unito a Libvirt offre una soluzione potente e flessibile per la gestione delle macchine virtuali. In questo articolo, esploreremo come configurare KVM con Libvirt per garantirne performance elevate e sicurezza, focalizzandoci su rete bridge, snapshot e best practice di sicurezza.

Prerequisiti

  • Un server Linux con KVM e Libvirt installati (Ubuntu 20.04 o superiore consigliato).
  • Accesso root o privilegi sudo.
  • Una rete di test per configurare il bridge networking.

Step 1: Configurazione della Rete Bridge

Per permettere alle macchine virtuali di comunicare con la rete esterna, è fondamentale configurare un bridge di rete. Questo consente alle VM di avere un indirizzo IP sulla rete, come se fossero fisiche.

bash
# Installazione del pacchetto bridge-utils
sudo apt install bridge-utils

# Creazione del file di configurazione per la rete bridge
sudo nano /etc/network/interfaces

All'interno del file, aggiungere:

bash
auto br0
iface br0 inet dhcp
  bridge_ports eth0

Riavviare la rete per applicare le modifiche:

bash
sudo systemctl restart networking

Perché funziona: Il bridge permette alla VM di utilizzare l'interfaccia di rete del server fisico, rendendo la comunicazione trasparente.

Step 2: Creazione e Configurazione di una VM

Ora creiamo una macchina virtuale utilizzando Libvirt. Utilizzeremo il comando virt-install per configurarla con una rete bridge.

bash
sudo virt-install \
  --name vm-test \
  --ram 2048 \
  --disk path=/var/lib/libvirt/images/vm-test.qcow2,size=10 \
  --vcpus 2 \
  --os-type linux \
  --os-variant ubuntu20.04 \
  --network bridge=br0 \
  --graphics none \
  --cdrom /path/to/ubuntu.iso

Output atteso: La creazione della VM verrà avviata e sarà visibile nel gestore di Libvirt.

Perché funziona: virt-install è un comando che facilita la creazione di VM, specificando direttamente le risorse da allocare.

Step 3: Implementazione degli Snapshot

La gestione degli snapshot è cruciale per il ripristino rapido in caso di problemi. Gli snapshot consentono di salvare lo stato della VM in un momento specifico.

bash
# Creazione di uno snapshot
sudo virsh snapshot-create-as vm-test snapshot1 "Snapshot per test" --disk-only --atomic

Output atteso: Uno snapshot chiamato snapshot1 sarà creato correttamente.

Perché funziona: Utilizzando virsh, possiamo gestire gli snapshot con comandi semplici e chiari.

Step 4: Sicurezza nella Configurazione di KVM

La sicurezza deve essere una priorità in qualsiasi configurazione di produzione. Ecco alcune best practice:

  • Limitare l'accesso alla rete: Utilizzare firewall (UFW o iptables) per limitare le connessioni alle sole porte necessarie.
  • Disabilitare il supporto per dispositivi non necessari: Modificare le configurazioni delle VM per disabilitare device come USB o dispositivi di rete non utilizzati.
  • Utilizzare SELinux o AppArmor: Implementare un layer di sicurezza aggiuntivo a livello di sistema operativo.

Verifica Finale

Dopo aver configurato tutto, è essenziale verificare che le modifiche funzionino come previsto. Controlla lo stato del bridge e le VM attive.

bash
# Controllo stato del bridge
brctl show

# Controllo delle VM
sudo virsh list --all

Output atteso: La lista delle VM e il bridge dovrebbero apparire correttamente configurati.

Troubleshooting

Ecco alcuni errori comuni e come risolverli:

  1. Errore: VM non avviabile - error: Failed to start domain 'vm-test'
    Causa: Risorse insufficienti o problemi con l'immagine disco.
    Fix: Verifica le risorse disponibili e assicurati che il disco sia configurato correttamente.
  2. Errore: Connection reset by peer
    Causa: Problemi di rete o firewall bloccato.
    Fix: Controlla la configurazione del firewall e assicurati che le porte siano aperte.
  3. Errore: Cannot access storage file
    Causa: Permessi insufficienti sul filesystem.
    Fix: Assicurati che l'utente 'libvirt-qemu' abbia accesso al file del disco.

Conclusione

La configurazione di KVM con Libvirt in un ambiente di produzione richiede attenzione sia alle performance che alla sicurezza. Implementando le best practice sopra descritte, puoi creare un'infrastruttura robusta e sicura. Il passo successivo potrebbe essere l'integrazione di strumenti di monitoraggio per analizzare le performance delle VM e anticipare eventuali problemi.