VirtualBox

source: vbox/trunk/doc/manual/en_US/dita/topics/diffimages.dita@ 98549

Last change on this file since 98549 was 98549, checked in by vboxsync, 2 years ago

Docs: bugref:10302. Uploading .dita user manual files we received from the doc team on 25th Jan.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 7.2 KB
Line 
1<?xml version='1.0' encoding='UTF-8'?>
2<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
3<topic xml:lang="en-us" id="diffimages">
4 <title>Differencing Images</title>
5
6 <body>
7 <p>
8 The previous section mentioned differencing images and how they
9 are used with snapshots, immutable images, and multiple disk
10 attachments. This section describes in more detail how
11 differencing images work.
12 </p>
13 <p>
14 A differencing image is a special disk image that only holds the
15 differences to another image. A differencing image by itself is
16 useless, it must always refer to another image. The differencing
17 image is then typically referred to as a
18 <i>child</i>, which holds the differences to its
19 <i>parent</i>.
20 </p>
21 <p>
22 When a differencing image is active, it receives all write
23 operations from the virtual machine instead of its parent. The
24 differencing image only contains the sectors of the virtual hard
25 disk that have changed since the differencing image was created.
26 When the machine reads a sector from such a virtual hard disk, it
27 looks into the differencing image first. If the sector is present,
28 it is returned from there. If not, Oracle VM VirtualBox looks into the
29 parent. In other words, the parent becomes
30 <i>read-only</i>. It is never written to again, but
31 it is read from if a sector has not changed.
32 </p>
33 <p>
34 Differencing images can be chained. If another differencing image
35 is created for a virtual disk that already has a differencing
36 image, then it becomes a <i>grandchild</i> of the
37 original parent. The first differencing image then becomes
38 read-only as well, and write operations only go to the
39 second-level differencing image. When reading from the virtual
40 disk, Oracle VM VirtualBox needs to look into the second differencing
41 image first, then into the first if the sector was not found, and
42 then into the original image.
43 </p>
44 <p>
45 There can be an unlimited number of differencing images, and each
46 image can have more than one child. As a result, the differencing
47 images can form a complex tree with parents, siblings, and
48 children, depending on how complex your machine configuration is.
49 Write operations always go to the one <i>active</i>
50 differencing image that is attached to the machine, and for read
51 operations, Oracle VM VirtualBox may need to look up all the parents in
52 the chain until the sector in question is found. You can view such
53 a tree in the Virtual Media Manager.
54 </p>
55 <fig id="fig-diff-images">
56 <title>Differencing Images, Shown in Virtual Media Manager</title>
57 <image href="images/virtual-disk-manager-2.png" placement="break"/>
58 </fig>
59 <p>
60 In all of these situations, from the point of view of the virtual
61 machine, the virtual hard disk behaves like any other disk. While
62 the virtual machine is running, there is a slight run-time I/O
63 overhead because Oracle VM VirtualBox might need to look up sectors
64 several times. This is not noticeable however since the tables
65 with sector information are always kept in memory and can be
66 looked up quickly.
67 </p>
68 <p>
69 Differencing images are used in the following situations:
70 </p>
71 <ul>
72 <li>
73 <p><b outputclass="bold">Snapshots.</b> When you create a
74 snapshot, as explained in the previous section, Oracle VM VirtualBox
75 <i>freezes</i> the images attached to the
76 virtual machine and creates differencing images for each image
77 that is not in <i>write-through</i> mode. From
78 the point of view of the virtual machine, the virtual disks
79 continue to operate before, but all write operations go into
80 the differencing images. Each time you create another
81 snapshot, for each hard disk attachment, another differencing
82 image is created and attached, forming a chain or tree.
83 </p>
84 <p>
85 In the above screenshot, you see that the original disk image
86 is now attached to a snapshot, representing the state of the
87 disk when the snapshot was taken.
88 </p>
89 <p>
90 If you <i>restore</i> a snapshot, and want to go
91 back to the exact machine state that was stored in the
92 snapshot, the following happens:
93 </p>
94 <ul>
95 <li>
96 <p>
97 Oracle VM VirtualBox copies the virtual machine settings that
98 were copied into the snapshot back to the virtual machine.
99 As a result, if you have made changes to the machine
100 configuration since taking the snapshot, they are undone.
101 </p>
102 </li>
103 <li>
104 <p>
105 If the snapshot was taken while the machine was running,
106 it contains a saved machine state, and that state is
107 restored as well. After restoring the snapshot, the
108 machine will then be in Saved state and resume execution
109 from there when it is next started. Otherwise the machine
110 will be in Powered Off state and do a full boot.
111 </p>
112 </li>
113 <li>
114 <p>
115 For each disk image attached to the machine, the
116 differencing image holding all the write operations since
117 the current snapshot was taken is thrown away, and the
118 original parent image is made active again. If you
119 restored the root snapshot, then this will be the root
120 disk image for each attachment. Otherwise, some other
121 differencing image descended from it. This effectively
122 restores the old machine state.
123 </p>
124 </li>
125 </ul>
126 <p>
127 If you later <i>delete</i> a snapshot in order
128 to free disk space, for each disk attachment, one of the
129 differencing images becomes obsolete. In this case, the
130 differencing image of the disk attachment cannot simply be
131 deleted. Instead, Oracle VM VirtualBox needs to look at each sector
132 of the differencing image and needs to copy it back into its
133 parent. This is called "merging" images and can be a
134 potentially lengthy process, depending on how large the
135 differencing image is. It can also temporarily need a
136 considerable amount of extra disk space, before the
137 differencing image obsoleted by the merge operation is
138 deleted.
139 </p>
140 </li>
141 <li>
142 <p><b outputclass="bold">Immutable images.</b> When an
143 image is switched to immutable mode, a differencing image is
144 created as well. As with snapshots, the parent image then
145 becomes read-only, and the differencing image receives all the
146 write operations. Every time the virtual machine is started,
147 all the immutable images which are attached to it have their
148 respective differencing image thrown away, effectively
149 resetting the virtual machine's virtual disk with every
150 restart.
151 </p>
152 </li>
153 </ul>
154 </body>
155
156</topic>
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette