Sysadmin

LVM Snapshot: Rollback Sicuro per Aggiornamenti Critici

LVM Snapshot: Rollback Sicuro per Aggiornamenti Critici

Gli LVM snapshot offrono un metodo rapido e affidabile per creare punti di ripristino istantanei di Logical Volume (LV) su sistemi Linux, consentendo un rollback sicuro e veloce in caso di problemi durante aggiornamenti critici o modifiche al sistema operativo.

TABELLA RIASSUNTIVA DEI COMANDI LVM SNAPSHOT

Comando LVM Descrizione Esempio
vgs Visualizza i Volume Group (VG) disponibili. vgs
lvs Visualizza i Logical Volume (LV) all’interno dei VG. lvs
lvcreate -L [SIZE] -s -n [SNAP_NAME] [SOURCE_LV] Crea uno snapshot di un LV esistente. lvcreate -L 10G -s -n my_snapshot /dev/vg_data/lv_root
mount /dev/[VG]/[SNAP_NAME] [MOUNT_POINT] Monta lo snapshot per accedervi. mount /dev/vg_data/my_snapshot /mnt/snap_test
umount [MOUNT_POINT] Smonta lo snapshot. umount /mnt/snap_test
lvconvert --merge [SNAP_LV] Esegue il rollback del Logical Volume originale allo stato dello snapshot. lvconvert --merge /dev/vg_data/my_snapshot
lvremove /dev/[VG]/[SNAP_NAME] Rimuove lo snapshot. lvremove /dev/vg_data/my_snapshot

Intro

Ogni sysadmin ha provato quella sensazione di ansia prima di un aggiornamento critico su un server di produzione. Un nuovo kernel, un upgrade del database, o una patch di sicurezza possono trasformarsi rapidamente in un incubo con downtime prolungato se qualcosa va storto. In un ambiente enterprise con centinaia di VM, un singolo errore può propagarsi, bloccando servizi essenziali. LVM (Logical Volume Manager) offre una soluzione elegante a questo problema: gli snapshot. Questa funzionalità permette di creare un’immagine istantanea del tuo Logical Volume, garantendo un punto di ripristino affidabile in caso di fallimento. Ho implementato questa strategia in un ambiente con oltre 300 VM e 2.000 workstation, riducendo i tempi di ripristino da ore a pochi minuti e trasformando gli aggiornamenti da operazioni ad alto rischio a routine gestibili e sicure.

Testato su: Ubuntu 24.04 LTS · LVM2 2.03.17 · luglio 2026

Prerequisiti / Ambiente di test

Per seguire questa guida, è necessario un sistema Linux (come Ubuntu 24.04 LTS) con LVM configurato. Questo significa avere un Volume Group (VG) e almeno un Logical Volume (LV) su cui operare. Se non hai LVM configurato, puoi farlo seguendo la documentazione ufficiale di LVM LVM HOWTO.

# Verifica la presenza di LVM
sudo vgdisplay
sudo lvdisplay

Assicurati di avere spazio libero nel tuo Volume Group per ospitare lo snapshot. Lo spazio necessario per lo snapshot dipende dalla quantità di dati che verranno modificati sul Logical Volume originale mentre lo snapshot è attivo. Un buon punto di partenza è allocare una quota dello spazio del LV originale, ma per aggiornamenti significativi potrebbe servire di più.

1. Verifica lo stato attuale dei Logical Volume

Prima di creare uno snapshot, è fondamentale conoscere la configurazione attuale dei tuoi Volume Group e Logical Volume. Utilizza i comandi vgs e lvs per visualizzare queste informazioni.

# Visualizza i Volume Group
sudo vgs

# Visualizza i Logical Volume
sudo lvs

L’output ti mostrerà il nome del Volume Group (es. vg_data), il Logical Volume (es. lv_root), la sua dimensione e lo spazio libero disponibile nel VG. Queste informazioni sono cruciali per il passaggio successivo.

2. Creazione dello Snapshot LVM

La creazione di uno snapshot è l’operazione più critica e deve essere eseguita immediatamente prima dell’aggiornamento. Lo snapshot è un’immagine ‘copy-on-write’ del tuo Logical Volume: non copia immediatamente tutti i dati, ma solo le modifiche che avvengono dopo la sua creazione. Questo rende l’operazione quasi istantanea.

Per creare uno snapshot, useremo il comando lvcreate con le opzioni -L (dimensione dello snapshot), -s (specifica che è uno snapshot) e -n (nome dello snapshot). Dovrai specificare il percorso completo del Logical Volume di origine.

# Esempio: Crea uno snapshot di 10GB chiamato 'my_snapshot' del Logical Volume 'lv_root' nel Volume Group 'vg_data'
sudo lvcreate -L 10G -s -n my_snapshot /dev/vg_data/lv_root

Sostituisci 10G con la dimensione desiderata, my_snapshot con un nome descrittivo e /dev/vg_data/lv_root con il percorso del tuo Logical Volume. Una volta creato, puoi verificarne la presenza con sudo lvs.

Leggi anche: Linux: Liberare Spazio Disco con 12 Comandi (Guida SysAdmin 2026)

3. Esecuzione dell’Aggiornamento Critico

Ora che hai un punto di ripristino sicuro, puoi procedere con l’aggiornamento. Questo potrebbe includere l’aggiornamento del kernel, l’installazione di patch di sicurezza, o l’upgrade di un’applicazione critica. Ad esempio, per un aggiornamento completo del sistema su Ubuntu:

sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y

Dopo l’aggiornamento, è buona pratica riavviare il sistema per assicurarti che tutte le modifiche siano applicate correttamente, specialmente se è stato aggiornato il kernel.

sudo reboot

Monitora attentamente il sistema durante e dopo il riavvio per eventuali errori o comportamenti anomali. Se il sistema si avvia correttamente e i servizi funzionano come previsto, lo snapshot può essere rimosso. Se invece l’aggiornamento causa problemi, procedi con il rollback.

4. Rollback da Snapshot LVM (Se Necessario)

Se l’aggiornamento ha causato problemi (es. il sistema non si avvia, servizi critici non partono, errori inaspettati), puoi ripristinare il Logical Volume allo stato precedente allo snapshot. Questa operazione è chiamata “merge” e ripristina il LV originale allo stato dello snapshot, eliminando tutte le modifiche fatte dopo la creazione dello snapshot.

Importante: Prima di eseguire il merge, il Logical Volume originale (nel nostro esempio lv_root) non deve essere montato. Se è il LV di root, dovrai avviare il sistema da una live CD/USB o entrare in modalità rescue per smontarlo.

# Avvia da Live CD/USB e smonta il Logical Volume originale (es. /dev/vg_data/lv_root)
# Se il LV di root è montato, non puoi fare il merge direttamente
# Per un LV non di root, assicurati che sia smontato:
sudo umount /mnt/my_data_partition # Esempio per un LV dati

# Esegui il merge del Logical Volume di snapshot nel Logical Volume originale
sudo lvconvert --merge /dev/vg_data/my_snapshot

Il comando lvconvert --merge ripristinerà il tuo sistema allo stato esatto in cui si trovava al momento della creazione dello snapshot. Una volta completato il merge, lo snapshot verrà automaticamente rimosso. Riavvia il sistema per verificare che tutto sia tornato alla normalità.

Leggi anche: Systemd: Indagine su Servizi Falliti e Debugging su Linux

5. Rimozione dello Snapshot (Se l’Aggiornamento ha Successo)

Se l’aggiornamento è andato a buon fine e il sistema funziona correttamente, lo snapshot non è più necessario e dovrebbe essere rimosso per liberare spazio. Ricorda, uno snapshot occupa spazio nel Volume Group e, se non monitorato, può esaurire lo spazio disponibile, causando problemi al Logical Volume originale.

# Rimuovi lo snapshot
sudo lvremove /dev/vg_data/my_snapshot

Conferma la rimozione quando richiesto. Questo libererà lo spazio precedentemente allocato per lo snapshot.

Leggi anche: SSH Senza Password Linux: Configurare le Chiavi in 5 Minuti (2026)

Errori comuni e troubleshooting

  • Spazio insufficiente nel Volume Group: Se non c’è abbastanza spazio nel VG per creare lo snapshot, lvcreate fallirà. Assicurati di aver pianificato bene la dimensione dello snapshot. Puoi estendere il VG aggiungendo nuovi Physical Volume (PV) o ridimensionare altri LV per liberare spazio. Leggi anche: Kubernetes Networking: DNS, Services, Ingress — Guida Pratica Sysadmin (2026)
  • Snapshot pieno: Se il Logical Volume originale subisce troppe modifiche e lo snapshot esaurisce lo spazio allocato, lo snapshot diventa inutilizzabile (invalidato). Monitora l’utilizzo dello snapshot con lvs e, se necessario, estendilo con lvextend --size +[SIZE] /dev/vg_name/my_snapshot.
  • LV di origine montato durante il merge: Il comando lvconvert --merge fallirà se il Logical Volume originale è montato. Per LV di root, è indispensabile riavviare da un ambiente live o rescue. Per LV dati, semplicemente smontalo prima del merge.
  • Nome snapshot già esistente: Assicurati di usare nomi unici per i tuoi snapshot, altrimenti lvcreate darà errore.

FAQ — Domande Frequenti

Quanto spazio devo allocare per uno snapshot?

Dipende dalla quantità di dati che si prevede cambieranno sul Logical Volume originale mentre lo snapshot è attivo. Per un aggiornamento di sistema standard, una quota dello spazio del LV originale è spesso sufficiente. Per modifiche più estese o periodi prolungati, potrebbe essere necessario di più. Monitora l’utilizzo con lvs.

Posso creare snapshot di snapshot?

No, LVM non supporta la creazione di snapshot di snapshot. Puoi creare solo uno snapshot di un Logical Volume non-snapshot. Se hai bisogno di più punti di ripristino, crea snapshot separati dal LV originale o esegui il merge e poi crea un nuovo snapshot.

Gli snapshot LVM influiscono sulle performance del sistema?

Sì, gli snapshot LVM possono avere un impatto minimo sulle performance, specialmente se il Logical Volume originale subisce molte operazioni di scrittura. Questo perché ogni scrittura sul LV originale deve essere copiata nello snapshot prima che il blocco originale venga modificato (copy-on-write). L’impatto è generalmente trascurabile per carichi di lavoro tipici, ma può diventare più evidente con I/O intensivi.

È possibile estendere la dimensione di uno snapshot dopo la sua creazione?

Sì, puoi estendere la dimensione di uno snapshot utilizzando lvextend. Questo è utile se noti che lo snapshot si sta riempiendo troppo rapidamente a causa di molte scritture sul Logical Volume originale, evitando che diventi invalido.

Conclusioni con takeaway operativi

L’utilizzo degli LVM snapshot è una pratica essenziale per qualsiasi sysadmin che gestisce server Linux in produzione. Trasforma gli aggiornamenti critici da operazioni ad alto rischio in processi controllati e reversibili. La chiave è la preparazione: verificare la configurazione LVM, allocare correttamente lo spazio per lo snapshot e conoscere i comandi per il rollback. Adottando questa procedura, non solo ridurrai il tempo di inattività in caso di problemi, ma aumenterai anche la tua fiducia e la stabilità complessiva dell’infrastruttura. Non lasciare mai un aggiornamento critico al caso; un LVM snapshot è il tuo paracadute di sicurezza.

Fonti

Aggiornato: luglio 2026

Condividi questo articolo:

Scritto da

Rosario Giordano

Rosario Giordano è System Administrator e consulente IT specializzato in cybersecurity e cloud, con oltre 20 anni di esperienza nella gestione di infrastrutture Linux enterprise. Le sue aree di competenza includono hardening di SSH, piattaforme Kubernetes, database PostgreSQL, ambient i virtualizzati VMware e Proxmox, nonché la conformità ai framework di sicurezza NIS2 e ISO 27001.