Am 17.03.25 um 08:02 schrieb Prashant Patil: >> The block tracking is ideally done via QEMU, then you don't require any >> special features for the underlying storages. > > Yes, we were able to get sector map of disks present on 'Directory' storage > type. However, for other storage types such as lvm, lvm-thin, zfs which > supports raw disk format, here we could get entire disk as allocated which is > not the case in real. I could not find much information on this, hence wanted > to know whether this by-design behaviour or we are missing something? Pasting > output of qemu-img map below for the 2 GB disk on zfs. Have also tried > getting map over ndb but got the same result. Is there anything that we are > missing here? > > root@be-proxmox1:/dev/pve# qemu-img map -f raw --output=json > /dev/zvol/zfs1/vm-105-disk-2 > [{ "start": 0, "length": 2147483648, "depth": 0, "present": true, "zero": > false, "data": true, "compressed": false, "offset": 0}]
That sounds like you want to roll your own external solution instead of using the backup provider API that is currently being developed. With that API, you get the images to be backed-up as as NBD exports. For incremental backup, you can read the dirty bitmap. This can also be done via NBD. Again, then you don't need to worry about the underlying storage layer at all to support certain features. >> certain storage types do not support snapshots. In such cases, what is the >> recommended way to take backup of the running VM? > > As mentioned earlier, we have found few storage devices which does not > support snapshot, but have found that we can take individual disk snapshot > through 'blockdev-snapshot-sync'. If we have to take backup of the VM, then > are we supposed to use this command to snapshot all VM disks? Backups in QEMU do not use explicit snapshots. A copy-before-write filter is inserted on top of the source disk in QEMU's block graph. When new guest writes happen during backup, old data is first copied away to a fleecing image (or for regular backup directly to the backup target). The backup provider API then also inserts a snapshot-access node that is exported via NBD and allows reading the data from the time of the backup in a consistent fashion (hence "snapshot-access", it's a virtual/implicit snapshot). See also this diagram [0]. > [guest] [NBD export] > | | > | root | root > v file v > [copy-before-write]<------[snapshot-access] > | | > | file | target > v v > [active-disk] [temp.qcow2] Best Regards, Fiona [0]: https://www.mail-archive.com/qemu-devel@nongnu.org/msg876056.html _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel