Comment 0 for bug 1175647

Revision history for this message
Alexander Sashnov (sashnov) wrote : UserManual.pdf wrong about deleting snapshot

UserManual.pdf wrong about deleting snapshot - data from deleted snapshot does not merges with parent.

Instead, data from deleted snapshot merges with all of its child snapshots.

Wrong information located into UserManual.pdf:
-----------------------------------
5.5 Differencing images
......
If you later delete a snapshot in order to free disk space, for each disk attachment, one of
the differencing images becomes obsolete. In this case, the differencing image of the disk
attachment cannot simply be deleted. Instead, VirtualBox needs to look at each sector of
the differencing image and needs to copy it back into its parent; this is called “merging”
images and can be a potentially lengthy process, depending on how large the differencing
image is. It can also temporarily need a considerable amount of extra disk space, before
the differencing image obsoleted by the merge operation is deleted.
-----------------------------------

What exactly wrong in text above: "VirtualBox needs to...copy it back into its parent"

But really things are as follow. Imagine the situation:

1. Create new virtual machine with windows XP using existing VDI disk image
    (fresh installed system)

2. Create "clean" snapshot right after VM creation wizard have finished.

3. Run the virtual machine, do some experiment and turn off it (Start menu, Shutdown)

4. Right click to the "current state" and do "Take Snapshort", name it "after first experiment".

Now you will have following snapshots hierarchy:

(Hint: you can see size of snapshots in "Virtual Media Manager")

XP.vdi - normal VDI, attached to "clean" snapshot (for ex, 1.2 Gb)
-- {234234} difference VDI, attached to "after first experiment" snapshot (for ex, 800 Mb)
----{423412} difference VDI, attached to "XP" (current state, for example, 168 Kb)

Question: what will happens if I delete "after first experiment" snapshot now?

According to the documentation (see quotation above) data from "after first experiment" will be merged to its parent- "clean" snapshot.

But it really merges to "current state" snapshot, so after delete we will get:

XP.vdi - normal VDI, attached to "clean" snapshot (for ex, 1.2 Gb)
--{423412} difference VDI, attached to "XP" (current state, for example, 802 Kb)

More more, if you had following hierarchy:

XP.vdi - normal VDI, attached to "clean" snapshot (for ex, 1.2 Gb)
-- {234234} difference VDI, attached to "after first experiment" snapshot (for ex, 800 Mb)
---- {63453} difference VDI, attached to "after second experiment a " snapshot (for ex, 30 Mb)
---- {32344} difference VDI, attached to "after second experiment b " snapshot (for ex, 20 Mb)
------{423412} difference VDI, attached to "XP" (current state, for example, 168 Kb)

Question: what will happend if you delete "after first experiment" snapshot?

Of cause, it will not be merged with parent "clean" image.

It will merged to _both_ "after second experiment a" and "after second experiment b":

XP.vdi - normal VDI, attached to "clean" snapshot (for ex, 1.2 Gb)
-- {63453} difference VDI, attached to "after second experiment a " snapshot (for ex, 830 Mb)
-- {32344} difference VDI, attached to "after second experiment b " snapshot (for ex, 820 Mb)
----{423412} difference VDI, attached to "XP" (current state, for example, 168 Kb)

That how it works in VirtualBox 4.2.

ProblemType: Bug
DistroRelease: Ubuntu 13.04
Package: virtualbox 4.2.10-dfsg-0ubuntu2
ProcVersionSignature: Ubuntu 3.8.0-19.29-generic 3.8.8
Uname: Linux 3.8.0-19-generic i686
ApportVersion: 2.9.2-0ubuntu8
Architecture: i386
Date: Thu May 2 21:44:37 2013
InstallationDate: Installed on 2013-05-02 (0 days ago)
InstallationMedia: Ubuntu 13.04 "Raring Ringtail" - Release i386 (20130424)
MarkForUpload: True
ProcEnviron:
 TERM=xterm
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=ru_RU.UTF-8
 SHELL=/bin/bash
SourcePackage: virtualbox
UpgradeStatus: No upgrade log present (probably fresh install)