* [pve-devel] [PATCH qemu/qemu-server] fix #4119: allow namespaces for live-restore
@ 2022-06-22 12:57 Dominik Csapak
2022-06-22 12:57 ` [pve-devel] [PATCH qemu 1/1] add 'namespace' to BlockdevOptionsPbs Dominik Csapak
2022-06-22 12:57 ` [pve-devel] [PATCH qemu-server 1/1] fix #4119: give namespace parameter to live-restore Dominik Csapak
0 siblings, 2 replies; 5+ messages in thread
From: Dominik Csapak @ 2022-06-22 12:57 UTC (permalink / raw)
To: pve-devel
we forgot to add the namespace there, so add it.
for it to work, qemu-server depends on new pve-qemu, but if that's not
available, it errors out (but probably better than restoring the
potentially wrong snapshot).
also, i squashed the changes into the 'pbs-namespace' patch instead
of adding a new one, since there is only a single new line changed.
hope that's ok
pve-qemu:
Dominik Csapak (1):
add 'namespace' to BlockdevOptionsPbs
.../patches/pve/0052-pbs-namespace-support.patch | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
qemu-server:
Dominik Csapak (1):
fix #4119: give namespace parameter to live-restore
PVE/QemuServer.pm | 22 ++++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-)
--
2.30.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pve-devel] [PATCH qemu 1/1] add 'namespace' to BlockdevOptionsPbs
2022-06-22 12:57 [pve-devel] [PATCH qemu/qemu-server] fix #4119: allow namespaces for live-restore Dominik Csapak
@ 2022-06-22 12:57 ` Dominik Csapak
2022-06-22 13:11 ` [pve-devel] applied: " Thomas Lamprecht
2022-06-22 12:57 ` [pve-devel] [PATCH qemu-server 1/1] fix #4119: give namespace parameter to live-restore Dominik Csapak
1 sibling, 1 reply; 5+ messages in thread
From: Dominik Csapak @ 2022-06-22 12:57 UTC (permalink / raw)
To: pve-devel
so that we can use it for the -blockdev options (used for live-restore)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
.../patches/pve/0052-pbs-namespace-support.patch | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/debian/patches/pve/0052-pbs-namespace-support.patch b/debian/patches/pve/0052-pbs-namespace-support.patch
index b65da90..74c0a87 100644
--- a/debian/patches/pve/0052-pbs-namespace-support.patch
+++ b/debian/patches/pve/0052-pbs-namespace-support.patch
@@ -9,8 +9,8 @@ Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
block/pbs.c | 25 +++++++++++++++++++++----
pbs-restore.c | 19 ++++++++++++++++---
pve-backup.c | 6 +++++-
- qapi/block-core.json | 3 +++
- 5 files changed, 46 insertions(+), 8 deletions(-)
+ qapi/block-core.json | 5 ++++-
+ 5 files changed, 47 insertions(+), 9 deletions(-)
diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c
index 52ddbf95ad..69c868887a 100644
@@ -222,3 +222,15 @@ index c5023710f5..619e13b9b1 100644
'*backup-id': 'str',
'*backup-time': 'int',
'*use-dirty-bitmap': 'bool',
+@@ -3236,7 +3239,7 @@
+ { 'struct': 'BlockdevOptionsPbs',
+ 'data': { 'repository': 'str', 'snapshot': 'str', 'archive': 'str',
+ '*keyfile': 'str', '*password': 'str', '*fingerprint': 'str',
+- '*key_password': 'str' } }
++ '*key_password': 'str', '*namespace': 'str' } }
+
+ ##
+ # @BlockdevOptionsNVMe:
+--
+2.30.2
+
--
2.30.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pve-devel] [PATCH qemu-server 1/1] fix #4119: give namespace parameter to live-restore
2022-06-22 12:57 [pve-devel] [PATCH qemu/qemu-server] fix #4119: allow namespaces for live-restore Dominik Csapak
2022-06-22 12:57 ` [pve-devel] [PATCH qemu 1/1] add 'namespace' to BlockdevOptionsPbs Dominik Csapak
@ 2022-06-22 12:57 ` Dominik Csapak
2022-06-29 12:02 ` [pve-devel] applied: " Wolfgang Bumiller
1 sibling, 1 reply; 5+ messages in thread
From: Dominik Csapak @ 2022-06-22 12:57 UTC (permalink / raw)
To: pve-devel
we forgot to give the namespace parameter here, so do that.
while we're at it, give the pbs options as a hash instead of adding
another parameter.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
PVE/QemuServer.pm | 22 ++++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index b3964bc..09c0df4 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -1717,6 +1717,7 @@ sub print_pbs_blockdev {
my ($pbs_conf, $pbs_name) = @_;
my $blockdev = "driver=pbs,node-name=$pbs_name,read-only=on";
$blockdev .= ",repository=$pbs_conf->{repository}";
+ $blockdev .= ",namespace=$pbs_conf->{namespace}" if $pbs_conf->{namespace};
$blockdev .= ",snapshot=$pbs_conf->{snapshot}";
$blockdev .= ",archive=$pbs_conf->{archive}";
$blockdev .= ",keyfile=$pbs_conf->{keyfile}" if $pbs_conf->{keyfile};
@@ -6652,6 +6653,7 @@ sub restore_proxmox_backup_archive {
my $keyfile = PVE::Storage::PBSPlugin::pbs_encryption_key_file_name($storecfg, $storeid);
my $repo = PVE::PBSClient::get_repository($scfg);
+ my $namespace = $scfg->{namespace};
# This is only used for `pbs-restore` and the QEMU PBS driver (live-restore)
my $password = PVE::Storage::PBSPlugin::pbs_get_password($scfg, $storeid);
@@ -6842,28 +6844,36 @@ sub restore_proxmox_backup_archive {
# these special drives are already restored before start
delete $devinfo->{'drive-efidisk0'};
delete $devinfo->{'drive-tpmstate0-backup'};
- pbs_live_restore($vmid, $conf, $storecfg, $devinfo, $repo, $keyfile, $pbs_backup_name);
+
+ my $pbs_opts = {
+ repo => $repo,
+ keyfile => $keyfile,
+ snapshot => $pbs_backup_name,
+ namespace => $namespace,
+ };
+ pbs_live_restore($vmid, $conf, $storecfg, $devinfo, $pbs_opts);
PVE::QemuConfig->remove_lock($vmid, "create");
}
}
sub pbs_live_restore {
- my ($vmid, $conf, $storecfg, $restored_disks, $repo, $keyfile, $snap) = @_;
+ my ($vmid, $conf, $storecfg, $restored_disks, $opts) = @_;
print "starting VM for live-restore\n";
- print "repository: '$repo', snapshot: '$snap'\n";
+ print "repository: '$opts->{repo}', snapshot: '$opts->{snapshot}'\n";
my $pbs_backing = {};
for my $ds (keys %$restored_disks) {
$ds =~ m/^drive-(.*)$/;
my $confname = $1;
$pbs_backing->{$confname} = {
- repository => $repo,
- snapshot => $snap,
+ repository => $opts->{repo},
+ snapshot => $opts->{snapshot},
archive => "$ds.img.fidx",
};
- $pbs_backing->{$confname}->{keyfile} = $keyfile if -e $keyfile;
+ $pbs_backing->{$confname}->{keyfile} = $opts->{keyfile} if -e $opts->{keyfile};
+ $pbs_backing->{$confname}->{namespace} = $opts->{namespace} if defined($opts->{namespace});
my $drive = parse_drive($confname, $conf->{$confname});
print "restoring '$ds' to '$drive->{file}'\n";
--
2.30.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pve-devel] applied: [PATCH qemu 1/1] add 'namespace' to BlockdevOptionsPbs
2022-06-22 12:57 ` [pve-devel] [PATCH qemu 1/1] add 'namespace' to BlockdevOptionsPbs Dominik Csapak
@ 2022-06-22 13:11 ` Thomas Lamprecht
0 siblings, 0 replies; 5+ messages in thread
From: Thomas Lamprecht @ 2022-06-22 13:11 UTC (permalink / raw)
To: Proxmox VE development discussion, Dominik Csapak
Am 22/06/2022 um 14:57 schrieb Dominik Csapak:
> so that we can use it for the -blockdev options (used for live-restore)
>
> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
> ---
> .../patches/pve/0052-pbs-namespace-support.patch | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)
>
>
applied, thanks!
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pve-devel] applied: [PATCH qemu-server 1/1] fix #4119: give namespace parameter to live-restore
2022-06-22 12:57 ` [pve-devel] [PATCH qemu-server 1/1] fix #4119: give namespace parameter to live-restore Dominik Csapak
@ 2022-06-29 12:02 ` Wolfgang Bumiller
0 siblings, 0 replies; 5+ messages in thread
From: Wolfgang Bumiller @ 2022-06-29 12:02 UTC (permalink / raw)
To: Dominik Csapak; +Cc: pve-devel
just ran into this again and noticed this patch was still missing
applied
On Wed, Jun 22, 2022 at 02:57:35PM +0200, Dominik Csapak wrote:
> we forgot to give the namespace parameter here, so do that.
> while we're at it, give the pbs options as a hash instead of adding
> another parameter.
>
> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
> ---
> PVE/QemuServer.pm | 22 ++++++++++++++++------
> 1 file changed, 16 insertions(+), 6 deletions(-)
>
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index b3964bc..09c0df4 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -1717,6 +1717,7 @@ sub print_pbs_blockdev {
> my ($pbs_conf, $pbs_name) = @_;
> my $blockdev = "driver=pbs,node-name=$pbs_name,read-only=on";
> $blockdev .= ",repository=$pbs_conf->{repository}";
> + $blockdev .= ",namespace=$pbs_conf->{namespace}" if $pbs_conf->{namespace};
> $blockdev .= ",snapshot=$pbs_conf->{snapshot}";
> $blockdev .= ",archive=$pbs_conf->{archive}";
> $blockdev .= ",keyfile=$pbs_conf->{keyfile}" if $pbs_conf->{keyfile};
> @@ -6652,6 +6653,7 @@ sub restore_proxmox_backup_archive {
> my $keyfile = PVE::Storage::PBSPlugin::pbs_encryption_key_file_name($storecfg, $storeid);
>
> my $repo = PVE::PBSClient::get_repository($scfg);
> + my $namespace = $scfg->{namespace};
>
> # This is only used for `pbs-restore` and the QEMU PBS driver (live-restore)
> my $password = PVE::Storage::PBSPlugin::pbs_get_password($scfg, $storeid);
> @@ -6842,28 +6844,36 @@ sub restore_proxmox_backup_archive {
> # these special drives are already restored before start
> delete $devinfo->{'drive-efidisk0'};
> delete $devinfo->{'drive-tpmstate0-backup'};
> - pbs_live_restore($vmid, $conf, $storecfg, $devinfo, $repo, $keyfile, $pbs_backup_name);
> +
> + my $pbs_opts = {
> + repo => $repo,
> + keyfile => $keyfile,
> + snapshot => $pbs_backup_name,
> + namespace => $namespace,
> + };
> + pbs_live_restore($vmid, $conf, $storecfg, $devinfo, $pbs_opts);
>
> PVE::QemuConfig->remove_lock($vmid, "create");
> }
> }
>
> sub pbs_live_restore {
> - my ($vmid, $conf, $storecfg, $restored_disks, $repo, $keyfile, $snap) = @_;
> + my ($vmid, $conf, $storecfg, $restored_disks, $opts) = @_;
>
> print "starting VM for live-restore\n";
> - print "repository: '$repo', snapshot: '$snap'\n";
> + print "repository: '$opts->{repo}', snapshot: '$opts->{snapshot}'\n";
>
> my $pbs_backing = {};
> for my $ds (keys %$restored_disks) {
> $ds =~ m/^drive-(.*)$/;
> my $confname = $1;
> $pbs_backing->{$confname} = {
> - repository => $repo,
> - snapshot => $snap,
> + repository => $opts->{repo},
> + snapshot => $opts->{snapshot},
> archive => "$ds.img.fidx",
> };
> - $pbs_backing->{$confname}->{keyfile} = $keyfile if -e $keyfile;
> + $pbs_backing->{$confname}->{keyfile} = $opts->{keyfile} if -e $opts->{keyfile};
> + $pbs_backing->{$confname}->{namespace} = $opts->{namespace} if defined($opts->{namespace});
>
> my $drive = parse_drive($confname, $conf->{$confname});
> print "restoring '$ds' to '$drive->{file}'\n";
> --
> 2.30.2
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-06-29 12:02 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-22 12:57 [pve-devel] [PATCH qemu/qemu-server] fix #4119: allow namespaces for live-restore Dominik Csapak
2022-06-22 12:57 ` [pve-devel] [PATCH qemu 1/1] add 'namespace' to BlockdevOptionsPbs Dominik Csapak
2022-06-22 13:11 ` [pve-devel] applied: " Thomas Lamprecht
2022-06-22 12:57 ` [pve-devel] [PATCH qemu-server 1/1] fix #4119: give namespace parameter to live-restore Dominik Csapak
2022-06-29 12:02 ` [pve-devel] applied: " Wolfgang Bumiller
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal