public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Prashant Patil via pve-devel <pve-devel@lists.proxmox.com>
To: Fiona Ebner <f.ebner@proxmox.com>,
	Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
	Thomas Lamprecht <t.lamprecht@proxmox.com>
Cc: Prashant Patil <Prashant.Gamepatil@veritas.com>,
	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 08:52:59 +0000	[thread overview]
Message-ID: <mailman.404.1743497593.359.pve-devel@lists.proxmox.com> (raw)
In-Reply-To: <6e1b4e46-ddc6-46a2-bdc3-649a354a3525@proxmox.com>

[-- Attachment #1: Type: message/rfc822, Size: 19895 bytes --]

From: Prashant Patil <Prashant.Gamepatil@veritas.com>
To: Fiona Ebner <f.ebner@proxmox.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 08:52:59 +0000
Message-ID: <PH0PR20MB45208AD2006C9D22F1EBF0A998AC2@PH0PR20MB4520.namprd20.prod.outlook.com>

Thanks for answering all questions.



When does Proxmox VE backend calls functions from the plugin? The backup/restore tasks/jobs are configured in our Backup Solution hence this question.



Thanks

Prashant



-----Original Message-----
From: Fiona Ebner <f.ebner@proxmox.com>
Sent: 01 April 2025 01:37 PM
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





CAUTION: This email originated from outside the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. If you believe this is a phishing email, use the Report to Cybersecurity icon in Outlook.







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://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.proxmox.com%2Fpve-devel%2F20250331132020.105324-1-f.ebner%40proxmox.com%2F&data=05%7C02%7CPrashant.Gamepatil%40veritas.com%7Ce8e90928ffbc4175ad0e08dd70f43d58%7Cfc8e13c0422c4c55b3eaca318e6cac32%7C0%7C0%7C638790916502870977%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=ZlxofWsel85kigkOw2RmCWnnQwrUyRatI1f6PAoXz%2BE%3D&reserved=0<https://lore.proxmox.com/pve-devel/20250331132020.105324-1-f.ebner@proxmox.com/>

[1]: BackupProviderDirExamplePlugin.pm in

https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.proxmox.com%2Fpve-devel%2F20250331132020.105324-17-f.ebner%40proxmox.com%2F&data=05%7C02%7CPrashant.Gamepatil%40veritas.com%7Ce8e90928ffbc4175ad0e08dd70f43d58%7Cfc8e13c0422c4c55b3eaca318e6cac32%7C0%7C0%7C638790916502890406%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=hkNs3aKQpbYf7EE%2Fx4wIGrYBl%2B6UR9gaK5uLWPr6uvA%3D&reserved=0<https://lore.proxmox.com/pve-devel/20250331132020.105324-17-f.ebner@proxmox.com/>

[2]: BorgBackupPlugin.pm in

https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.proxmox.com%2Fpve-devel%2F20250331132020.105324-18-f.ebner%40proxmox.com%2F&data=05%7C02%7CPrashant.Gamepatil%40veritas.com%7Ce8e90928ffbc4175ad0e08dd70f43d58%7Cfc8e13c0422c4c55b3eaca318e6cac32%7C0%7C0%7C638790916502904656%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=V2SpaW1FCtH8FN0i%2BuZxHU2W6T1gTEv%2FA4J%2FMOpwOQk%3D&reserved=0<https://lore.proxmox.com/pve-devel/20250331132020.105324-18-f.ebner@proxmox.com/>

[3]:

https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.proxmox.com%2Fpve-devel%2F20250331132020.105324-13-f.ebner%40proxmox.com%2F&data=05%7C02%7CPrashant.Gamepatil%40veritas.com%7Ce8e90928ffbc4175ad0e08dd70f43d58%7Cfc8e13c0422c4c55b3eaca318e6cac32%7C0%7C0%7C638790916502917419%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=Y6V325iQiGAKzra%2BQm1LUzb4ELtn3VaRFaYjRGyKmpM%3D&reserved=0<https://lore.proxmox.com/pve-devel/20250331132020.105324-13-f.ebner@proxmox.com/>



Best Regards,

Fiona






This message was sent by an employee of Arctera.

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

  parent reply	other threads:[~2025-04-01  8:53 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
2025-04-01  8:45                                       ` Fiona Ebner
2025-04-01  8:52                                       ` Prashant Patil via pve-devel [this message]
     [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=mailman.404.1743497593.359.pve-devel@lists.proxmox.com \
    --to=pve-devel@lists.proxmox.com \
    --cc=Anuradha.Joshi@veritas.com \
    --cc=Jason.vonEberstein@veritas.com \
    --cc=Prashant.Gamepatil@veritas.com \
    --cc=Sudhir.Subbarao@veritas.com \
    --cc=f.ebner@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