Hello,
I'm using checkpoints to back up Libvirt domains. I'm using the "virsh
backup-begin" tool and specifying the dombackup and checkpoint XML files. Everything
works correctly (I perform full and incremental backups) without any issues.
When I list the checkpoints using the "virsh checkpoint-list DOMAIN --parent
--topological" tool, it correctly shows me the entire chain of full and incremental
backups.
However, when I perform a differential backup, setting the parent of that checkpoint to
the last full checkpoint, I have problems when listing them. It tells me that the parent
of the differential checkpoint is the last incremental checkpoint, instead of the full
checkpoint. And I don't understand why, because when I perform the backup-begin, I
specify the full checkpoint in the "incremental" label, and the bitmap generated
from the disk is all the data from the full checkpoint on.
I put the xmls that I used:
FULL BACKUP:
dombackup.xml:
```
<?xml version="1.0" encoding="UTF-8"
standalone="yes"?>
<domainbackup mode="pull">
<server name="localhost" port="10809"/>
<disks>
<disk name="vda" type="file">
<scratch file="/tmp/libvirt-full-30-vda-debian12.scratch"/>
</disk>
<disk name="vdb" type="file">
<scratch file="/tmp/libvirt-full-30-vdb-debian12.scratch"/>
</disk>
</disks>
</domainbackup>
```
checkpoint.xml
```
<?xml version="1.0" encoding="UTF-8"
standalone="yes"?>
<domaincheckpoint>
<name>Full-30-Debian12</name>
<disks>
<disk name="vda" bitmap="Full-30-Debian12"
checkpoint="bitmap"/>
<disk name="vdb" bitmap="Full-30-Debian12"
checkpoint="bitmap"/>
<disk name="sda" checkpoint="no"/>
</disks>
</domaincheckpoint>
```
--------------------------------------------------------
INCREMENTAL BACKUP:
dombackup.xml
```
<?xml version="1.0" encoding="UTF-8"
standalone="yes"?>
<domainbackup mode="pull">
<server name="localhost" port="10809"/>
<incremental>Full-30-Debian12</incremental>
<disks>
<disk name="vda" type="file">
<scratch
file="/tmp/libvirt-incremental-35-vda-debian12.scratch"/>
</disk>
<disk name="vdb" type="file">
<scratch
file="/tmp/libvirt-incremental-35-vdb-debian12.scratch"/>
</disk>
</disks>
</domainbackup>
```
checkpoint.xml
```
<?xml version="1.0" encoding="UTF-8"
standalone="yes"?>
<domaincheckpoint>
<name>Incremental-31-Debian12</name>
<parent>
<name>Full-30-Debian12</name>
</parent>
<disks>
<disk name="vda" bitmap="Incremental-31-Debian12"
checkpoint="bitmap"/>
<disk name="vdb" bitmap="Incremental-31-Debian12"
checkpoint="bitmap"/>
<disk name="sda" checkpoint="no"/>
</disks>
</domaincheckpoint>
```
-----------------------------------------------------------------
DIFFERENTIAL BACKUP:
dombackup.xml
```
<?xml version="1.0" encoding="UTF-8"
standalone="yes"?>
<domainbackup mode="pull">
<server name="localhost" port="10809"/>
<incremental>Full-30-Debian12</incremental>
<disks>
<disk name="vda" type="file">
<scratch
file="/tmp/libvirt-differential-36-vda-debian12.scratch"/>
</disk>
<disk name="vdb" type="file">
<scratch
file="/tmp/libvirt-differential-36-vdb-debian12.scratch"/>
</disk>
</disks>
</domainbackup>
```
checkpoint.xml
```
<?xml version="1.0" encoding="UTF-8"
standalone="yes"?>
<domaincheckpoint>
<name>Differential-32-Debian12</name>
<parent>
<name>Full-30-Debian12</name>
</parent>
<disks>
<disk name="vda" bitmap="Differential-32-Debian12"
checkpoint="bitmap"/>
<disk name="vdb" bitmap="Differential-32-Debian12"
checkpoint="bitmap"/>
<disk name="sda" checkpoint="no"/>
</disks>
</domaincheckpoint>
```
-----------------------------------------------------------------------
After apply several "virsh backup-begin" with these files:
```
virsh checkpoint-list debian12 --topological --parent
Name Creation Time
Parent
--------------------------------------------------------------------------------------------------------------------------------
Full-30-Debian12 2025-07-09 17:08:31 +0200
Incremental-31-Debian12 2025-07-09 17:34:56 +0200 Full-30-Debian12
Differential-32-Debian12 2025-07-09 17:37:51 +0200
Incremental-31-Debian12
```
I do not know why the parent of "Differential-32-Debian12" is
"Incremental-31-Debian12" instead of "Full-30-Debian12". Any ideas?
Show replies by date