VM snapshot list inconsistencies - Proxmox/qm vs qemu-img

mkjaer

New Member
Jun 2, 2025
5
0
1
Denmark
Hi

I am conducting some testing of storage-based snapshots using Proxmox with NFS.
Proxmox version: 8.4.1.

While copying back a storage snapshot of a qcow2 image file to an existing VM (while in shutdown state) I can see different VM snapshot inventories depending on tools being used.
The restored file contains 2 snapshots while the overwritten image contained only 1.

Proxmox GUI and qm command show different result compared to qemu-img command.
Since the qcow2 snapshots are "internal" (inbedded within the disk image file) I assume the result from qemu-img is the correct one since this is actively processing the file.

So the question is: Where does Proxmox/qm command get its percieved list of snapshots from? It seems like data stored or cached somewhere.
Rebooting the Proxmox node doesn't change the output.

Output from qm command
root@pmx01:/mnt/pve/nfs1# qm listsnapshot 100
`-> snap2 2025-06-24 10:47:34 no-description

`-> current You are here!

Output from qemu-img command
root@pmx01:/mnt/pve/nfs1# qemu-img snapshot -l images/100/vm-100-disk-0.qcow2
Snapshot list:
ID TAG VM_SIZE DATE VM_CLOCK ICOUNT
1 snap1 0 B 2025-06-24 10:33:43 0000:14:44.484 --
2 snap2 0 B 2025-06-24 10:47:34 0000:00:00.000 0
root@pmx01:/mnt/pve/nfs1#


Best regards,
Mikkel
 
Last edited:
Think I might found the answer ... Investigating the /etc/pve/loval/qemu-server/{vmid}.conf file reveals entries like the one below.

I guess the reason for this is a Proxmox snapshots are performed differently depending on underlying storage type as well as saving the VM configuration at the time of the snapshot.

Not the finding I was hoping or looking for since this makes it difficult to use storage-based snapshots.

root@pmx01:~# cat /etc/pve/local/qemu-server/100.conf
...
[snap2]
agent: 1
boot: order=scsi0;ide2;net0
cores: 1
cpu: x86-64-v2-AES
ide2: none,media=cdrom
memory: 1024
meta: creation-qemu=9.0.2,ctime=1734433778
name: vm1
net0: virtio=BC:24:11:FB:20:C5,bridge=vlan110,firewall=1
net1: virtio=BC:24:11:A7:CD:17,bridge=vmbr0,firewall=1
numa: 0
ostype: l26
scsi0: nfs1:100/vm-100-disk-0.qcow2,aio=threads,iothread=1,size=5G
scsihw: virtio-scsi-single
smbios1: uuid=e6a09796-3237-415d-b372-632083c42b31
snaptime: 1750754854
sockets: 1
tags: Linux
vmgenid: 11f58269-92b4-4ede-b1f1-f1f4503320b1
...
 
Not the finding I was hoping or looking for since this makes it difficult to use storage-based snapshots.
Yes. You will also have problems reverting to snapshots in PVE GUI if there are other snapshots "in the way" and that depends on the used storage backend. If you want GUI consistent snapshots, you will need to do them through the PVE stack.
 
  • Like
Reactions: mkjaer
Yes. You will also have problems reverting to snapshots in PVE GUI if there are other snapshots "in the way" and that depends on the used storage backend. If you want GUI consistent snapshots, you will need to do them through the PVE stack.
Yes, thanks. The variety of storage types supported by Proxmox makes it difficult to handle VM snapshots in a "generic manner".

I am looking for a good way of leveraging storage-based snapshots on shared storage in combination with Proxmox.
Since Proxmox separates VM configuration and disk images this seems a bit tricky.
 
Last edited:
The qcow2 disk format should support external snapshots.
Do you know if there is a way to enable this in Proxmox?

Internal snapshots are used by default - if external snapshots works by creating separate delta files per snapshot this could help to ensure consistent storage snapshots of the underlying base image without having to freeze VM I/O.
 
I am looking for a good way of leveraging storage-based snapshots on shared storage in combination with Proxmox.
Since Proxmox separates VM configuration and disk images this seems a bit tricky.
On dedicated shared storage, this could be hard depending on the storage support. On distributed shared storage, you will not have this problem.

Another solution could be to use PBS, which delta backup, which is very fast and works independed of the underlying storage type.
 
  • Like
Reactions: Johannes S
On dedicated shared storage, this could be hard depending on the storage support. On distributed shared storage, you will not have this problem.

Another solution could be to use PBS, which delta backup, which is very fast and works independed of the underlying storage type.
I am looking into PBS as well.

One major benefit of using storage-based snapshots is that it provides instant zero-impact protection (and instant recovery) of complete datastores. However, providing VM consistency along with an intuitive restore procedure is not easy due to the structure of configuration and data.
 
The qcow2 disk format should support external snapshots.
Do you know if there is a way to enable this in Proxmox?

Internal snapshots are used by default - if external snapshots works by creating separate delta files per snapshot this could help to ensure consistent storage snapshots of the underlying base image without having to freeze VM I/O.
it's coming ;) cross-finger for pve9.0