1 <meta http-equiv=
"Content-Type" content=
"text/html; charset=utf-8"/>
2 <link rel=
"stylesheet" href=
"style.css" type=
"text/css"/>
3 <script src=
"code.js" type=
"text/javascript"></script>
5 <h1>Initial qemu pull-mode differential backup
</h1>
8 <li>expose the bitmap over NBD for third-party access
</li>
9 <li>create a new bitmap on each backup
</li>
10 <li>transfer which bitmap is enabled; all others are disabled
</li>
11 <li>merge sequence of bitmaps to perform differential backup
</li></li>
14 <p>Differential backup
17 <td style=
"font-size:20px;">Image.qcow2
</td>
18 <td style=
"font-size:20px;">BackupFull.qcow2
</td>
24 <th style=
"visibility:hidden;">b0
</th>
25 <th>A
</th><th>-
</th><th>A
</th><th>B
</th>
26 <th>B
</th><th>B
</th><th>-
</th><th>-
</th>
28 <tr style=
"color:red;">
29 <td style=
"font-style: italic">b0
</td>
30 <td>-
</td><td>-
</td><td>-
</td><td>X
</td>
31 <td>X
</td><td>X
</td><td>-
</td><td>-
</td>
33 <tr style=
"color:green;">
34 <td style=
"font-style: italic">b1
</td>
35 <td>-
</td><td>-
</td><td>X
</td><td>X
</td>
36 <td>-
</td><td>-
</td><td>-
</td><td>-
</td>
38 <tr style=
"color:blue;">
39 <td style=
"font-style: italic">t
</td>
40 <td>-
</td><td>-
</td><td>X
</td><td>X
</td>
41 <td>X
</td><td>X
</td><td>-
</td><td>-
</td>
48 <th>A
</th><th>-
</th><th>A
</th><th>A
</th>
49 <th>-
</th><th>A
</th><th>-
</th><th>-
</th>
56 <td style=
"font-size:20px;">IncBackup1.qcow2
</td>
63 <th>-
</th><th>-
</th><th>-
</th><th>B
</th>
64 <th>B
</th><th>B
</th><th>-
</th><th>-
</th>
71 <td style=
"font-size:20px;">DiffBackup.qcow2
</td>
78 <th>-
</th><th>-
</th><th>C
</th><th>C
</th>
79 <th>B
</th><th>B
</th><th>-
</th><th>-
</th>
87 <p class=
"attribution">See also this
2018 KVM Forum presentation:
88 <a href=
"https://www.youtube.com/watch?v=zQK5ANionpU">Facilitating
89 Incremental Backup
</a>, Eric Blake
</p>