Você está correto ao pensar que um arquivo .vdi
é um arquivo de imagem de disco virtual e que eles são usados por instantâneos.
Quando um instantâneo é criado, um novo arquivo .vdi
é criado, no qual a diferença do instantâneo é armazenada. Isso é chamado de "armazenamento diferenciado".
Technically, a snapshot records an entire VM state, which includes all attached drives, however most people do also use the word as a synonym for "delta image", "difference image" or "child image" when discussing the role of a single VDI in a snapshot chain, other than the base VDI. Source
After a snapshot has been taken, VirtualBox creates differencing hard disk for each normal hard disk associated with the machine so that when a snapshot is restored, the contents of the virtual machine's virtual hard disks can be quickly reset by simply dropping the pre-existing differencing files. Source
Você pode imaginar como isso pode ser útil quando você precisa criar várias "ramificações" a partir de um instantâneo - cada VDI do instantâneo conterá apenas as diferenças adicionadas por esse instantâneo, e não nada que exista no VDI de base. Por exemplo, considere um disco base (instantâneo) com 50 GB de arquivos e vários instantâneos filhos, cada um adicionando 10 GB de dados exclusivos. Cada VDI filho será tão grande quanto o necessário para armazenar seus 10 GB de dados, em vez de incluir os 50 GB do disco base.
Se você abrir o Gerenciador de Mídia Virtual ( Arquivo → Gerenciador de Mídia Virtual no Windows), poderá ver uma exibição em árvore dos seus discos rígidos virtuais em "Discos rígidos". " aba. Aqui você pode ver os discos e seus filhos. Clicar em um disco exibirá suas informações.
Por exemplo, tenho um disco cujas informações são exibidas:
Foo.vdi
Type: Normal
Location: C:\VirtualBox VMs\Foo\Foo.vdi
Storage details: Dynamically allocated storage
Attached to: Foo (Bar)
A informação do seu descendente mais distante é:
{bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb}.vdi
Type: Differencing
Location: C:\VirtualBox VMs\Foo\Snapshots\{bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb}.vdi
Storage details: Dynamically allocated differencing storage
Attached to: Foo
Neste exemplo, "Foo" é o nome da VM e "Bar" é o nome da primeira captura instantânea. "{bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb}" é o UUID do último disco .
O arquivo .vbox
da VM contém um documento XML descrevendo a VM, incluindo suas capturas instantâneas. O nó VirtualBox
contém um nó filho Machine
, que pode conter Snapshot
nós. O atributo stateFile
neste nó especifica o arquivo .sav
associado a este instantâneo, se houver.
The
.sav
file is essentially a memory dump, though other processor information (such as registers) is probably stored too. Source
Strangely, he also says that.sav
files have nothing to do with snapshots, which is incorrect.
A.sav
file contains always the complete state of the guest at a certain point in time. It does not contain any information stored on external devices like virtual disks. When a snapshot is created, a.sav
file is created containing the VM state which is required to restore the guest state for that time and a new differential disk image is created for each virtual disk (which is not attached in some special mode to prevent that). From now on, guest disk write requests go to the differential image. When you restore a snapshot, the differential image is removed so all changes to the disk after the snapshot was created are lost. Source
Para responder diretamente às suas perguntas:
[...] SAV is used for the current state. Is this true?
Quando o estado da máquina é salvo, o estado atual nesse momento é salvo em um arquivo .sav
.
[...] we should only have one SAV file (since there will only be one current state for a virtual machine
Claro, há apenas um estado atual , mas os arquivos .sav
criados por um instantâneo contêm estados anteriores .
[...] I found 2 SAV (and 2 VDI) files. Is that normal [...] ?
Is a snapshot represented by one of each type?
Isso é normal. Estou assumindo que é possível ter vários instantâneos sem .sav
arquivos se os instantâneos foram tirados enquanto a VM não estava em execução, pois não há estado de execução (volátil) a ser salvo. Se sua máquina estiver em execução quando você tirar uma foto instantânea, será criado um arquivo .sav
.
So what is really the difference between SAV and VDI?
Um arquivo .vdi
é um disco virtual, contendo armazenamento persistente. Um arquivo .sav
contém um dump de informações de estado volátil, que permite retomar o estado de uma máquina. Juntos, eles facilitam a restauração completa de um estado de VM que foi criado por meio de um instantâneo.
Ambos podem ser usados independentemente um do outro. Os arquivos .sav
também são usados quando você fecha uma VM e salva seu estado. Os arquivos .vdi
também podem ser usados como armazenamento persistente fora do escopo da captura instantânea.