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=
"vertical-align: top;">
18 <p style=
"font-size:20px;">Image.qcow2
</p>
21 <th style=
"visibility:hidden;">b0
</th>
22 <th>A
</th><th>-
</th><th>A
</th><th>B
</th>
23 <th>B
</th><th>B
</th><th>-
</th><th>-
</th>
25 <tr style=
"color:red;">
26 <td style=
"font-style: italic;">b0
</td>
27 <td>-
</td><td>-
</td><td>-
</td><td>X
</td>
28 <td>X
</td><td>X
</td><td>-
</td><td>-
</td>
30 <tr style=
"color:green;">
31 <td style=
"font-style: italic;">b1
</td>
32 <td>-
</td><td>-
</td><td>X
</td><td>X
</td>
33 <td>-
</td><td>-
</td><td>-
</td><td>-
</td>
35 <tr style=
"color:blue;">
36 <td style=
"font-style: italic;">t
</td>
37 <td>-
</td><td>-
</td><td>X
</td><td>X
</td>
38 <td>X
</td><td>X
</td><td>-
</td><td>-
</td>
42 <td style=
"vertical-align: top;">
43 <p style=
"font-size:20px;">FullBackup.qcow2
</p>
46 <th>A
</th><th>-
</th><th>A
</th><th>A
</th>
47 <th>-
</th><th>A
</th><th>-
</th><th>-
</th>
50 <p style=
"font-size:20px;">IncBackup1.qcow2
</p>
53 <th>-
</th><th>-
</th><th>-
</th><th>B
</th>
54 <th>B
</th><th>B
</th><th>-
</th><th>-
</th>
57 <p style=
"font-size:20px;">DiffBackup.qcow2
</p>
60 <th>-
</th><th>-
</th><th>C
</th><th>C
</th>
61 <th>B
</th><th>B
</th><th>-
</th><th>-
</th>
69 <p class=
"attribution">See also this
2018 KVM Forum presentation:
70 <a href=
"https://www.youtube.com/watch?v=zQK5ANionpU">Facilitating
71 Incremental Backup
</a>, Eric Blake
</p>