Dilluns, febrer 9, 2026
VIRTUALITZACIÓ

Snapshots i checkpoints: com tornar enrere sense por

Qui treballa amb màquines virtuals i contenidors acaba enfrontant-se tard o d’hora a la mateixa situació: cal provar un canvi que pot trencar el sistema. Pot ser una actualització gran, una modificació de configuració delicada o simplement un experiment. La diferència entre fer-ho amb confiança o amb por la marquen els snapshots (en màquines virtuals) i els commits/checkpoints (en contenidors).

En teoria, ambdues eines compleixen la mateixa funció: congelar un estat per poder tornar enrere. A la pràctica, cada tecnologia ho fa de forma diferent i amb implicacions importants per a l’ ús diari. Entendre aquestes diferències, i saber aplicar-les amb criteri, evita problemes d’ espai, rendiment i frustracions en restaurar.

Aquest text explica com funcionen els snapshots en entorns habituals (VirtualBox, GNOME Boxes, virt-manager/KVM, Proxmox) i què signifiquen els commits i checkpoints en contenidors (Docker, Podman, LXC). A més, s’ inclouen exemples reals, comandaments i bones pràctiques per aprofitar-los sense comprometre el sistema.

Què és un snapshot en una màquina virtual

Un snapshot en una VM no és més que una còpia de l’estat complet de la màquina en un instant donat. Això inclou:

  • Disc( s): es congela l’ estat de l’ emmagatzematge.
  • Memòria RAM (opcional): algunes plataformes permeten capturar el contingut de la memòria, la qual cosa equival a pausar la VM i poder reprendre-la exactament on era.
  • Configuració: es guarda la definició de maquinari virtual (CPU, xarxa, etc.).

La majoria d’hipervisors no dupliquen el disc sencer en el moment de l’snapshot, perquè això seria massa costós. En el seu lloc, creen un arxiu de diferència (delta). El disc base es torna de només lectura, i a partir d’aquell moment els canvis s’escriuen en un arxiu nou. L’snapshot és, per tant, un punt de referència en una cadena d’arxius. Tornar enrere significa descartar el delta i tornar a l’estat anterior.

Implicacions tècniques

  • Com més snapshots encadenats, més dependències i més lenta es pot tornar la VM en accedir a disc.
  • Els snapshots no són backups permanents: si esborres el disc base, perds tota la cadena.
  • Restaurar des de snapshot implica perdre qualsevol canvi fet després.

Snapshots en VirtualBox

VirtualBox es far servir molt en entorns domèstics i d’aprenentatge. Els seus snapshots es gestionen fàcilment des de la interfície gràfica, però convé entendre el que passa en segon pla.

Crear un snapshot

A VirtualBox n’hi ha prou amb triar la VM → Màquina → Crear instantània. El sistema crearà un nou arxiu .vdi diferencial en el directori de la VM.

En CLI:

VBoxManage snapshot "UbuntuTest" take "abans-d-actualizar"

Restaurar un snapshot

Es pot fer des de la interfície o amb:

VBoxManage snapshot "UbuntuTest" restore "abans-d-actualizar"

Bones pràctiques a VirtualBox

  • No acumular cadenes llargues: cada snapshot afegeix un nivell d’indirecció en disc.
  • Fer servir snapshots com a punts temporals abans de canvis arriscats, no com a sistema de backup.
  • Si un snapshot t’ha servit, consolida-ho esborrant-lo o fent un clon de la VM amb l’estat actual.

Instantànies en GNOME Boxes

GNOME Boxes simplifica l’experiència per a usuaris d’escriptori, però per sota fa servir libvirt/KVM. En la seva interfície els snapshots apareixen de forma molt bàsica, sense tantes opcions com en virt-manager.

Creació

En obrir una màquina → menú superior → Crear instantània.

El que es guarda és un punt en la definició de libvirt, amb un disc diferencial.

Limitacions

  • Boxes no ofereix eines per gestionar diverses branques de snapshots o restaurar amb gran detall.
  • És útil per a usuaris que només necessiten “guardar un estat abans de tocar alguna cosa”.

Si es necessita més control, convé passar a virt-manager, que treballa sobre les mateixes màquines definides en libvirt.

Snapshots en KVM/libvirt amb virt-manager

KVM amb libvirt ofereix snapshots molt més complets i és una bona opció fins i tot en un servidor domèstic.

Crear snapshot des de virt-manager

  • Obrir la VM en virt-manager.
  • Menú Veure → Detalls → Instantànies.
  • Polsar en Prendre instantània.

En línia de comandaments

Amb virsh:

virsh snapshot-create-as --domain debian-test \
  snapshot1 "Abans d’ instal·lar Apache"

Restaurar snapshot

virsh snapshot-revert debian-test snapshot1

Opcions avançades

  • –disk-only: snapshot només de discos, sense memòria.
  • –memspec: incloure memòria RAM.

Quan fer servir snapshots en KVM

  • Abans de grans actualitzacions de sistema.
  • Abans de modificar la xarxa virtual d’ una VM.
  • Abans d’instal·lar programari experimental.

Snapshots en Proxmox VE

Proxmox, molt popular en entorns domèstics avançats, permet snapshots integrats tant en VMs com en contenidors LXC.

Crear snapshot en VM

En la interfície web → seleccionar la VM → Snapshots → Take Snapshot.

Des de CLI:

qm snapshot 101 "pre-upgrade"

Snapshots en contenidors LXC

Proxmox permet snapshots consistents si el sistema d’arxius base el suporta (ZFS, LVM-thin).

pct snapshot 201 "antes-de-mysql-upgrade"

Avantatges a Proxmox

  • Snapshots integrats amb la gestió de backups.
  • Suport d’ emmagatzematge ZFS: snapshots molt ràpids i gairebé instantanis.

Riscos

  • Si l’emmagatzematge és “raw” sense suport de snapshots, l’operació falla o implica pausa llarga.
  • Igual que en altres hipervisors, no substitueix un backup extern.

Commits i checkpoints en contenidors

En contenidors no existeix el concepte clàssic de snapshot. Aquí la filosofia és diferent.

Docker commit

Congela l’ estat actual d’ un contenidor en una nova imatge.

docker commit mycontainer myimage:backup1

Això crea una imatge amb totes les modificacions aplicades en el sistema d’ arxius del contenidor.

Limitacions del commit

  • No guarda l’ estat de processos ni memòria: només el sistema d’ arxius.
  • Pot generar imatges molt grans i difícils de mantenir si s’abusa.
  • És més útil per capturar un “build manual” que per a recuperació ràpida.

Punts de control (CRIU)

Docker y Podman soportan “checkpoint/restore” mediante CRIU (Checkpoint/Restore In Userspace).

docker checkpoint create mycontainer checkpoint1
docker start --checkpoint checkpoint1 mycontainer

Això congela el procés amb la seva memòria i estat, permetent reprendre’l més tard. No és tan estable ni es fa servir tant com els snapshots de VM, però és útil per a proves.

LXC/LXD

LXD permet snapshots nadius de contenidors. Exemple:

lxc snapshot webserver snap1
lxc restore webserver snap1

Això s’assembla molt més al model de VM que al de Docker.

Diferències clau entre VMs i contenidors

  • VMs: snapshot complet de disc + configuració + opcionalment RAM. Molt fiable per tornar enrere en qualsevol situació.
  • Contenidors: commit = imatge nova del sistema d’ arxius. Checkpoint = estat de procés (limitat). Snapshots complets només en LXC/LXD.
  • Ús realista: en entorns casolans, els snapshots de VM són el salvavides més pràctic. En Docker, és més sensat fer servir docker-compose i reconstruir imatges, deixant els commits per a casos molt puntuals.

Bones pràctiques en treballar amb snapshots i commits

  • No fer servir snapshots com a backup. Serveixen per tornar enrere ràpid, no per guardar dades a llarg termini. Un error comú és confiar en un snapshot com a còpia permanent.
  • Nomenar de forma clara. Fer servir descripcions amb data i propòsit:
snapshot-2025-08-30-antes-actualizacion-kernel
  • Controlar l’espai en disc. Cada snapshot afegeix consum. Revisar periòdicament amb du -sh en el directori de VM o docker images.
  • Evitar cadenes llargues. Restaurar des d’un snapshot llunyà pot degradar el rendiment. El recomanable és consolidar o esborrar snapshots que ja no es necessiten.
  • Fer servir commits només en proves ràpides. Si es necessita un contenidor estable i reproduïble, el millor és escriure un Dockerfile o fer servir docker-compose.
  • Validar després de restaurar. Després de tornar a un snapshot, comprovar que la VM arrenca correctament, que la xarxa funciona i que els serveis s’aixequen.

Errors freqüents

  • Oblidar les dades persistents: restaurar una VM elimina tots els canvis posteriors, inclosos els fitxers creats en /home. El mateix passa en fer commit a Docker.
  • Fer snapshot en emmagatzematge no preparat: a Proxmox, fer servir emmagatzematge sense suport pot causar fallades o pauses llargues.
  • Confiar en snapshots com a única estratègia: una fallada de disc en el host s’emporta per davant snapshots i VM. Sempre cal un backup extern.
  • Commits descontrolats: generen imatges enormes i desorganitzades.

Exemples pràctics

Cas 1: actualitzar kernel en VM de proves

  • Prendre instantània:
virsh snapshot-create-as debian-test kernel-preupdate
  • Instalar kernel.
  • Si arrenca malament → revertir snapshot.

Cas 2: provar nova versió de base de dades en LXC

  • Snapshot previ:
pct snapshot 202 mariadb-before-upgrade
  • Actualitzar.
  • Si falla:
pct rollback 202 mariadb-before-upgrade

Cas 3: capturar un contenidor Docker modificat

  • Córrer contenidor base.
  • Instal·lar paquets manualment.
  • Guardar estat:
docker commit mytest myimage:custom
  • Llançar contenidor des d’aquesta imatge en un altre host.

Llista de verificació ràpida

Abans d’ un snapshot en VM:

  • Apagar serveis crítics o assegurar-se que toleren estat inconsistent.
  • Verificar espai en disc en el host.
  • Nomenar i descriure amb data i acció prevista.

Després de restaurar:

  • Confirmar que arrenca el SO.
  • Verificar connectivitat de xarxa.
  • Revisar logs de serveis principals.

En contenidors:

  • Fer servir commit només per a proves puntuals.
  • Per a persistència real, treballar amb volums i backups.

Conclusió

Els snapshots en màquines virtuals i els commits/checkpoints en contenidors no són el mateix, però compleixen un propòsit semblant: oferir un marge de seguretat en experimentar o actualitzar. Usats amb criteri, permeten provar sense por. Mal gestionats, es converteixen en una font de problemes d’espai i rendiment.

En un entorn domèstic o de laboratori, la millor estratègia és:

  • VMs: snapshots abans de canvis arriscats, i backups a part per a dades.
  • Contenidors: reconstrucció reproduïble amb Dockerfiles i docker-compose, reservant commits per a captures ràpides.
  • Proxmox i KVM: snapshots integrats molt útils, sempre que es gestionin amb ordre.

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *