From: Fiona Ebner <f.ebner@proxmox.com>
To: Prashant Patil <Prashant.Gamepatil@veritas.com>,
Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
Thomas Lamprecht <t.lamprecht@proxmox.com>
Cc: Anuradha Joshi <Anuradha.Joshi@veritas.com>,
Sudhir Subbarao <Sudhir.Subbarao@veritas.com>,
Jason Voneberstein <Jason.vonEberstein@veritas.com>
Subject: Re: [pve-devel] About PVE Backup Integration Guide
Date: Tue, 1 Apr 2025 10:07:19 +0200 [thread overview]
Message-ID: <6e1b4e46-ddc6-46a2-bdc3-649a354a3525@proxmox.com> (raw)
In-Reply-To: <PH0PR20MB4520E9A4E56E11C9FDC9981598AC2@PH0PR20MB4520.namprd20.prod.outlook.com>
Note there is a v6 of the patch series now [0].
Am 01.04.25 um 09:02 schrieb Prashant Patil:
> We have gone through plugins POD material; we have few questions from
> very little understanding about plugins:
>
> 1. Storage plugin
> 1. What is the main purpose of storage plugin?
The storage plugin is needed, so that users can configure your backup
server as a backup storage in Proxmox VE, i.e. select it when
configuring a backup job or starting a backup, list the backups and
issue restore operations.
> 2. Do we need to implement our own storage plugin? Which all
> functions we need to implement?
Yes. Look at the example plugins [1][2] to see which methods are required.
> 2. Backup Provider plugin
> 1. What is the main purpose of backup provider plugin?
This is used by the Proxmox VE backend to interface with your backup
server/solution during backup and restore tasks.
> 2. Do we need to implement our own backup provider plugin? Which
> all functions we need to implement?
Yes. You need to implement all methods, but you can decide which backup
and restore mechanisms you want to implement. One for VMs and one for
containers.
> 3. Which model this provider refers to - push model or pull model?
Not sure what you mean here. The Proxmox VE backend will call your
plugins methdos during backup. It's up to you how exactly you handle the
data.
> 4. It looks like we have two main callback functions – job_hook()
> and backup_hook(). Who calls these functions and when do they
> get called?
They got replaced by job_init(), job_cleanup(), backup_init(),
backup_cleanup() etc. in v6 of the series, but the purpose is still the
very same. I'll just quote from [3]:
> In Proxmox VE, a backup job consists of backup tasks for individual
> guests. There are methods for initialization and cleanup of the job,
> i.e. job_init() and job_cleanup() and for each guest backup, i.e.
> backup_init() and backup_cleanup().
>
> The backup_get_mechanism() method is used to decide on the backup
> mechanism. Currently, 'file-handle' or 'nbd' for VMs, and 'directory'
> for containers is possible. The method also let's the plugin indicate
> whether to use a bitmap for incremental VM backup or not. It is enough
> to implement one mechanism for VMs and one mechanism for containers.
>
> Next, there are methods for backing up the guest's configuration and
> data, backup_vm() for VM backup and backup_container() for container
> backup, with the latter running
>
> Finally, some helpers like getting the provider name or volume ID for
> the backup target, as well as for handling the backup log.
>
> The backup transaction looks as follows:
>
> First, job_init() is called that can be used to check backup server
> availability and prepare the connection. Then for each guest
> backup_init() followed by backup_vm() or backup_container() and finally
> backup_cleanup(). Afterwards job_cleanup() is called. For containers,
> there is an additional backup_container_prepare() call while still
> privileged. The actual backup_container() call happens as the
> (unprivileged) container root user, so that the file owner and group IDs
> match the container's perspective.
See also the documentation for each method for more details.
> 5. backup_get_mechanism() – This function needs to be called by
> external backup product?
No, all the functions are called by the Proxmox VE backup stack during
backup.
> 6. backup_vm() – This function needs to be called by external
> backup product? Does it support all disk formats and backed
> storages?
No. The Proxmox VE backend will call your implementation of this method
during backup of a VM guest.
[0]:
https://lore.proxmox.com/pve-devel/20250331132020.105324-1-f.ebner@proxmox.com/
[1]: BackupProviderDirExamplePlugin.pm in
https://lore.proxmox.com/pve-devel/20250331132020.105324-17-f.ebner@proxmox.com/
[2]: BorgBackupPlugin.pm in
https://lore.proxmox.com/pve-devel/20250331132020.105324-18-f.ebner@proxmox.com/
[3]:
https://lore.proxmox.com/pve-devel/20250331132020.105324-13-f.ebner@proxmox.com/
Best Regards,
Fiona
_______________________________________________
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-01 8:07 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <PH0PR20MB4520A4201D4560B18A0C830798C82@PH0PR20MB4520.namprd20.prod.outlook.com>
2025-03-04 15:47 ` [pve-devel] FW: " Prashant Patil via pve-devel
[not found] ` <PH0PR20MB45201A18272FF3B7B386D98B98C82@PH0PR20MB4520.namprd20.prod.outlook.com>
2025-03-04 16:37 ` [pve-devel] " Thomas Lamprecht
2025-03-05 6:36 ` Prashant Patil via pve-devel
2025-03-10 9:14 ` Fiona Ebner
2025-03-17 7:02 ` Prashant Patil via pve-devel
[not found] ` <PH0PR20MB4520C688E38C97D5DE5FC25B98DF2@PH0PR20MB4520.namprd20.prod.outlook.com>
2025-03-17 10:53 ` Fiona Ebner
2025-03-17 13:30 ` Prashant Patil via pve-devel
[not found] ` <PH0PR20MB4520276B3A7061528854180598DF2@PH0PR20MB4520.namprd20.prod.outlook.com>
2025-03-18 8:59 ` Prashant Patil via pve-devel
[not found] ` <PH0PR20MB45209D60E2A2A691D643A3C998DE2@PH0PR20MB4520.namprd20.prod.outlook.com>
2025-03-20 8:34 ` Prashant Patil via pve-devel
2025-03-21 14:13 ` Fiona Ebner
2025-03-24 5:20 ` Prashant Patil via pve-devel
[not found] ` <PH0PR20MB4520584B52872E16277A621198A42@PH0PR20MB4520.namprd20.prod.outlook.com>
2025-03-25 8:59 ` Fiona Ebner
2025-03-25 10:23 ` Prashant Patil via pve-devel
[not found] ` <PH0PR20MB4520FF39B329114AB45B2ADD98A72@PH0PR20MB4520.namprd20.prod.outlook.com>
2025-03-25 10:39 ` Fiona Ebner
2025-03-26 15:06 ` Prashant Patil via pve-devel
[not found] ` <PH0PR20MB452084FCE3C6D7DD55BDEBC398A62@PH0PR20MB4520.namprd20.prod.outlook.com>
2025-03-27 8:49 ` Fiona Ebner
2025-03-27 9:05 ` Prashant Patil via pve-devel
[not found] ` <PH0PR20MB452056ED55E525FF89127CFA98A12@PH0PR20MB4520.namprd20.prod.outlook.com>
2025-03-27 12:59 ` Fiona Ebner
[not found] ` <PH0PR20MB45200BE3B210EC8C69046E6698A02@PH0PR20MB4520.namprd20.prod.outlook.com>
2025-03-28 10:08 ` Fiona Ebner
2025-04-01 7:02 ` Prashant Patil
2025-04-01 8:07 ` Fiona Ebner [this message]
2025-04-01 8:45 ` Fiona Ebner
2025-04-01 8:52 ` Prashant Patil via pve-devel
[not found] ` <PH0PR20MB45208AD2006C9D22F1EBF0A998AC2@PH0PR20MB4520.namprd20.prod.outlook.com>
2025-04-01 9:05 ` Fiona Ebner
2025-04-01 10:59 ` Prashant Patil via pve-devel
[not found] ` <PH0PR20MB45206E718C1F7B1C4660D00098AC2@PH0PR20MB4520.namprd20.prod.outlook.com>
2025-04-01 11:18 ` Fiona Ebner
2025-04-01 11:54 ` Prashant Patil via pve-devel
[not found] ` <PH0PR20MB452007780D6055D15DFD565098AC2@PH0PR20MB4520.namprd20.prod.outlook.com>
2025-04-01 15:38 ` Fiona Ebner
2025-04-02 6:20 ` Prashant Patil via pve-devel
[not found] ` <PH0PR20MB4520109F59C59C3976298E8798AF2@PH0PR20MB4520.namprd20.prod.outlook.com>
2025-04-02 7:15 ` Thomas Lamprecht
2025-04-02 9:04 ` Prashant Patil via pve-devel
[not found] ` <PH0PR20MB4520725FF56C2F89E6A6EDDE98AF2@PH0PR20MB4520.namprd20.prod.outlook.com>
2025-04-09 13:26 ` Fiona Ebner
[not found] ` <PH0PR20MB4520446B9B012DE3352A8C1F98CB2@PH0PR20MB4520.namprd20.prod.outlook.com>
2025-03-05 15:44 ` Prashant Patil via pve-devel
2025-03-04 13:21 Prashant Patil via pve-devel
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=6e1b4e46-ddc6-46a2-bdc3-649a354a3525@proxmox.com \
--to=f.ebner@proxmox.com \
--cc=Anuradha.Joshi@veritas.com \
--cc=Jason.vonEberstein@veritas.com \
--cc=Prashant.Gamepatil@veritas.com \
--cc=Sudhir.Subbarao@veritas.com \
--cc=pve-devel@lists.proxmox.com \
--cc=t.lamprecht@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