File di una snapshot
Ogni snapshot è costituita da diversi file.

  • Memory state file, con suffisso ed estensione del tipo nome_vm-Snapshot#.vmsn, rappresenta lo stato della memoria; il simbolo # è il numero di sequenza (a partire da 1). Viene creato un nuovo file per ogni nuova snapshot, poi cancellato se la relativa snapshot viene cancellata. Se, durante la creazione della snapshot, si sceglie di includere anche il contenuto di memoria della VM, questo file sarà grande quanto la dimensione della memoria, diversamente sarà di dimensioni molto ridotte.
  • Snapshot description file, con suffisso ed estensione del tipo nome_vm-00000#.vmdk, contiene informazioni sulla snapshot.
  • Snapshot delta file, con suffisso ed estensione del tipo nome_vm-00000#-delta.vmdk, contiene le modifiche effettuate sul disco della VM. Quando viene creata una snapshot, la macchina virtuale non utilizza più il suo file .vmdk per le operazioni di scrittura, ma impiega il delta disk file che conterrà tutte le modifiche successive alla creazione della snapshot.
  • Snapshot list file, con suffisso ed estensione del tipo nome_vm.vmsd, mantiene le informazioni riguardanti tutte le snapshot della macchina virtuale, ovvero i riferimenti ai file .vmsn e .vmdk. È creato insieme alla macchina virtuale e ne esiste uno solo indipendentemente dalla presenza e dal numero di snapshot.

Funzionamento del processo di snapshot
Alla creazione di una snapshot, viene creato un “child disk”, corrispondente al file nome_vm-00000#-delta.vmdk. I dischi derivanti da una snapshot utilizzano un meccanismo di copy-on-write (copia su scrittura), ossia i blocchi dei dati modificati sono copiati dal parenti disk solo quando vi è un’operazione di scrittura. Gli incrementi sono di 16mb. Il primo disco child viene creato a partire dall’immagine base della VM (il disco originale), e le snapshot successive vengono generate a partire dal disco precedente rispetto alla struttura ad albero.

vsphere architettura snapshot

Esclusione di dischi dal processo di snapshot
Si possono escludere uno o più dischi dal processo di snapshot impostandoli come dischi indipendenti (independent disk). Quest’impostazione si effettua normalmente durante la creazione del disco, ma può essere applicata anche successivamente, a macchina virtuale spenta.

Un disco indipendente può essere di tipo persistent o nonpersistent. Nel primo caso, alla creazione di una snapshot, per questo disco non vengono generati file “delta”, e le successive scritture su disco sono mantenute anche in caso di eliminazione della snapshot.
Nel secondo caso, viene impiegato un meccanismo di log (redo log) per tracciare le modifiche effettuate su disco dopo la creazione della snapshot. Il redo log e le scritture su disco vengono perse con lo spegnimento o il riavvio della macchina virtuale.

L'autore

Alessio Carta

Responsabile sistemi presso un System Integrator con sede in Sardegna, si occupa di informatica e telecomunicazioni da oltre 10 anni. La sua formazione comprende una laurea in ingegneria, una specializazione IFTS in progettazione di reti telematiche, certificazioni Cisco CCNA, Cisco CCNA Security, MCP sui sistemi Windows Server e VCP su VMware vSphere (5.1, 5.5, 6.0). È istruttore presso una VMware IT Academy con sede a Cagliari.