[PATCH qemu-server 08/13] blockdev: add support for nbd_export: block-export-add
Alexandre Derumier
alexandre.derumier at groupe-cyllene.com
Tue Jun 3 09:55:51 CEST 2025
simply use the "drive-$id" top node
Signed-off-by: Alexandre Derumier <alexandre.derumier at groupe-cyllene.com>
---
PVE/QemuServer.pm | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 04e71fb6..8e48f52b 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -6010,20 +6010,27 @@ sub vm_start_nolock {
$migrate_storage_uri = "nbd:${localip}:${storage_migrate_port}";
}
- my $block_info = mon_cmd($vmid, "query-block");
- $block_info = { map { $_->{device} => $_ } $block_info->@* };
+ my $block_info = {};
+ my $use_blockdev = undef;
+
+ if (PVE::QemuServer::Machine::is_machine_version_at_least($forcemachine, 10, 0)) {
+ $use_blockdev = 1;
+ } else {
+ my $block_info = mon_cmd($vmid, "query-block");
+ $block_info = { map { $_->{device} => $_ } $block_info->@* };
+ }
foreach my $opt (sort keys %$nbd) {
my $drivestr = $nbd->{$opt}->{drivestr};
my $volid = $nbd->{$opt}->{volid};
- my $block_node = $block_info->{"drive-$opt"}->{inserted}->{'node-name'};
+ my $nodename = $use_blockdev ? "drive-$opt" : $block_info->{"drive-$opt"}->{inserted}->{'node-name'};
mon_cmd(
$vmid,
"block-export-add",
id => "drive-$opt",
- 'node-name' => $block_node,
+ 'node-name' => $nodename,
writable => JSON::true,
type => "nbd",
name => "drive-$opt", # NBD export name
--
2.39.5
More information about the pve-devel
mailing list