Backup e Cloni · 3 min read · Jan 05, 2026

VirtualBox: Creazione di Backup e Cloni di Macchine Virtuali in Esecuzione (Nessun Downtime) con Snapshot LVM

VirtualBox: Creazione di Backup e Cloni di Macchine Virtuali in Esecuzione (Nessun Downtime) con Snapshot LVM

Versione 1.0
Autore: Falko Timme
Seguimi su Twitter

Se utilizzi volumi LVM per le tue VM di VirtualBox (come mostrato nel tutorial Utilizzo di Dispositivi RAW nelle VM di VirtualBox), puoi creare backup e cloni di una VM in esecuzione senza spegnerla. Questo tutorial mostra proprio questo: utilizzare snapshot LVM per creare backup e cloni di VM di VirtualBox in esecuzione senza downtime.

Non fornisco alcuna garanzia che questo funzionerà per te!

1 Nota Preliminare

Poiché ho installato VirtualBox su un server headless, sto utilizzando phpvirtualbox come GUI di VirtualBox qui. Se utilizzi la GUI originale di VirtualBox, va benissimo.

La mia macchina virtuale in esecuzione (di cui voglio fare un backup) si chiama vm10 ed è situata sul volume LVM /dev/vg0/vm10.

Assicurati di essere loggato come root (digita

sudo su

per diventare root), perché dobbiamo eseguire tutti i passaggi di questo tutorial come utente root.

2 Creare un Backup di una VM in Esecuzione con Snapshot LVM

Per creare un backup della macchina virtuale in esecuzione vm10, prima creo uno snapshot LVM di /dev/vg0/vm10 chiamato vm10_snap. Gli snapshot possono essere più piccoli del volume originale - 512MB sarebbero probabilmente sufficienti, ma qui sto usando una dimensione di 5GB:

lvcreate -L5G -s -n vm10_snap /dev/vg0/vm10

Successivamente utilizzo dd per leggere il contenuto dallo snapshot e pipearlo a gzip per creare un’immagine di backup gzippata nella directory /backup (puoi, ovviamente, utilizzare qualsiasi altra directory):

dd if=/dev/vg0/vm10_snap bs=64k | gzip -c > /backup/vm10.img.gz

Questo è tutto - il tuo backup di vm10 si trova ora in /backup/vm10.img.gz.

Ora rimuovi lo snapshot LVM:

lvremove -f /dev/vg0/vm10_snap

3 Ripristinare da un Backup/Clonare da un Backup

Ripristinare e clonare è essenzialmente la stessa cosa, quindi mostrerò come creare un clone chiamato vm11 dal backup che abbiamo appena creato.

Prima crea un volume LVM della stessa dimensione del volume LVM originale (20GB in questo esempio):

lvcreate -L20G -n vm11 vg0

Ripristina il backup di vm10 nel nuovo volume logico /dev/vg0/vm11:

gunzip -c /backup/vm10.img.gz | dd of=/dev/vg0/vm11 bs=64k

Successivamente crea un file .vmdk per /dev/vg0/vm11 (ad esempio vm11.vmdk) in modo da poterlo utilizzare con VirtualBox. È probabilmente meglio crearlo nella home directory dell’utente sotto il quale VirtualBox è in esecuzione (ad esempio /home/vbox se utilizzi phpvirtualbox) - il file deve anche essere di proprietà di quell’utente:

cd /home/vbox  
 VBoxManage internalcommands createrawvmdk -filename vm11.vmdk -rawdisk /dev/vg0/vm11  
 chown vbox:vbox vm11.vmdk

Successivamente vai alla tua GUI di VirtualBox (GUI originale di VirtulBox o phpvirtualbox) e clicca su Nuovo:

Clicca su Avanti>> nella procedura guidata Crea Nuova Macchina Virtuale:

Specifica il nome della nuova VM e seleziona lo stesso sistema operativo e versione utilizzati dalla VM originale:

Specifica la memoria del clone:

Nella schermata Disco Rigido Virtuale, seleziona Usa disco rigido esistente e clicca sull’icona Scegli un file di disco rigido virtuale:

Seleziona il file vm11.vmdk e clicca su OK:

Clicca su Avanti>>:

Clicca su Crea:

Prima di avviare il clone, potresti voler regolare alcune impostazioni, ad esempio se la VM originale utilizza il bridging, potresti voler selezionare il bridging anche per il clone nella configurazione di rete:

Ora clicca su Avvia per avviare il clone:

Durante l’avvio, probabilmente noterai che la configurazione di rete si blocca:

Questo accade perché VirtualBox ha assegnato un indirizzo MAC diverso per l’interfaccia eth0 al clone, ma il file /etc/udev/rules.d/70-persistent-net.rules del clone utilizza ancora l’indirizzo MAC originale. Dopo che l’avvio è terminato, accedi al clone ed esegui…

ifconfig

… e vedrai che eth0 è mancante (a causa del problema dell’indirizzo MAC), il che significa che il clone non può utilizzare la rete:

Per risolvere il problema, apri /etc/udev/rules.d/70-persistent-net.rules nel clone…

vi /etc/udev/rules.d/70-persistent-net.rules

… e commenta la riga eth0 (e anche la riga eth1 che è stata aggiunta durante l’avvio perché l’indirizzo MAC di eth0 era errato). Questo assicura che durante il prossimo avvio, il sistema aggiungerà una nuova riga eth0 con l’indirizzo MAC corretto.

Ora riavvia il clone. Dopo il riavvio, la sua rete dovrebbe funzionare e dovresti vedere eth0 nell’output di

ifconfig

Congratulazioni, hai clonato con successo una VM senza spegnere la VM originale.

4 Link

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.