Quantcast
Channel: Veeam Support Knowledge Base
Viewing all articles
Browse latest Browse all 4506

Could not apply snapshot: Device has active dirty bitmaps

$
0
0

Could not apply snapshot: Device has active dirty bitmaps

KB ID: 4744
Product: Veeam Backup & Replication | 12.2 | 12.3 | 12.3.1
Published: 2025-06-09
Last Modified: 2025-06-09

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:  

  1. 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.
qm showcmd <vm-ID-#> --pretty
  1. 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  \
    

  2. Execute qemu-img info  command to see the dirty bitmap name:
qemu-img info /mnt/pve/path/to/disk.qcow2

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
  1. Delete the bitmap using the following command:
qemu-img bitmap --remove /mnt/pve/path/to/disk.qcow2 VeeamTmp_guid

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 

 

  1. 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.

Viewing all articles
Browse latest Browse all 4506

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>