Could not apply snapshot: Device has active dirty bitmaps
Challenge
When the user attempts to use the Rollback function for a snapshot on a Proxmox Virtual Environment (PVE) Virtual Machine (VM) that is protected by Veeam Backup & Replication, the following error occurs:
qemu-img: Could not apply snapshot '%%': Device has active dirty bitmaps
Cause
This error occurs because qemu, by default, does not allow the bitmap to be erased when applying the snapshot.
Solution
The solution depends on the disk type:
RAW and VMDK Disks
The bitmaps are not persistent. Turn the VM off to delete the dirty bitmap, then use the snapshot Rollback function.
QCOW2 Disks
The bitmaps are persistent; even powering the VM off will not delete them. Manual actions are required:
- Connect to the PVE node where the VM resides via SSH, and execute the following command:
Note: In the command below, replace<vm-ID-#>
with the VM's ID Number.
- In the command output, identify the path to the qcow2 disk.
Example:/usr/bin/kvm \ -id 638 \ -name 'AM-UbuntuonCIFS,debug-threads=on' \ -no-shutdown \ -chardev 'socket,id=qmp,path=/var/run/qemu-server/638.qmp,server=on,wait=off' \ -mon 'chardev=qmp,mode=control' \ -chardev 'socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect-ms=5000' \ -mon 'chardev=qmp-event,mode=control' \ -pidfile /var/run/qemu-server/638.pid \ -daemonize \ -smbios 'type=1,uuid=232415df-9102-404d-b77d-6c97ea15988d' \ -smp '4,sockets=1,cores=4,maxcpus=4' \ -nodefaults \ -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' \ -vnc 'unix:/var/run/qemu-server/638.vnc,password=on' \ -cpu qemu64,+aes,enforce,+kvm_pv_eoi,+kvm_pv_unhalt,+pni,+popcnt,+sse4.1,+sse4.2,+ssse3 \ -m 4096 \ -object 'iothread,id=iothread-virtioscsi0' \ -global 'PIIX4_PM.disable_s3=1' \ -global 'PIIX4_PM.disable_s4=1' \ -device 'pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1e' \ -device 'pci-bridge,id=pci.2,chassis_nr=2,bus=pci.0,addr=0x1f' \ -device 'pci-bridge,id=pci.3,chassis_nr=3,bus=pci.0,addr=0x5' \ -device 'vmgenid,guid=8cbbb400-0332-42dc-a1f8-ac0b49b4770d' \ -device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' \ -device 'usb-tablet,id=tablet,bus=uhci.0,port=1' \ -device 'VGA,id=vga,bus=pci.0,addr=0x2' \ -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \ -iscsi 'initiator-name=iqn.1993-08.local.amust:pdcqa420' \ -drive 'if=none,id=drive-ide2,media=cdrom,aio=io_uring' \ -device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=101' \ -device 'virtio-scsi-pci,id=virtioscsi0,bus=pci.3,addr=0x1,iothread=iothread-virtioscsi0' \ -drive 'file=/mnt/pve/cifs-truenas/images/638/vm-638-disk-0.qcow2,if=none,id=drive-scsi0,format=qcow2,cache=none,aio=native,detect-zeroes=on' \ -device 'scsi-hd,bus=virtioscsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,bootindex=100' \ -netdev 'type=tap,id=net0,ifname=tap638i0,script=/usr/libexec/qemu-server/pve-bridge,downscript=/usr/libexec/qemu-server/pve-bridgedown,vhost=on' \ -device 'virtio-net-pci,mac=BC:24:11:E3:2A:F0,netdev=net0,bus=pci.0,addr=0x12,id=net0,rx_queue_size=1024,tx_queue_size=256,bootindex=102' \ -machine 'type=pc+pve1 \
- Execute qemu-img info command to see the dirty bitmap name:
Example:
qemu-img info /mnt/pve/cifs-truenas/images/638/vm-638-disk-0.qcow2 image: /mnt/pve/cifs-truenas/images/638/vm-638-disk-0.qcow2 file format: qcow2 virtual size: 64 GiB (68719476736 bytes) disk size: 11.9 GiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: false bitmaps: [0]: flags: [0]: in-use [1]: auto name: VeeamTmp_dddbe17a-9f73-4f02-9a25-140f54b40773_0d528621-6463-4d66-bc91-09b484f6e886 granularity: 65536 refcount bits: 16 corrupt: false extended l2: false Child node '/file': filename: /mnt/pve/cifs-truenas/images/638/vm-638-disk-0.qcow2 protocol type: file file length: 64 GiB (68730687488 bytes) disk size: 11.9 GiB
- Delete the bitmap using the following command:
Example:
qemu-img bitmap --remove /mnt/pve/cifs-truenas/images/638/vm-638-disk-0.qcow2 VeeamTmp_dddbe17a-9f73-4f02-9a25-140f54b40773_0d528621-6463-4d66-bc91-09b484f6e886
- With the bitmap now deleted, the snapshot Rollback function will be allowed by qemu.
To submit feedback regarding this article, please click this link: Send Article Feedback
To report a typo on this page, highlight the typo with your mouse and press CTRL + Enter.
To report a typo on this page, highlight the typo with your mouse and press CTRL + Enter.