public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Christian Ebner <c.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [RFC v2 pve-container pve-manager 0/3] add partial restore
Date: Mon, 23 Oct 2023 13:18:32 +0200	[thread overview]
Message-ID: <20231023111835.238407-1-c.ebner@proxmox.com> (raw)

This patch series adds functionality to partially restore containers
from backup, by allowing the user to selectively include/exclude
mountpoints for restore. Mountpoints not included in the backup will not
be deleted and recreated but rather attached to the container as unused
disk after the restore. The same is true for mountpoints selected by the
user to be excluded during restore.

As is, there is a slight discrepancy in partial restore behaviour for
PBS based and tar based backups, in cases where mountpoints are mounted
in the file tree of another mountpoint. For tar based backups, all files
below the uppermost mountpoint excluded from backup will not be restored,
as the tar `--exclude` limits the file restore. For PBS based backups,
each mountpoint is now backed up as individual pxar archive, therefore
allowing to handle the restore more fine grained, by restoring the pxar
archive directly to the moutpoint.

This splitting of the PBS based backups into one archive per mountpoint
introduces also side effects for backups created with the previous
single root.pxar archive approach. During restore, the pxar archive per
mountpoint cannot be found, producing a soft error message. Restore of
the files is than handled directly from the main root.pxar archive.

Any feedback is highly appreciated.

pve-container:

Christian Ebner (2):
  backup: do not delete not backed-up mps on restore
  api: allow to exclude mountpoins from restore

 src/PVE/API2/LXC.pm   | 44 +++++++++++++++++++----
 src/PVE/LXC/Create.pm | 83 ++++++++++++++++++++++++++++++++++++-------
 src/PVE/VZDump/LXC.pm | 10 +++---
 3 files changed, 113 insertions(+), 24 deletions(-)

pve-manager:

Christian Ebner (1):
  ui: lxc restore: add selective mountpoint restore

 www/manager6/Makefile                     |  1 +
 www/manager6/grid/BackupRestoreTargets.js | 37 +++++++++++++++++++++++
 www/manager6/window/Restore.js            | 34 +++++++++++++++++++++
 3 files changed, 72 insertions(+)
 create mode 100644 www/manager6/grid/BackupRestoreTargets.js
-- 
2.39.2





             reply	other threads:[~2023-10-23 11:19 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-23 11:18 Christian Ebner [this message]
2023-10-23 11:18 ` [pve-devel] [RFC v2 pve-container pve-manager 1/3] backup: do not delete not backed-up mps on restore Christian Ebner
2023-10-23 11:18 ` [pve-devel] [RFC v2 pve-container pve-manager 2/3] api: allow to exclude mountpoins from restore Christian Ebner
2023-10-23 11:18 ` [pve-devel] [RFC v2 pve-container pve-manager 3/3] ui: lxc restore: add selective mountpoint restore Christian Ebner
2023-10-23 12:47 ` [pve-devel] [RFC v2 pve-container pve-manager 0/3] add partial restore Fiona Ebner
2023-10-23 13:03   ` Christian 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=20231023111835.238407-1-c.ebner@proxmox.com \
    --to=c.ebner@proxmox.com \
    --cc=pve-devel@lists.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