[pve-devel] qemu 7.0 : fleecing backup (aka: local temp write cache"

DERUMIER, Alexandre Alexandre.DERUMIER at groupe-cyllene.com
Mon Aug 1 10:10:48 CEST 2022


Le 31/07/22 à 18:49, DERUMIER, Alexandre a écrit :
> Le 31/07/22 à 18:19, Dietmar Maurer a écrit :
>>> This is really a blocker for me,I can't use pbs because I'm using nvme
>>> is production, and a 7200k hdd backup in a remote 200km site with 5ms
>>> latency.
>> Why don't you use a local(fast) PBS instance, then sync to the slow remote?
>>
> Hi Dietmar.
>
> Can I use a small local fast PBS instance without need to keep the full
> datastore chunks ?
>
> I have 300TB nvme in production, I don't want to buy 300TB nvme for backup.
>
> I known that I can keep more retentions on remote storage slow, but what
> about the local fast pbs ?
>
>
Maybe also, currently if you pbs server is crashing/shutdown/halt/... 
when a backup is running,

the vm writes are totally frozen.

Or if network problem occur, it can hang the vm too.

That's why I think than a local cache (could be optionnal) could be a 
great improvment.



I found doc about fleecing,

technally, it's just exposing a new blockdev inside qemu, like a virtual 
frozen snapshot.

So I think it could work with proxmox backup code too.

https://www.mail-archive.com/qemu-devel@nongnu.org/msg876056.html


####create the fleecing device

qmp: transaction [
    block-dirty-bitmap-add {node: disk0, name: bitmap0, persistent: true}
    blockdev-add* {node-name: tmp-protocol, driver: file, filename: 
temp.qcow2}
    blockdev-add {node-name: tmp, driver: qcow2, file: tmp-protocol}
    blockdev-add {node-name: cbw, driver: copy-before-write, file: disk0,
target: tmp}
    blockdev-replace** {parent-type: qdev, qdev-id: sda, new-child: cbw}
    blockdev-add {node-name: acc, driver: snapshot-access, file: cbw}
]



#### launch qemu backup (push model) --> should use proxmox backup code 
here instead


# Add target node. Here is qcow2 added, but it may be nbd node or 
something else
     blockdev-add {node-name: target-protocol, driver: file, filename:
target.qcow2}
     blockdev-add {node-name: target, driver: qcow2, file: target-protocol}

# Start backup
     blockdev-backup {device: acc, target: target, ...}
]




More information about the pve-devel mailing list