Closed Franco-Sparrow closed 1 year ago
As you have seen bitmaps are synchronized into the qcow2 when the VM is poweroff. While it is running they are kept in libvirt. The problem in this situation is that when the VM is resumed the bitmaps are not redefined by libvirt and thus they are not cleaned in the cleanup phase of the reset opereation.
This commits solve the issue 7471016edbf5739e64b849b4d8d50bc
You can easily take the new file: https://github.com/OpenNebula/one/blob/master/src/tm_mad/lib/backup_qcow2.rb
Thanks Sir, for your quick response here. We will test from our end and let you know the results.
Cheers
@rsmontero thanks for your commits. Its looks like the issue is now fixed. I made a deep round of tests backups over VM 36
. I will leave the tests here, if someone else wants to try it by itself (it should be needed for a every new ON release from now on, in order to test the backups)
RUNNING
to POWEROFF
POWEROFF
to RUNNING
RUNNING
to POWEROFF
POWEROFF
to RUNNING
Add the following lines in the nodes and orchestrator:
cat << EOF > vars
VM_ID=36
DS_ID=100
EOF
source vars
Edit the /var/lib/one/remotes/tm/lib/backup_qcow2.rb
:
sudo -u oneadmin nano /var/lib/one/remotes/tm/lib/backup_qcow2.rb
Edit the following line, for backup_qcow2.rb
logs:
LOG_FILE = '/var/log/one/backup_qcow2.log'
Sync the hosts:
sudo -u oneadmin onehost sync -f
* Adding ON-DEV-N1-kvm to upgrade
[========================================] 1/1 ON-DEV-N1-kvm
All hosts updated successfully.
Create file test-img82-disk.0.0
inside the VM 36
:
touch test-img82-disk.0.0
Executing backup:
source vars
onevm backup -d $DS_ID $VM_ID
File /var/log/one/36.log
:
Wed May 10 12:09:37 2023 [Z0][VM][I]: New LCM state is BACKUP
Wed May 10 12:09:43 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: prebackup_live.
Wed May 10 12:09:48 2023 [Z0][VMM][I]: Successfully execute operation: backup.
Wed May 10 12:09:50 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: postbackup_live.
Wed May 10 12:09:50 2023 [Z0][VMM][I]: VM backup successfully created.
Wed May 10 12:09:50 2023 [Z0][VM][I]: New LCM state is RUNNING
File /var/log/one/backup_qcow2.log
:
12:09:39.759 [CMD]: virsh --connect qemu:///system checkpoint-list --name 0f297c4b-001f-434d-9123-739342da23fb
12:09:39.777 [CMD]: DONE
12:09:39.777 [CMD]: qemu-img info --output json --force-share /var/lib/datastores/local_mount/0/36/disk.0.snap/0
12:09:39.785 [CMD]: DONE
12:09:39.788 [CMD]: virsh --connect qemu:///system domfsfreeze 0f297c4b-001f-434d-9123-739342da23fb
12:09:39.836 [CMD]: DONE
12:09:39.836 [CMD]: virsh --connect qemu:///system snapshot-create-as --name one-36-backup --disk-only --atomic --diskspec vda,file=/var/lib/one//datastores/0/36/tmp/overlay_0.qcow2 0f297c4b-001f-434d-9123-739342da23fb
12:09:40.315 [CMD]: DONE
12:09:40.315 [CMD]: virsh --connect qemu:///system checkpoint-create --xmlfile /var/lib/one//datastores/0/36/tmp/checkpoint.xml 0f297c4b-001f-434d-9123-739342da23fb
12:09:40.435 [CMD]: DONE
12:09:40.435 [CMD]: virsh --connect qemu:///system domfsthaw 0f297c4b-001f-434d-9123-739342da23fb
12:09:40.565 [CMD]: DONE
12:09:40.583 [CMD]: qemu-img convert -m 4 -O qcow2 -U /var/lib/datastores/local_mount/0/36/disk.0.snap/0 /var/lib/one//datastores/0/36/backup/disk.0.0
12:09:43.249 [CMD]: DONE
12:09:43.249 [BCK]: Full backup done in 3.464426827s
12:09:49.365 [CMD]: virsh --connect qemu:///system blockcommit --base /var/lib/one//datastores/0/36/disk.0 --active --pivot --keep-relative 0f297c4b-001f-434d-9123-739342da23fb vda
12:09:50.564 [CMD]: DONE
12:09:50.564 [CMD]: virsh --connect qemu:///system snapshot-delete --snapshotname one-36-backup --metadata 0f297c4b-001f-434d-9123-739342da23fb
12:09:50.582 [CMD]: DONE
Checking backup image for current chain of increments:
oneimage show 82
# [...]
BACKUP INCREMENTS
ID PID T SIZE DATE SOURCE
0 -1 F 118M 05/10 12:09:50 33a8ff
Checking the current checkpoints:
source vars
virsh checkpoint-list one-$VM_ID
Name Creation Time
---------------------------------------
one-36-0 2023-05-10 12:09:40 -0400
Checking bitmaps:
source vars
qemu-img info --output json --force-share /var/lib/one/datastores/0/$VM_ID/disk.0
{
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 3346432,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
}
Checking bitmaps and dirty-bitmaps through virsh qemu-monitor-command
:
source vars
virsh qemu-monitor-command one-$VM_ID --pretty '{"execute": "query-block", "arguments": {}}'
{
"return": [
{
"io-status": "ok",
"device": "",
"locked": false,
"removable": false,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"backing-image": {
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 66424832,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"dirty-flag": false
},
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one//datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 3346432,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
},
"iops_wr": 0,
"ro": false,
"node-name": "libvirt-2-format",
"backing_file_depth": 1,
"drv": "qcow2",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"backing_file": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-bitmaps": [
{
"name": "one-36-0",
"recording": true,
"persistent": true,
"busy": false,
"granularity": 65536,
"count": 393216
}
],
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": true,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.0"
},
"qdev": "/machine/peripheral/virtio-disk0/virtio-backend",
"type": "unknown"
},
{
"io-status": "ok",
"device": "",
"locked": true,
"removable": true,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"virtual-size": 372736,
"filename": "/var/lib/one//datastores/0/36/disk.1",
"format": "raw",
"actual-size": 372736,
"dirty-flag": false
},
"iops_wr": 0,
"ro": true,
"node-name": "libvirt-5-format",
"backing_file_depth": 0,
"drv": "raw",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": false,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.1"
},
"qdev": "ide0-0-0",
"tray_open": false,
"type": "unknown"
}
],
"id": "libvirt-1583"
}
Create file test-img82-disk.0.1
inside the VM 36
:
touch test-img82-disk.0.1
Executing backup:
source vars
onevm backup -d $DS_ID $VM_ID
File /var/log/one/36.log
:
Wed May 10 12:17:08 2023 [Z0][VM][I]: New LCM state is BACKUP
Wed May 10 12:17:10 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: prebackup_live.
Wed May 10 12:17:13 2023 [Z0][VMM][I]: Successfully execute operation: backup.
Wed May 10 12:17:14 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: postbackup_live.
Wed May 10 12:17:14 2023 [Z0][VMM][I]: VM backup successfully created.
Wed May 10 12:17:14 2023 [Z0][VM][I]: New LCM state is RUNNING
File /var/log/one/backup_qcow2.log
:
12:17:09.936 [CMD]: virsh --connect qemu:///system checkpoint-list --name 0f297c4b-001f-434d-9123-739342da23fb
12:17:09.954 [CMD]: DONE
12:17:09.955 [CMD]: virsh --connect qemu:///system domfsfreeze 0f297c4b-001f-434d-9123-739342da23fb
12:17:10.011 [CMD]: DONE
12:17:10.015 [CMD]: qemu-img create -f qcow2 /var/lib/one//datastores/0/36/tmp/scracth.0.qcow2 256M
12:17:10.085 [CMD]: DONE
12:17:10.086 [CMD]: virsh --connect qemu:///system backup-begin --reuse-external --backupxml /var/lib/one//datastores/0/36/tmp/backup.xml --checkpointxml /var/lib/one//datastores/0/36/tmp/checkpoint.xml 0f297c4b-001f-434d-9123-739342da23fb
12:17:10.523 [CMD]: DONE
12:17:10.523 [CMD]: virsh --connect qemu:///system domfsthaw 0f297c4b-001f-434d-9123-739342da23fb
12:17:10.600 [CMD]: DONE
12:17:10.603 [CMD]: nbdinfo --json --map=qemu:dirty-bitmap:backup-vda nbd+unix:///vda?socket=/var/lib/one//datastores/0/36/backup.socket
12:17:10.620 [CMD]: DONE
12:17:10.621 [CMD]: qemu-img create -f qcow2 -F raw -b nbd+unix:///vda?socket=/var/lib/one//datastores/0/36/backup.socket /var/lib/one//datastores/0/36/backup/disk.0.1
12:17:10.692 [CMD]: DONE
12:17:10.693 [CMD]: qemu-io
12:17:10.922 [CMD]: DONE
12:17:10.922 [BCK]: Incremental backup done in 0.968132316s
12:17:10.922 [CMD]: virsh --connect qemu:///system domjobabort 0f297c4b-001f-434d-9123-739342da23fb
12:17:10.943 [CMD]: DONE
12:17:10.943 [CMD]: virsh --connect qemu:///system checkpoint-list --name 0f297c4b-001f-434d-9123-739342da23fb
12:17:10.961 [CMD]: DONE
12:17:10.962 [CMD]: qemu-img info --output json --force-share /var/lib/datastores/local_mount/0/36/disk.0.snap/0
12:17:10.967 [CMD]: DONE
Checking backup image for current chain of increments:
oneimage show 82
# [...]
BACKUP INCREMENTS
ID PID T SIZE DATE SOURCE
0 -1 F 118M 05/10 12:09:50 33a8ff
1 0 I 1M 05/10 12:17:14 e50606
Checking the current checkpoints:
source vars
virsh checkpoint-list one-$VM_ID
Name Creation Time
---------------------------------------
one-36-0 2023-05-10 12:09:40 -0400
one-36-1 2023-05-10 12:17:10 -0400
Checking bitmaps:
source vars
qemu-img info --output json --force-share /var/lib/one/datastores/0/$VM_ID/disk.0
{
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 3346432,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
}
Checking bitmaps and dirty-bitmaps through virsh qemu-monitor-command
:
source vars
virsh qemu-monitor-command one-$VM_ID --pretty '{"execute": "query-block", "arguments": {}}'
{
"return": [
{
"io-status": "ok",
"device": "",
"locked": false,
"removable": false,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"backing-image": {
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 66424832,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"dirty-flag": false
},
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one//datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 3346432,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
},
"iops_wr": 0,
"ro": false,
"node-name": "libvirt-2-format",
"backing_file_depth": 1,
"drv": "qcow2",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"backing_file": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-bitmaps": [
{
"name": "one-36-1",
"recording": true,
"persistent": true,
"busy": false,
"granularity": 65536,
"count": 524288
},
{
"name": "one-36-0",
"recording": true,
"persistent": true,
"busy": false,
"granularity": 65536,
"count": 589824
}
],
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": true,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.0"
},
"qdev": "/machine/peripheral/virtio-disk0/virtio-backend",
"type": "unknown"
},
{
"io-status": "ok",
"device": "",
"locked": true,
"removable": true,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"virtual-size": 372736,
"filename": "/var/lib/one//datastores/0/36/disk.1",
"format": "raw",
"actual-size": 372736,
"dirty-flag": false
},
"iops_wr": 0,
"ro": true,
"node-name": "libvirt-5-format",
"backing_file_depth": 0,
"drv": "raw",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": false,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.1"
},
"qdev": "ide0-0-0",
"tray_open": false,
"type": "unknown"
}
],
"id": "libvirt-2401"
}
Create file test-img82-disk.0.2
inside the VM 36
:
touch test-img82-disk.0.2
Executing backup:
source vars
onevm backup -d $DS_ID $VM_ID
File /var/log/one/36.log
:
Wed May 10 12:23:10 2023 [Z0][VM][I]: New LCM state is BACKUP
Wed May 10 12:23:13 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: prebackup_live.
Wed May 10 12:23:15 2023 [Z0][VMM][I]: Successfully execute operation: backup.
Wed May 10 12:23:16 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: postbackup_live.
Wed May 10 12:23:16 2023 [Z0][VMM][I]: VM backup successfully created.
Wed May 10 12:23:16 2023 [Z0][VM][I]: New LCM state is RUNNING
File /var/log/one/backup_qcow2.log
:
12:23:12.061 [CMD]: virsh --connect qemu:///system checkpoint-list --name 0f297c4b-001f-434d-9123-739342da23fb
12:23:12.079 [CMD]: DONE
12:23:12.080 [CMD]: virsh --connect qemu:///system domfsfreeze 0f297c4b-001f-434d-9123-739342da23fb
12:23:12.149 [CMD]: DONE
12:23:12.152 [CMD]: qemu-img create -f qcow2 /var/lib/one//datastores/0/36/tmp/scracth.0.qcow2 256M
12:23:12.211 [CMD]: DONE
12:23:12.211 [CMD]: virsh --connect qemu:///system backup-begin --reuse-external --backupxml /var/lib/one//datastores/0/36/tmp/backup.xml --checkpointxml /var/lib/one//datastores/0/36/tmp/checkpoint.xml 0f297c4b-001f-434d-9123-739342da23fb
12:23:12.641 [CMD]: DONE
12:23:12.641 [CMD]: virsh --connect qemu:///system domfsthaw 0f297c4b-001f-434d-9123-739342da23fb
12:23:12.716 [CMD]: DONE
12:23:12.719 [CMD]: nbdinfo --json --map=qemu:dirty-bitmap:backup-vda nbd+unix:///vda?socket=/var/lib/one//datastores/0/36/backup.socket
12:23:12.726 [CMD]: DONE
12:23:12.726 [CMD]: qemu-img create -f qcow2 -F raw -b nbd+unix:///vda?socket=/var/lib/one//datastores/0/36/backup.socket /var/lib/one//datastores/0/36/backup/disk.0.2
12:23:12.794 [CMD]: DONE
12:23:12.794 [CMD]: qemu-io
12:23:13.034 [CMD]: DONE
12:23:13.034 [BCK]: Incremental backup done in 0.955029454s
12:23:13.034 [CMD]: virsh --connect qemu:///system domjobabort 0f297c4b-001f-434d-9123-739342da23fb
12:23:13.054 [CMD]: DONE
12:23:13.055 [CMD]: virsh --connect qemu:///system checkpoint-list --name 0f297c4b-001f-434d-9123-739342da23fb
12:23:13.072 [CMD]: DONE
12:23:13.072 [CMD]: qemu-img info --output json --force-share /var/lib/datastores/local_mount/0/36/disk.0.snap/0
12:23:13.077 [CMD]: DONE
12:23:13.078 [CMD]: virsh --connect qemu:///system checkpoint-delete 0f297c4b-001f-434d-9123-739342da23fb one-36-0
12:23:13.399 [CMD]: DONE
Checking backup image for current chain of increments:
oneimage show 82
# [...]
BACKUP INCREMENTS
ID PID T SIZE DATE SOURCE
0 -1 F 118M 05/10 12:09:50 33a8ff
1 0 I 1M 05/10 12:17:14 e50606
2 1 I 1M 05/10 12:23:16 5b2aea
Checking the current checkpoints:
source vars
virsh checkpoint-list one-$VM_ID
Name Creation Time
---------------------------------------
one-36-1 2023-05-10 12:17:10 -0400
one-36-2 2023-05-10 12:23:12 -0400
Checking bitmaps:
source vars
qemu-img info --output json --force-share /var/lib/one/datastores/0/$VM_ID/disk.0
{
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 3346432,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
}
Checking bitmaps and dirty-bitmaps through virsh qemu-monitor-command
:
source vars
virsh qemu-monitor-command one-$VM_ID --pretty '{"execute": "query-block", "arguments": {}}'
{
"return": [
{
"io-status": "ok",
"device": "",
"locked": false,
"removable": false,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"backing-image": {
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 66424832,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"dirty-flag": false
},
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one//datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 3346432,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
},
"iops_wr": 0,
"ro": false,
"node-name": "libvirt-2-format",
"backing_file_depth": 1,
"drv": "qcow2",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"backing_file": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-bitmaps": [
{
"name": "one-36-2",
"recording": true,
"persistent": true,
"busy": false,
"granularity": 65536,
"count": 393216
},
{
"name": "one-36-1",
"recording": true,
"persistent": true,
"busy": false,
"granularity": 65536,
"count": 589824
}
],
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": true,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.0"
},
"qdev": "/machine/peripheral/virtio-disk0/virtio-backend",
"type": "unknown"
},
{
"io-status": "ok",
"device": "",
"locked": true,
"removable": true,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"virtual-size": 372736,
"filename": "/var/lib/one//datastores/0/36/disk.1",
"format": "raw",
"actual-size": 372736,
"dirty-flag": false
},
"iops_wr": 0,
"ro": true,
"node-name": "libvirt-5-format",
"backing_file_depth": 0,
"drv": "raw",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": false,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.1"
},
"qdev": "ide0-0-0",
"tray_open": false,
"type": "unknown"
}
],
"id": "libvirt-3179"
}
RUNNING
to POWEROFF
Create file test-img82-disk.0.3
inside the VM 36
:
touch test-img82-disk.0.3
Poweroff the VM:
source vars
onevm poweroff $VM_ID
Checking bitmaps:
source vars
qemu-img info --output json --force-share /var/lib/one/datastores/0/$VM_ID/disk.0
{
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 3346432,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"bitmaps": [
{
"flags": [
"auto"
],
"name": "one-36-2",
"granularity": 65536
},
{
"flags": [
"auto"
],
"name": "one-36-1",
"granularity": 65536
}
],
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
}
Executing backup:
source vars
onevm backup -d $DS_ID $VM_ID
File /var/log/one/36.log
:
Wed May 10 12:38:28 2023 [Z0][VM][I]: New LCM state is BACKUP_POWEROFF
Wed May 10 12:38:33 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: prebackup.
Wed May 10 12:38:35 2023 [Z0][VMM][I]: Successfully execute operation: backup.
Wed May 10 12:38:36 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: postbackup.
Wed May 10 12:38:36 2023 [Z0][VMM][I]: VM backup successfully created.
Wed May 10 12:38:36 2023 [Z0][VM][I]: New state is POWEROFF
Wed May 10 12:38:36 2023 [Z0][VM][I]: New LCM state is LCM_INIT
File /var/log/one/backup_qcow2.log
:
12:38:31.459 [CMD]: nbdinfo --json --map=qemu:dirty-bitmap:one-36-2 nbd+unix:///?socket=/var/lib/datastores/local_mount/0/36/disk.0.snap/0.socket
12:38:31.477 [CMD]: DONE
12:38:31.478 [CMD]: qemu-img create -f qcow2 -F raw -b nbd+unix:///?socket=/var/lib/datastores/local_mount/0/36/disk.0.snap/0.socket /var/lib/one//datastores/0/36/backup/disk.0.3
12:38:31.561 [CMD]: DONE
12:38:31.561 [CMD]: qemu-io
12:38:31.870 [CMD]: DONE
12:38:33.221 [CMD]: qemu-img info --output json --force-share /var/lib/datastores/local_mount/0/36/disk.0.snap/0
12:38:33.227 [CMD]: DONE
12:38:33.227 [CMD]: qemu-img bitmap --remove /var/lib/datastores/local_mount/0/36/disk.0.snap/0 one-36-1
12:38:33.357 [CMD]: DONE
12:38:33.357 [CMD]: qemu-img bitmap --add /var/lib/datastores/local_mount/0/36/disk.0.snap/0 one-36-3
12:38:33.428 [CMD]: DONE
12:38:33.428 [BCK]: Incremental backup done in 2.972525751s
Checking backup image for current chain of increments:
oneimage show 82
# [...]
BACKUP INCREMENTS
ID PID T SIZE DATE SOURCE
0 -1 F 118M 05/10 12:09:50 33a8ff
1 0 I 1M 05/10 12:17:14 e50606
2 1 I 1M 05/10 12:23:16 5b2aea
3 2 I 2M 05/10 12:38:36 07bd13
Checking bitmaps:
source vars
qemu-img info --output json --force-share /var/lib/one/datastores/0/$VM_ID/disk.0
{
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 4268032,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"bitmaps": [
{
"flags": [
"auto"
],
"name": "one-36-2",
"granularity": 65536
},
{
"flags": [
"auto"
],
"name": "one-36-3",
"granularity": 65536
}
],
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
}
POWEROFF
to RUNNING
Resume the VM:
source vars
onevm resume $VM_ID
Create file test-img82-disk.0.4
inside the VM 36
:
touch test-img82-disk.0.4
Executing backup:
source vars
onevm backup -d $DS_ID $VM_ID
File /var/log/one/36.log
:
Wed May 10 12:43:50 2023 [Z0][VM][I]: New LCM state is BACKUP
Wed May 10 12:43:54 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: prebackup_live.
Wed May 10 12:43:56 2023 [Z0][VMM][I]: Successfully execute operation: backup.
Wed May 10 12:43:57 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: postbackup_live.
Wed May 10 12:43:57 2023 [Z0][VMM][I]: VM backup successfully created.
Wed May 10 12:43:57 2023 [Z0][VM][I]: New LCM state is RUNNING
File /var/log/one/backup_qcow2.log
:
12:43:52.427 [CMD]: virsh --connect qemu:///system checkpoint-list --name 0f297c4b-001f-434d-9123-739342da23fb
12:43:52.446 [CMD]: DONE
12:43:52.448 [CMD]: virsh --connect qemu:///system checkpoint-create --xmlfile /var/lib/one//datastores/0/36/tmp/checkpoint.xml --redefine 0f297c4b-001f-434d-9123-739342da23fb
12:43:52.533 [CMD]: DONE
12:43:52.534 [CMD]: virsh --connect qemu:///system domfsfreeze 0f297c4b-001f-434d-9123-739342da23fb
12:43:52.626 [CMD]: DONE
12:43:52.630 [CMD]: qemu-img create -f qcow2 /var/lib/one//datastores/0/36/tmp/scracth.0.qcow2 256M
12:43:52.706 [CMD]: DONE
12:43:52.712 [CMD]: virsh --connect qemu:///system backup-begin --reuse-external --backupxml /var/lib/one//datastores/0/36/tmp/backup.xml --checkpointxml /var/lib/one//datastores/0/36/tmp/checkpoint.xml 0f297c4b-001f-434d-9123-739342da23fb
12:43:53.128 [CMD]: DONE
12:43:53.129 [CMD]: virsh --connect qemu:///system domfsthaw 0f297c4b-001f-434d-9123-739342da23fb
12:43:53.210 [CMD]: DONE
12:43:53.212 [CMD]: nbdinfo --json --map=qemu:dirty-bitmap:backup-vda nbd+unix:///vda?socket=/var/lib/one//datastores/0/36/backup.socket
12:43:53.219 [CMD]: DONE
12:43:53.219 [CMD]: qemu-img create -f qcow2 -F raw -b nbd+unix:///vda?socket=/var/lib/one//datastores/0/36/backup.socket /var/lib/one//datastores/0/36/backup/disk.0.4
12:43:53.296 [CMD]: DONE
12:43:53.296 [CMD]: qemu-io
12:43:53.606 [CMD]: DONE
12:43:53.606 [BCK]: Incremental backup done in 1.073567356s
12:43:53.606 [CMD]: virsh --connect qemu:///system domjobabort 0f297c4b-001f-434d-9123-739342da23fb
12:43:53.628 [CMD]: DONE
12:43:53.628 [CMD]: virsh --connect qemu:///system checkpoint-list --name 0f297c4b-001f-434d-9123-739342da23fb
12:43:53.646 [CMD]: DONE
12:43:53.647 [CMD]: qemu-img info --output json --force-share /var/lib/datastores/local_mount/0/36/disk.0.snap/0
12:43:53.653 [CMD]: DONE
12:43:53.655 [CMD]: virsh --connect qemu:///system checkpoint-create --xmlfile /var/lib/one//datastores/0/36/tmp/checkpoint.xml --redefine 0f297c4b-001f-434d-9123-739342da23fb
12:43:54.007 [CMD]: DONE
12:43:54.007 [CMD]: virsh --connect qemu:///system checkpoint-delete 0f297c4b-001f-434d-9123-739342da23fb one-36-2
12:43:54.076 [CMD]: DONE
Checking backup image for current chain of increments:
oneimage show 82
# [...]
BACKUP INCREMENTS
ID PID T SIZE DATE SOURCE
0 -1 F 118M 05/10 12:09:50 33a8ff
1 0 I 1M 05/10 12:17:14 e50606
2 1 I 1M 05/10 12:23:16 5b2aea
3 2 I 2M 05/10 12:38:36 07bd13
4 3 I 2M 05/10 12:43:57 e20101
Checking the current checkpoints:
source vars
virsh checkpoint-list one-$VM_ID
Name Creation Time
---------------------------------------
one-36-3 2023-05-10 12:43:52 -0400
one-36-4 2023-05-10 12:43:52 -0400
Checking bitmaps:
source vars
qemu-img info --output json --force-share /var/lib/one/datastores/0/$VM_ID/disk.0
{
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 4268032,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"bitmaps": [
{
"flags": [
"in-use",
"auto"
],
"name": "one-36-3",
"granularity": 65536
}
],
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
}
Checking bitmaps and dirty-bitmaps through virsh qemu-monitor-command
:
source vars
virsh qemu-monitor-command one-$VM_ID --pretty '{"execute": "query-block", "arguments": {}}'
{
"return": [
{
"io-status": "ok",
"device": "",
"locked": false,
"removable": false,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"backing-image": {
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 66424832,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"dirty-flag": false
},
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one//datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 4268032,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"bitmaps": [
{
"flags": [
"in-use",
"auto"
],
"name": "one-36-3",
"granularity": 65536
}
],
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
},
"iops_wr": 0,
"ro": false,
"node-name": "libvirt-2-format",
"backing_file_depth": 1,
"drv": "qcow2",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"backing_file": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-bitmaps": [
{
"name": "one-36-4",
"recording": true,
"persistent": true,
"busy": false,
"granularity": 65536,
"count": 327680
},
{
"name": "one-36-3",
"recording": true,
"persistent": true,
"busy": false,
"granularity": 65536,
"count": 1114112
}
],
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": true,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.0"
},
"qdev": "/machine/peripheral/virtio-disk0/virtio-backend",
"type": "unknown"
},
{
"io-status": "ok",
"device": "",
"locked": true,
"removable": true,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"virtual-size": 372736,
"filename": "/var/lib/one//datastores/0/36/disk.1",
"format": "raw",
"actual-size": 372736,
"dirty-flag": false
},
"iops_wr": 0,
"ro": true,
"node-name": "libvirt-1-format",
"backing_file_depth": 0,
"drv": "raw",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": false,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.1"
},
"qdev": "ide0-0-0",
"tray_open": false,
"type": "unknown"
}
],
"id": "libvirt-979"
}
Create file test-img83-disk.0.0
inside the VM 36
:
touch test-img83-disk.0.0
Executing backup:
source vars
onevm backup --reset -d $DS_ID $VM_ID
File /var/log/one/36.log
:
Wed May 10 12:48:14 2023 [Z0][VM][I]: New LCM state is BACKUP
Wed May 10 12:48:20 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: prebackup_live.
Wed May 10 12:48:25 2023 [Z0][VMM][I]: Successfully execute operation: backup.
Wed May 10 12:48:27 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: postbackup_live.
Wed May 10 12:48:27 2023 [Z0][VMM][I]: VM backup successfully created.
Wed May 10 12:48:27 2023 [Z0][VM][I]: New LCM state is RUNNING
File /var/log/one/backup_qcow2.log
:
12:48:16.228 [CMD]: virsh --connect qemu:///system checkpoint-list --name 0f297c4b-001f-434d-9123-739342da23fb
12:48:16.247 [CMD]: DONE
12:48:16.247 [CMD]: qemu-img info --output json --force-share /var/lib/datastores/local_mount/0/36/disk.0.snap/0
12:48:16.253 [CMD]: DONE
12:48:16.253 [CMD]: virsh --connect qemu:///system checkpoint-delete 0f297c4b-001f-434d-9123-739342da23fb one-36-3
12:48:16.314 [CMD]: DONE
12:48:16.314 [CMD]: virsh --connect qemu:///system checkpoint-delete 0f297c4b-001f-434d-9123-739342da23fb one-36-4
12:48:16.337 [CMD]: DONE
12:48:16.341 [CMD]: virsh --connect qemu:///system domfsfreeze 0f297c4b-001f-434d-9123-739342da23fb
12:48:16.401 [CMD]: DONE
12:48:16.401 [CMD]: virsh --connect qemu:///system snapshot-create-as --name one-36-backup --disk-only --atomic --diskspec vda,file=/var/lib/one//datastores/0/36/tmp/overlay_0.qcow2 0f297c4b-001f-434d-9123-739342da23fb
12:48:16.885 [CMD]: DONE
12:48:16.885 [CMD]: virsh --connect qemu:///system checkpoint-create --xmlfile /var/lib/one//datastores/0/36/tmp/checkpoint.xml 0f297c4b-001f-434d-9123-739342da23fb
12:48:16.974 [CMD]: DONE
12:48:16.974 [CMD]: virsh --connect qemu:///system domfsthaw 0f297c4b-001f-434d-9123-739342da23fb
12:48:17.104 [CMD]: DONE
12:48:17.104 [CMD]: qemu-img convert -m 4 -O qcow2 -U /var/lib/datastores/local_mount/0/36/disk.0.snap/0 /var/lib/one//datastores/0/36/backup/disk.0.0
12:48:20.059 [CMD]: DONE
12:48:20.059 [BCK]: Full backup done in 3.72172468s
12:48:26.398 [CMD]: virsh --connect qemu:///system blockcommit --base /var/lib/one//datastores/0/36/disk.0 --active --pivot --keep-relative 0f297c4b-001f-434d-9123-739342da23fb vda
12:48:27.606 [CMD]: DONE
12:48:27.609 [CMD]: virsh --connect qemu:///system snapshot-delete --snapshotname one-36-backup --metadata 0f297c4b-001f-434d-9123-739342da23fb
12:48:27.627 [CMD]: DONE
Checking backup image for current chain of increments:
oneimage show 83
# [...]
BACKUP INCREMENTS
ID PID T SIZE DATE SOURCE
0 -1 F 118M 05/10 12:48:27 632618
Checking the current checkpoints:
source vars
virsh checkpoint-list one-$VM_ID
Name Creation Time
---------------------------------------
one-36-0 2023-05-10 12:48:16 -0400
Checking bitmaps:
source vars
qemu-img info --output json --force-share /var/lib/one/datastores/0/$VM_ID/disk.0
{
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 4268032,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
}
Checking bitmaps and dirty-bitmaps through virsh qemu-monitor-command
:
source vars
virsh qemu-monitor-command one-$VM_ID --pretty '{"execute": "query-block", "arguments": {}}'
{
"return": [
{
"io-status": "ok",
"device": "",
"locked": false,
"removable": false,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"backing-image": {
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 66424832,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"dirty-flag": false
},
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one//datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 4268032,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
},
"iops_wr": 0,
"ro": false,
"node-name": "libvirt-2-format",
"backing_file_depth": 1,
"drv": "qcow2",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"backing_file": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-bitmaps": [
{
"name": "one-36-0",
"recording": true,
"persistent": true,
"busy": false,
"granularity": 65536,
"count": 327680
}
],
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": true,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.0"
},
"qdev": "/machine/peripheral/virtio-disk0/virtio-backend",
"type": "unknown"
},
{
"io-status": "ok",
"device": "",
"locked": true,
"removable": true,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"virtual-size": 372736,
"filename": "/var/lib/one//datastores/0/36/disk.1",
"format": "raw",
"actual-size": 372736,
"dirty-flag": false
},
"iops_wr": 0,
"ro": true,
"node-name": "libvirt-1-format",
"backing_file_depth": 0,
"drv": "raw",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": false,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.1"
},
"qdev": "ide0-0-0",
"tray_open": false,
"type": "unknown"
}
],
"id": "libvirt-1444"
}
Create file test-img83-disk.0.1
inside the VM 36
:
touch test-img83-disk.0.1
Executing backup:
source vars
onevm backup -d $DS_ID $VM_ID
File /var/log/one/36.log
:
Wed May 10 12:51:59 2023 [Z0][VM][I]: New LCM state is BACKUP
Wed May 10 12:52:02 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: prebackup_live.
Wed May 10 12:52:04 2023 [Z0][VMM][I]: Successfully execute operation: backup.
Wed May 10 12:52:06 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: postbackup_live.
Wed May 10 12:52:06 2023 [Z0][VMM][I]: VM backup successfully created.
Wed May 10 12:52:06 2023 [Z0][VM][I]: New LCM state is RUNNING
File /var/log/one/backup_qcow2.log
:
12:52:01.676 [CMD]: virsh --connect qemu:///system checkpoint-list --name 0f297c4b-001f-434d-9123-739342da23fb
12:52:01.694 [CMD]: DONE
12:52:01.695 [CMD]: virsh --connect qemu:///system domfsfreeze 0f297c4b-001f-434d-9123-739342da23fb
12:52:01.769 [CMD]: DONE
12:52:01.772 [CMD]: qemu-img create -f qcow2 /var/lib/one//datastores/0/36/tmp/scracth.0.qcow2 256M
12:52:01.853 [CMD]: DONE
12:52:01.854 [CMD]: virsh --connect qemu:///system backup-begin --reuse-external --backupxml /var/lib/one//datastores/0/36/tmp/backup.xml --checkpointxml /var/lib/one//datastores/0/36/tmp/checkpoint.xml 0f297c4b-001f-434d-9123-739342da23fb
12:52:02.279 [CMD]: DONE
12:52:02.279 [CMD]: virsh --connect qemu:///system domfsthaw 0f297c4b-001f-434d-9123-739342da23fb
12:52:02.358 [CMD]: DONE
12:52:02.361 [CMD]: nbdinfo --json --map=qemu:dirty-bitmap:backup-vda nbd+unix:///vda?socket=/var/lib/one//datastores/0/36/backup.socket
12:52:02.367 [CMD]: DONE
12:52:02.368 [CMD]: qemu-img create -f qcow2 -F raw -b nbd+unix:///vda?socket=/var/lib/one//datastores/0/36/backup.socket /var/lib/one//datastores/0/36/backup/disk.0.1
12:52:02.432 [CMD]: DONE
12:52:02.432 [CMD]: qemu-io
12:52:02.682 [CMD]: DONE
12:52:02.682 [BCK]: Incremental backup done in 0.987873826s
12:52:02.682 [CMD]: virsh --connect qemu:///system domjobabort 0f297c4b-001f-434d-9123-739342da23fb
12:52:02.703 [CMD]: DONE
12:52:02.703 [CMD]: virsh --connect qemu:///system checkpoint-list --name 0f297c4b-001f-434d-9123-739342da23fb
12:52:02.721 [CMD]: DONE
12:52:02.722 [CMD]: qemu-img info --output json --force-share /var/lib/datastores/local_mount/0/36/disk.0.snap/0
12:52:02.727 [CMD]: DONE
Checking backup image for current chain of increments:
oneimage show 83
# [...]
BACKUP INCREMENTS
ID PID T SIZE DATE SOURCE
0 -1 F 118M 05/10 12:48:27 632618
1 0 I 2M 05/10 12:52:06 b89012
Checking the current checkpoints:
source vars
virsh checkpoint-list one-$VM_ID
Name Creation Time
---------------------------------------
one-36-0 2023-05-10 12:48:16 -0400
one-36-1 2023-05-10 12:52:01 -0400
Checking bitmaps:
source vars
qemu-img info --output json --force-share /var/lib/one/datastores/0/$VM_ID/disk.0
{
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 4268032,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
}
Checking bitmaps and dirty-bitmaps through virsh qemu-monitor-command
:
source vars
virsh qemu-monitor-command one-$VM_ID --pretty '{"execute": "query-block", "arguments": {}}'
{
"return": [
{
"io-status": "ok",
"device": "",
"locked": false,
"removable": false,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"backing-image": {
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 66424832,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"dirty-flag": false
},
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one//datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 4268032,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
},
"iops_wr": 0,
"ro": false,
"node-name": "libvirt-2-format",
"backing_file_depth": 1,
"drv": "qcow2",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"backing_file": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-bitmaps": [
{
"name": "one-36-1",
"recording": true,
"persistent": true,
"busy": false,
"granularity": 65536,
"count": 327680
},
{
"name": "one-36-0",
"recording": true,
"persistent": true,
"busy": false,
"granularity": 65536,
"count": 720896
}
],
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": true,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.0"
},
"qdev": "/machine/peripheral/virtio-disk0/virtio-backend",
"type": "unknown"
},
{
"io-status": "ok",
"device": "",
"locked": true,
"removable": true,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"virtual-size": 372736,
"filename": "/var/lib/one//datastores/0/36/disk.1",
"format": "raw",
"actual-size": 372736,
"dirty-flag": false
},
"iops_wr": 0,
"ro": true,
"node-name": "libvirt-1-format",
"backing_file_depth": 0,
"drv": "raw",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": false,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.1"
},
"qdev": "ide0-0-0",
"tray_open": false,
"type": "unknown"
}
],
"id": "libvirt-1870"
}
Create file test-img83-disk.0.2
inside the VM 36
:
touch test-img83-disk.0.2
Executing backup:
source vars
onevm backup -d $DS_ID $VM_ID
File /var/log/one/36.log
:
Wed May 10 12:54:24 2023 [Z0][VM][I]: New LCM state is BACKUP
Wed May 10 12:54:28 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: prebackup_live.
Wed May 10 12:54:30 2023 [Z0][VMM][I]: Successfully execute operation: backup.
Wed May 10 12:54:31 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: postbackup_live.
Wed May 10 12:54:31 2023 [Z0][VMM][I]: VM backup successfully created.
Wed May 10 12:54:31 2023 [Z0][VM][I]: New LCM state is RUNNING
File /var/log/one/backup_qcow2.log
:
12:54:26.560 [CMD]: virsh --connect qemu:///system checkpoint-list --name 0f297c4b-001f-434d-9123-739342da23fb
12:54:26.578 [CMD]: DONE
12:54:26.579 [CMD]: virsh --connect qemu:///system domfsfreeze 0f297c4b-001f-434d-9123-739342da23fb
12:54:26.673 [CMD]: DONE
12:54:26.677 [CMD]: qemu-img create -f qcow2 /var/lib/one//datastores/0/36/tmp/scracth.0.qcow2 256M
12:54:26.769 [CMD]: DONE
12:54:26.770 [CMD]: virsh --connect qemu:///system backup-begin --reuse-external --backupxml /var/lib/one//datastores/0/36/tmp/backup.xml --checkpointxml /var/lib/one//datastores/0/36/tmp/checkpoint.xml 0f297c4b-001f-434d-9123-739342da23fb
12:54:27.216 [CMD]: DONE
12:54:27.216 [CMD]: virsh --connect qemu:///system domfsthaw 0f297c4b-001f-434d-9123-739342da23fb
12:54:27.316 [CMD]: DONE
12:54:27.319 [CMD]: nbdinfo --json --map=qemu:dirty-bitmap:backup-vda nbd+unix:///vda?socket=/var/lib/one//datastores/0/36/backup.socket
12:54:27.326 [CMD]: DONE
12:54:27.326 [CMD]: qemu-img create -f qcow2 -F raw -b nbd+unix:///vda?socket=/var/lib/one//datastores/0/36/backup.socket /var/lib/one//datastores/0/36/backup/disk.0.2
12:54:27.399 [CMD]: DONE
12:54:27.399 [CMD]: qemu-io
12:54:27.654 [CMD]: DONE
12:54:27.654 [BCK]: Incremental backup done in 1.076439023s
12:54:27.654 [CMD]: virsh --connect qemu:///system domjobabort 0f297c4b-001f-434d-9123-739342da23fb
12:54:27.675 [CMD]: DONE
12:54:27.675 [CMD]: virsh --connect qemu:///system checkpoint-list --name 0f297c4b-001f-434d-9123-739342da23fb
12:54:27.693 [CMD]: DONE
12:54:27.694 [CMD]: qemu-img info --output json --force-share /var/lib/datastores/local_mount/0/36/disk.0.snap/0
12:54:27.699 [CMD]: DONE
12:54:27.699 [CMD]: virsh --connect qemu:///system checkpoint-delete 0f297c4b-001f-434d-9123-739342da23fb one-36-0
12:54:28.021 [CMD]: DONE
Checking backup image for current chain of increments:
oneimage show 83
# [...]
BACKUP INCREMENTS
ID PID T SIZE DATE SOURCE
0 -1 F 118M 05/10 12:48:27 632618
1 0 I 2M 05/10 12:52:06 b89012
2 1 I 1M 05/10 12:54:31 519058
Checking the current checkpoints:
source vars
virsh checkpoint-list one-$VM_ID
Name Creation Time
---------------------------------------
one-36-1 2023-05-10 12:52:01 -0400
one-36-2 2023-05-10 12:54:26 -0400
Checking bitmaps:
source vars
qemu-img info --output json --force-share /var/lib/one/datastores/0/$VM_ID/disk.0
{
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 4268032,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
}
Checking bitmaps and dirty-bitmaps through virsh qemu-monitor-command
:
source vars
virsh qemu-monitor-command one-$VM_ID --pretty '{"execute": "query-block", "arguments": {}}'
{
"return": [
{
"io-status": "ok",
"device": "",
"locked": false,
"removable": false,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"backing-image": {
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 66424832,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"dirty-flag": false
},
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one//datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 4268032,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
},
"iops_wr": 0,
"ro": false,
"node-name": "libvirt-2-format",
"backing_file_depth": 1,
"drv": "qcow2",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"backing_file": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-bitmaps": [
{
"name": "one-36-2",
"recording": true,
"persistent": true,
"busy": false,
"granularity": 65536,
"count": 327680
},
{
"name": "one-36-1",
"recording": true,
"persistent": true,
"busy": false,
"granularity": 65536,
"count": 589824
}
],
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": true,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.0"
},
"qdev": "/machine/peripheral/virtio-disk0/virtio-backend",
"type": "unknown"
},
{
"io-status": "ok",
"device": "",
"locked": true,
"removable": true,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"virtual-size": 372736,
"filename": "/var/lib/one//datastores/0/36/disk.1",
"format": "raw",
"actual-size": 372736,
"dirty-flag": false
},
"iops_wr": 0,
"ro": true,
"node-name": "libvirt-1-format",
"backing_file_depth": 0,
"drv": "raw",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": false,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.1"
},
"qdev": "ide0-0-0",
"tray_open": false,
"type": "unknown"
}
],
"id": "libvirt-2249"
}
RUNNING
to POWEROFF
Create file test-img84-disk.0.0
inside the VM 36
:
touch test-img84-disk.0.0
Poweroff the VM:
source vars
onevm poweroff $VM_ID
Checking bitmaps:
source vars
qemu-img info --output json --force-share /var/lib/one/datastores/0/$VM_ID/disk.0
{
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 4333568,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"bitmaps": [
{
"flags": [
"auto"
],
"name": "one-36-2",
"granularity": 65536
},
{
"flags": [
"auto"
],
"name": "one-36-1",
"granularity": 65536
}
],
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
}
Executing backup:
source vars
onevm backup --reset -d $DS_ID $VM_ID
File /var/log/one/36.log
:
Wed May 10 13:01:03 2023 [Z0][VM][I]: New LCM state is BACKUP_POWEROFF
Wed May 10 13:01:09 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: prebackup.
Wed May 10 13:01:15 2023 [Z0][VMM][I]: Successfully execute operation: backup.
Wed May 10 13:01:16 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: postbackup.
Wed May 10 13:01:16 2023 [Z0][VMM][I]: VM backup successfully created.
Wed May 10 13:01:16 2023 [Z0][VM][I]: New state is POWEROFF
Wed May 10 13:01:16 2023 [Z0][VM][I]: New LCM state is LCM_INIT
File /var/log/one/backup_qcow2.log
:
13:01:06.376 [CMD]: qemu-img convert -m 4 -O qcow2 -U /var/lib/datastores/local_mount/0/36/disk.0.snap/0 /var/lib/one//datastores/0/36/backup/disk.0.0
13:01:09.089 [CMD]: DONE
13:01:09.089 [CMD]: qemu-img info --output json --force-share /var/lib/datastores/local_mount/0/36/disk.0.snap/0
13:01:09.095 [CMD]: DONE
13:01:09.095 [CMD]: qemu-img bitmap --remove /var/lib/datastores/local_mount/0/36/disk.0.snap/0 one-36-2
13:01:09.221 [CMD]: DONE
13:01:09.221 [CMD]: qemu-img bitmap --remove /var/lib/datastores/local_mount/0/36/disk.0.snap/0 one-36-1
13:01:09.273 [CMD]: DONE
13:01:09.274 [CMD]: qemu-img bitmap --add /var/lib/datastores/local_mount/0/36/disk.0.snap/0 one-36-0
13:01:09.309 [CMD]: DONE
13:01:09.310 [BCK]: Full backup done in 2.935092613s
Checking backup image for current chain of increments:
oneimage show 84
# [...]
BACKUP INCREMENTS
ID PID T SIZE DATE SOURCE
0 -1 F 118M 05/10 13:01:16 e6c778
Checking bitmaps:
source vars
qemu-img info --output json --force-share /var/lib/one/datastores/0/$VM_ID/disk.0
{
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 4268032,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"bitmaps": [
{
"flags": [
"auto"
],
"name": "one-36-0",
"granularity": 65536
}
],
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
}
POWEROFF
to RUNNING
Resume the VM:
source vars
onevm resume $VM_ID
Create file test-img84-disk.0.1
inside the VM 36
:
touch test-img84-disk.0.1
Executing backup:
source vars
onevm backup -d $DS_ID $VM_ID
File /var/log/one/36.log
:
Wed May 10 13:06:52 2023 [Z0][VM][I]: New LCM state is BACKUP
Wed May 10 13:06:55 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: prebackup_live.
Wed May 10 13:06:58 2023 [Z0][VMM][I]: Successfully execute operation: backup.
Wed May 10 13:06:59 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: postbackup_live.
Wed May 10 13:06:59 2023 [Z0][VMM][I]: VM backup successfully created.
Wed May 10 13:06:59 2023 [Z0][VM][I]: New LCM state is RUNNING
File /var/log/one/backup_qcow2.log
:
13:06:54.757 [CMD]: virsh --connect qemu:///system checkpoint-list --name 0f297c4b-001f-434d-9123-739342da23fb
13:06:54.776 [CMD]: DONE
13:06:54.779 [CMD]: virsh --connect qemu:///system checkpoint-create --xmlfile /var/lib/one//datastores/0/36/tmp/checkpoint.xml --redefine 0f297c4b-001f-434d-9123-739342da23fb
13:06:54.856 [CMD]: DONE
13:06:54.857 [CMD]: virsh --connect qemu:///system domfsfreeze 0f297c4b-001f-434d-9123-739342da23fb
13:06:54.946 [CMD]: DONE
13:06:54.950 [CMD]: qemu-img create -f qcow2 /var/lib/one//datastores/0/36/tmp/scracth.0.qcow2 256M
13:06:55.018 [CMD]: DONE
13:06:55.031 [CMD]: virsh --connect qemu:///system backup-begin --reuse-external --backupxml /var/lib/one//datastores/0/36/tmp/backup.xml --checkpointxml /var/lib/one//datastores/0/36/tmp/checkpoint.xml 0f297c4b-001f-434d-9123-739342da23fb
13:06:55.453 [CMD]: DONE
13:06:55.453 [CMD]: virsh --connect qemu:///system domfsthaw 0f297c4b-001f-434d-9123-739342da23fb
13:06:55.534 [CMD]: DONE
13:06:55.537 [CMD]: nbdinfo --json --map=qemu:dirty-bitmap:backup-vda nbd+unix:///vda?socket=/var/lib/one//datastores/0/36/backup.socket
13:06:55.554 [CMD]: DONE
13:06:55.554 [CMD]: qemu-img create -f qcow2 -F raw -b nbd+unix:///vda?socket=/var/lib/one//datastores/0/36/backup.socket /var/lib/one//datastores/0/36/backup/disk.0.1
13:06:55.625 [CMD]: DONE
13:06:55.625 [CMD]: qemu-io
13:06:55.918 [CMD]: DONE
13:06:55.918 [BCK]: Incremental backup done in 1.061833988s
13:06:55.918 [CMD]: virsh --connect qemu:///system domjobabort 0f297c4b-001f-434d-9123-739342da23fb
13:06:55.939 [CMD]: DONE
13:06:55.939 [CMD]: virsh --connect qemu:///system checkpoint-list --name 0f297c4b-001f-434d-9123-739342da23fb
13:06:55.957 [CMD]: DONE
13:06:55.958 [CMD]: qemu-img info --output json --force-share /var/lib/datastores/local_mount/0/36/disk.0.snap/0
13:06:55.964 [CMD]: DONE
Checking backup image for current chain of increments:
oneimage show 84
# [...]
BACKUP INCREMENTS
ID PID T SIZE DATE SOURCE
0 -1 F 118M 05/10 13:01:16 e6c778
1 0 I 2M 05/10 13:06:59 813641
Checking the current checkpoints:
source vars
virsh checkpoint-list one-$VM_ID
Name Creation Time
---------------------------------------
one-36-0 2023-05-10 13:06:54 -0400
one-36-1 2023-05-10 13:06:55 -0400
Checking bitmaps:
source vars
qemu-img info --output json --force-share /var/lib/one/datastores/0/$VM_ID/disk.0
{
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 4268032,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"bitmaps": [
{
"flags": [
"in-use",
"auto"
],
"name": "one-36-0",
"granularity": 65536
}
],
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
}
Checking bitmaps and dirty-bitmaps through virsh qemu-monitor-command
:
source vars
virsh qemu-monitor-command one-$VM_ID --pretty '{"execute": "query-block", "arguments": {}}'
{
"return": [
{
"io-status": "ok",
"device": "",
"locked": false,
"removable": false,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"backing-image": {
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 66424832,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"dirty-flag": false
},
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one//datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 4268032,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"bitmaps": [
{
"flags": [
"in-use",
"auto"
],
"name": "one-36-0",
"granularity": 65536
}
],
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
},
"iops_wr": 0,
"ro": false,
"node-name": "libvirt-2-format",
"backing_file_depth": 1,
"drv": "qcow2",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"backing_file": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-bitmaps": [
{
"name": "one-36-1",
"recording": true,
"persistent": true,
"busy": false,
"granularity": 65536,
"count": 327680
},
{
"name": "one-36-0",
"recording": true,
"persistent": true,
"busy": false,
"granularity": 65536,
"count": 1179648
}
],
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": true,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.0"
},
"qdev": "/machine/peripheral/virtio-disk0/virtio-backend",
"type": "unknown"
},
{
"io-status": "ok",
"device": "",
"locked": true,
"removable": true,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"virtual-size": 372736,
"filename": "/var/lib/one//datastores/0/36/disk.1",
"format": "raw",
"actual-size": 372736,
"dirty-flag": false
},
"iops_wr": 0,
"ro": true,
"node-name": "libvirt-1-format",
"backing_file_depth": 0,
"drv": "raw",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": false,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.1"
},
"qdev": "ide0-0-0",
"tray_open": false,
"type": "unknown"
}
],
"id": "libvirt-872"
}
Create file test-img85-disk.0.0
inside the VM 36
:
touch test-img85-disk.0.0
Executing backup:
source vars
onevm backup --reset -d $DS_ID $VM_ID
File /var/log/one/36.log
:
Wed May 10 13:10:34 2023 [Z0][VM][I]: New LCM state is BACKUP
Wed May 10 13:10:39 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: prebackup_live.
Wed May 10 13:10:44 2023 [Z0][VMM][I]: Successfully execute operation: backup.
Wed May 10 13:10:46 2023 [Z0][VMM][I]: Successfully execute transfer manager driver operation: postbackup_live.
Wed May 10 13:10:46 2023 [Z0][VMM][I]: VM backup successfully created.
Wed May 10 13:10:46 2023 [Z0][VM][I]: New LCM state is RUNNING
File /var/log/one/backup_qcow2.log
:
13:10:36.589 [CMD]: virsh --connect qemu:///system checkpoint-list --name 0f297c4b-001f-434d-9123-739342da23fb
13:10:36.608 [CMD]: DONE
13:10:36.609 [CMD]: qemu-img info --output json --force-share /var/lib/datastores/local_mount/0/36/disk.0.snap/0
13:10:36.614 [CMD]: DONE
13:10:36.614 [CMD]: virsh --connect qemu:///system checkpoint-delete 0f297c4b-001f-434d-9123-739342da23fb one-36-0
13:10:36.680 [CMD]: DONE
13:10:36.680 [CMD]: virsh --connect qemu:///system checkpoint-delete 0f297c4b-001f-434d-9123-739342da23fb one-36-1
13:10:36.702 [CMD]: DONE
13:10:36.706 [CMD]: virsh --connect qemu:///system domfsfreeze 0f297c4b-001f-434d-9123-739342da23fb
13:10:36.766 [CMD]: DONE
13:10:36.766 [CMD]: virsh --connect qemu:///system snapshot-create-as --name one-36-backup --disk-only --atomic --diskspec vda,file=/var/lib/one//datastores/0/36/tmp/overlay_0.qcow2 0f297c4b-001f-434d-9123-739342da23fb
13:10:37.230 [CMD]: DONE
13:10:37.230 [CMD]: virsh --connect qemu:///system checkpoint-create --xmlfile /var/lib/one//datastores/0/36/tmp/checkpoint.xml 0f297c4b-001f-434d-9123-739342da23fb
13:10:37.314 [CMD]: DONE
13:10:37.314 [CMD]: virsh --connect qemu:///system domfsthaw 0f297c4b-001f-434d-9123-739342da23fb
13:10:37.421 [CMD]: DONE
13:10:37.421 [CMD]: qemu-img convert -m 4 -O qcow2 -U /var/lib/datastores/local_mount/0/36/disk.0.snap/0 /var/lib/one//datastores/0/36/backup/disk.0.0
13:10:39.711 [CMD]: DONE
13:10:39.711 [BCK]: Full backup done in 3.008608014s
13:10:45.558 [CMD]: virsh --connect qemu:///system blockcommit --base /var/lib/one//datastores/0/36/disk.0 --active --pivot --keep-relative 0f297c4b-001f-434d-9123-739342da23fb vda
13:10:46.777 [CMD]: DONE
13:10:46.777 [CMD]: virsh --connect qemu:///system snapshot-delete --snapshotname one-36-backup --metadata 0f297c4b-001f-434d-9123-739342da23fb
13:10:46.796 [CMD]: DONE
Checking backup image for current chain of increments:
oneimage show 85
# [...]
BACKUP INCREMENTS
ID PID T SIZE DATE SOURCE
0 -1 F 118M 05/10 13:10:46 e727b6
Checking the current checkpoints:
source vars
virsh checkpoint-list one-$VM_ID
Name Creation Time
---------------------------------------
one-36-0 2023-05-10 13:10:37 -0400
Checking bitmaps:
source vars
qemu-img info --output json --force-share /var/lib/one/datastores/0/$VM_ID/disk.0
{
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 4268032,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
}
Checking bitmaps and dirty-bitmaps through virsh qemu-monitor-command
:
source vars
virsh qemu-monitor-command one-$VM_ID --pretty '{"execute": "query-block", "arguments": {}}'
{
"return": [
{
"io-status": "ok",
"device": "",
"locked": false,
"removable": false,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"backing-image": {
"virtual-size": 268435456,
"filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 66424832,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"dirty-flag": false
},
"backing-filename-format": "qcow2",
"virtual-size": 268435456,
"filename": "/var/lib/one//datastores/0/36/disk.0",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 4268032,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"full-backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"backing-filename": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-flag": false
},
"iops_wr": 0,
"ro": false,
"node-name": "libvirt-2-format",
"backing_file_depth": 1,
"drv": "qcow2",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"backing_file": "/var/lib/one/datastores/1/6368bc925d188f1dc0e711584250cc50",
"dirty-bitmaps": [
{
"name": "one-36-0",
"recording": true,
"persistent": true,
"busy": false,
"granularity": 65536,
"count": 458752
}
],
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": true,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.0"
},
"qdev": "/machine/peripheral/virtio-disk0/virtio-backend",
"type": "unknown"
},
{
"io-status": "ok",
"device": "",
"locked": true,
"removable": true,
"inserted": {
"iops_rd": 0,
"detect_zeroes": "off",
"image": {
"virtual-size": 372736,
"filename": "/var/lib/one//datastores/0/36/disk.1",
"format": "raw",
"actual-size": 372736,
"dirty-flag": false
},
"iops_wr": 0,
"ro": true,
"node-name": "libvirt-1-format",
"backing_file_depth": 0,
"drv": "raw",
"iops": 0,
"bps_wr": 0,
"write_threshold": 0,
"encrypted": false,
"bps": 0,
"bps_rd": 0,
"cache": {
"no-flush": false,
"direct": false,
"writeback": true
},
"file": "/var/lib/one//datastores/0/36/disk.1"
},
"qdev": "ide0-0-0",
"tray_open": false,
"type": "unknown"
}
],
"id": "libvirt-1316"
}
This time, we will select the backup 84
and INC 1
:
oneimage restore -d 1 --name test-img84-inc1 --no_ip --no_nic --increment 1 84
Create a new VM from the new template test-img84-inc1
, which will deploy the new VM using the restored backup image test-img84-inc1-disk-0
.
On this new VM if you run ls -l
, it should be all created files up to test-img84-disk.0.1
.
As you have seen bitmaps are synchronized into the qcow2 when the VM is poweroff. While it is running they are kept in libvirt. The problem in this situation is that when the VM is resumed the bitmaps are not redefined by libvirt and thus they are not cleaned in the cleanup phase of the reset opereation.
This commits solve the issue 7471016
You can easily take the new file: https://github.com/OpenNebula/one/blob/master/src/tm_mad/lib/backup_qcow2.rb
This new commit fix completely the Backup process! As @Franco-Sparrow i have done a ton of test and always the checkpoints, bitmaps or dirty ones get in sync!
@Franco-Sparrow pretty awesome job!!! I have reviewed some of your issues and you have helped me to understand some technical parts of new Backup solution's insides. Thanks!
Closing this one. Once again thank you @Franco-Sparrow for that awesome feedback :smile: :heart:
Description
Hello team
Sir @rsmontero we still have problems with the backup solution in the
6.6.1
branch, with suggested commits from previous closed issues, modifications in thebackup_qcow2.rb
.Every live backup create a dirty-bitmap and a checkpoint.
The code will hold only the last two checkpoints and dirty-bitmaps.
The 3rd incremental backup will rotate the checkpoints and dirty-bitmaps.
If you poweroff a VM (going into
POWEROFF
state) all dirty-bitmaps will be transformed into bitmaps.If you resume the VM again (back to
RUNNING
state), all checkpoint will be gone, but the dirty-bitmaps remains there.Variant#1
one-31-0
doesnt exist.--reset
flag, it will fail, because dirty-bitmapone-31-1
already exist.Variant#2
--reset
flag), it will create a new checkpoint with a new dirty-bitmapone-31-3
, it will also have a 2nd checkpoint from the previous dirty-bitmapone-31-2
. But, it will be a 3rd dirty-bitmapone-31-1
without checkpoint .I think that this could be fixed, if after made a reset backup all bitmaps and dirty-bitmaps are removed and a new dirty-bitmap
one-31-0
is created and all its increments and new dirty-bitmaps, will not collide with older ones from previous backups.To Reproduce
Using the current
backup_qcow2.rb
from master branch:New VM for the tests
There should be no bitmaps nor dirty-bitmaps for the new created VM
31
.The
LAST_INCREMENT_ID
has the right value (-1
):Backup #1: VM is
RUNNING
and no previous backups. A new bitmapone-31-0
should be created. A new backup image71
should be created.There should be a dirty-bitmap
one-31-0
.The
LAST_INCREMENT_ID
has the right value:Backup #2: VM is
RUNNING
and there should exist the bitmapone-31-0
. A new bitmapone-31-1
should be created.There should be two dirty-bitmaps:
one-31-0
andone-31-1
, with now bitmaps.The
LAST_INCREMENT_ID
has the right value:Backup #3: VM is
RUNNING
and there should exist the dirty-bitmapsone-31-0
andone-31-1
. A new dirty-bitmapone-31-2
should be created.There should be dirty-bitmaps, but there only two, the
one-31-1
andone-31-2
, while theone-31-0
was rotated.The
LAST_INCREMENT_ID
has the right value:Changing the VM state from
RUNNING
toPOWEROFF
:Changing the VM state from
POWEROFF
toRUNNING
:Backup #4 with
--reset
: VM isRUNNING
. It should clean all previews dirty-bitmaps and create a new oneone-31-0
and a new backup image76
.Where is the bitmap
one-31-0
and why are still there the bitmapsone-31-1
andone-31-2
? I created a new dirty-bitmapone-31-0
, but there remains the old dirty-bitmaps from previous backups. Next backup will fail.The
LAST_INCREMENT_ID
has the right value:Backup #5: VM is
RUNNING
and there should only exist the dirty-bitmapone-31-0
, but there are also old ones (one-31-1
andone-31-2
).The backup failed:
From previous output, you will see that it failed due to
Bitmap already exists: one-31-1
. The main concern here is why are still old dirt-bitmaps after a reset backup.Lets check in another way, this time getting the output in json format:
Let's keep digging into the info:
Expected behavior Creation of bitmaps for every backup and deleted the old ones after a reset backup. No bitmaps collision.
Details
Additional context
Add any other context about the problem here.
Progress Status