From: Andreas Rogge <andreas.rogge@bareos.com>
To: Wolfgang Bumiller <w.bumiller@proxmox.com>
Cc: Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
Thomas Lamprecht <t.lamprecht@proxmox.com>,
Philipp Storz <philipp.storz@bareos.com>
Subject: Re: [pve-devel] [PATCH storage v4 09/27] plugin: introduce new_backup_provider() method
Date: Thu, 3 Apr 2025 18:08:23 +0200 [thread overview]
Message-ID: <793a9b31-f0eb-4b21-af24-54bcef808167@bareos.com> (raw)
In-Reply-To: <ey5nze36xsp7iaipishhlsvxo5xyllyvze2sevxutbcttofyye@bxzkiqxcm2no>
Am 03.04.25 um 09:24 schrieb Wolfgang Bumiller:
> On Wed, Apr 02, 2025 at 06:16:57PM +0200, Andreas Rogge wrote:
>> Am 02.04.25 um 10:30 schrieb Wolfgang Bumiller:
>>> On Tue, Apr 01, 2025 at 08:21:30PM +0200, Thomas Lamprecht wrote:
> But I do wonder if - to reduce space-requirements for backing up running
> VMs - at some point we might also add the ability for qemu to provide
> some kind of queue containing the offset-length pairs of blocks which
> have been stored in the temporary fleecing image. The provider could
> consume this queue to keep the temporary storage at a minimum by doing
> out-of-order backups.
As we have to be able to restore out-of-order anyway, backing up
out-of-order is not a problem at all.
However, offset-length in 512-byte offsets might be a bit too
fine-grained. If we, for example, have a deduplication blocksize of 256k
on a storage, offset and offset+length would preferably be divisible by
256k.
While the backup application could easily compute aligned offsets
itself, read-access to the whole computed region would be required.
> This only makes sense if there are backup systems which can benefit from
> it. (And it should be a simple-enough api extension to add this in the
> future, from what I can tell)
I am not sure if this provides a benefit on our end. However, if it
makes the backup process more lightweight on the PVE side, it might
still be worth the effort.
> I guess it makes sense for us to not expect/require random access, as
> any feature like that already imposes limitations on how the data can be
> stored. I'd expect different backup solutions to have different
> limitations in that regard.
Exactly.
> I *believe* `qemu-nbd` should be able to bind all the storage types we
> want to restore to to /dev/nbdXY devices, which would give the provider
> a bunch of block devices to write to in whichever way they want to, so
> the provider would then only need to figure out how to receive the data
> and forward that to the devices.
> We'll need to try.
That's pretty much what I had hoped for.
>>> Which is why the most flexible thing to do is to use a `qemu-img` call
>>> and giving it the paths, or more precisely, the URLs to the disks.
>>
>> I understand how this makes sense. However, if you don't have the data in a
>> format that qemu-img can consume, things become complicated.
>
> It can also just read data from a stream (but without any smarter
> protocol, this would make holes/unallocated blocks extremely
> inefficient), where the provider would create that stream in whichever
> way they want to.
As the only viable formats to stream into qemu-img are qcow2 and raw and
(to my understanding) these require the data to be in the right order
Bareos would have to re-order the data before streaming it into
qemu-img, which brings us back to staging the image - in which case we
don't need to stream anymore :)
--
Andreas Rogge andreas.rogge@bareos.com
Bareos GmbH & Co. KG Phone: +49 221-630693-86
http://www.bareos.com
Sitz der Gesellschaft: Köln | Amtsgericht Köln: HRA 29646
Komplementär: Bareos Verwaltungs-GmbH
Geschäftsführer: Stephan Dühr, Jörg Steffens, Philipp Storz
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
next prev parent reply other threads:[~2025-04-03 16:09 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-14 15:07 [pve-devel] [PATCH-SERIES qemu/common/storage/qemu-server/container/manager v4 00/27] backup provider API Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH qemu v4 01/27] PVE backup: add target ID in backup state Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH qemu v4 02/27] PVE backup: get device info: allow caller to specify filter for which devices use fleecing Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH qemu v4 03/27] PVE backup: implement backup access setup and teardown API for external providers Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH qemu v4 04/27] PVE backup: implement bitmap support for external backup access Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH common v4 05/27] test: lock file: get rid of END block that made test always pass Fiona Ebner
2024-11-14 19:46 ` [pve-devel] applied: " Thomas Lamprecht
2024-11-14 15:07 ` [pve-devel] [PATCH common v4 06/27] tools: run fork: allow running code in parent after fork Fiona Ebner
2024-11-14 19:46 ` [pve-devel] applied: " Thomas Lamprecht
2024-11-14 15:07 ` [pve-devel] [PATCH common v4 07/27] test: have lock file test use run_fork() helper Fiona Ebner
2024-11-14 19:46 ` [pve-devel] applied: " Thomas Lamprecht
2024-11-14 15:07 ` [pve-devel] [PATCH storage v4 08/27] add storage_has_feature() helper function Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH storage v4 09/27] plugin: introduce new_backup_provider() method Fiona Ebner
2025-04-01 16:02 ` Andreas Rogge
2025-04-01 18:21 ` Thomas Lamprecht
2025-04-02 8:30 ` Wolfgang Bumiller
2025-04-02 16:16 ` Andreas Rogge
2025-04-03 7:24 ` Wolfgang Bumiller
2025-04-03 16:08 ` Andreas Rogge [this message]
2025-04-04 7:15 ` Fabian Grünbichler
2025-04-02 8:33 ` Fiona Ebner
2025-04-03 8:06 ` Andreas Rogge
2025-04-02 16:01 ` Andreas Rogge
2024-11-14 15:07 ` [pve-devel] [PATCH storage v4 10/27] extract backup config: delegate to backup provider for storages that support it Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [POC storage v4 11/27] add backup provider example Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [POC storage v4 12/27] WIP Borg plugin Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH qemu-server v4 13/27] backup: keep track of block-node size for fleecing Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH qemu-server v4 14/27] module config: load nbd module at boot Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH qemu-server v4 15/27] backup: allow adding fleecing images also for EFI and TPM Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH qemu-server v4 16/27] backup: implement backup for external providers Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH qemu-server v4 17/27] backup: implement restore " Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH qemu-server v4 18/27] backup restore: external: hardening check for untrusted source image Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH container v4 19/27] add LXC::Namespaces module Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH container v4 20/27] backup: implement backup for external providers Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH container v4 21/27] backup: implement restore " Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH container v4 22/27] external restore: don't use 'one-file-system' tar flag when restoring from a directory Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH container v4 23/27] create: factor out compression option helper Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH container v4 24/27] restore tar archive: check potentially untrusted archive Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH container v4 25/27] api: add early check against restoring privileged container from external source Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH manager v4 26/27] ui: backup: also check for backup subtype to classify archive Fiona Ebner
2024-11-14 15:07 ` [pve-devel] [PATCH manager v4 27/27] backup: implement backup for external providers Fiona Ebner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=793a9b31-f0eb-4b21-af24-54bcef808167@bareos.com \
--to=andreas.rogge@bareos.com \
--cc=philipp.storz@bareos.com \
--cc=pve-devel@lists.proxmox.com \
--cc=t.lamprecht@proxmox.com \
--cc=w.bumiller@proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal