Con una instantánea, su software de virtualización debe realizar un seguimiento de cuatro cosas: estado de la CPU, RAM, configuración (¿cuántas tarjetas de red en la VM?) Y disco. Estoy ignorando las tres primeras cosas porque no son grandes cantidades de datos, el software solo puede hacer copias de las estructuras de datos relativamente pequeñas y almacenarlas en un archivo. Entonces, eso deja solo la instantánea del disco para explicar.
En primer lugar, lo que la VM ve como un disco duro es realmente solo un conjunto de archivos en el sistema de archivos del host. Para hacer una instantánea, el software de la máquina virtual toma el disco de la VM en un determinado momento, lo conserva, abre un nuevo archivo de disco vacío y realiza un esquema de copia en escritura con cada acceso posterior al disco.
Digamos que su archivo de disco es BigVM.disk. Usted toma una instantánea y ahora su software VM cambia el nombre de su disco a BigVM-s1.disk, luego crea un nuevo BigVM.disk vacío. Cuando su VM se está ejecutando, todas las solicitudes de lectura pasan por BigVM.disk. Si ese archivo no tiene una entrada para la parte del disco que desea su VM, se devuelven los datos de BigVM-s1.disk. En una escritura, los datos se escriben en BigVM.disk en lugar de BigVM-s1.disk. Una lectura futura en ese mismo sector devolverá los datos de BigVM.disk en lugar de la instantánea original contenida en BigVM-s1.disk. BigVM-s1.disk contiene el estado del disco duro de su VM a partir de su instantánea, mientras que BigVM.disk contiene todos los diferenciales de su disco desde esa instantánea.
¿Qué sucede cuando vuelves a una instantánea anterior? El software VM desecha el contenido de BigVM.disk y comienza de nuevo, con un nuevo BigVM.disk vacío que todavía apunta a BigVM-s1.disk.