From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pve-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 299121FF17C for <inbox@lore.proxmox.com>; Wed, 25 Jun 2025 18:00:44 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 11B3D19A19; Wed, 25 Jun 2025 17:58:40 +0200 (CEST) From: Fiona Ebner <f.ebner@proxmox.com> To: pve-devel@lists.proxmox.com Date: Wed, 25 Jun 2025 17:56:43 +0200 Message-ID: <20250625155751.268047-21-f.ebner@proxmox.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250625155751.268047-1-f.ebner@proxmox.com> References: <20250625155751.268047-1-f.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.030 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH qemu-server 20/31] block job: add and use wrapper for mirror X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/> List-Post: <mailto:pve-devel@lists.proxmox.com> List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com> In preparation for the switch to -blockdev. Signed-off-by: Fiona Ebner <f.ebner@proxmox.com> --- src/PVE/QemuMigrate.pm | 19 ++++++++++--------- src/PVE/QemuServer.pm | 19 +++++++++++-------- src/PVE/QemuServer/BlockJob.pm | 20 ++++++++++++++++++++ 3 files changed, 41 insertions(+), 17 deletions(-) diff --git a/src/PVE/QemuMigrate.pm b/src/PVE/QemuMigrate.pm index 16c61837..f46bdf40 100644 --- a/src/PVE/QemuMigrate.pm +++ b/src/PVE/QemuMigrate.pm @@ -1207,17 +1207,18 @@ sub phase2 { my $bitmap = $target->{bitmap}; $self->log('info', "$drive: start migration to $nbd_uri"); - PVE::QemuServer::BlockJob::qemu_drive_mirror( - $vmid, - $drive, - $nbd_uri, - $vmid, - undef, + + my $source_info = { vmid => $vmid, drive => $source_drive }; + $source_info->{bitmap} = $bitmap if defined($bitmap); + my $dest_info = { volid => $nbd_uri }; + my $mirror_opts = {}; + $mirror_opts->{bwlimit} = $bwlimit if defined($bwlimit); + PVE::QemuServer::BlockJob::mirror( + $source_info, + $dest_info, $self->{storage_migration_jobs}, 'skip', - undef, - $bwlimit, - $bitmap, + $mirror_opts, ); } diff --git a/src/PVE/QemuServer.pm b/src/PVE/QemuServer.pm index 30566864..e7c98520 100644 --- a/src/PVE/QemuServer.pm +++ b/src/PVE/QemuServer.pm @@ -7761,16 +7761,19 @@ sub clone_disk { my $sparseinit = PVE::Storage::volume_has_feature($storecfg, 'sparseinit', $newvolid); if ($use_drive_mirror) { - PVE::QemuServer::BlockJob::qemu_drive_mirror( - $vmid, - $src_drivename, - $newvolid, - $newvmid, - $sparseinit, + my $source_info = { vmid => $vmid, drive => $drive }; + my $dest_info = { volid => $newvolid }; + $dest_info->{'zero-initialized'} = 1 if $sparseinit; + $dest_info->{vmid} = $newvmid if defined($newvmid); + my $mirror_opts = {}; + $mirror_opts->{'guest-agent'} = 1 if $qga; + $mirror_opts->{bwlimit} = $bwlimit if defined($bwlimit); + PVE::QemuServer::BlockJob::mirror( + $source_info, + $dest_info, $jobs, $completion, - $qga, - $bwlimit, + $mirror_opts, ); } else { if ($dst_drivename eq 'efidisk0') { diff --git a/src/PVE/QemuServer/BlockJob.pm b/src/PVE/QemuServer/BlockJob.pm index 7483aff3..4638fb1e 100644 --- a/src/PVE/QemuServer/BlockJob.pm +++ b/src/PVE/QemuServer/BlockJob.pm @@ -330,4 +330,24 @@ sub qemu_drive_mirror_switch_to_active_mode { } } +sub mirror { + my ($source, $dest, $jobs, $completion, $options) = @_; + + # for the switch to -blockdev + + my $drive_id = PVE::QemuServer::Drive::get_drive_id($source->{drive}); + qemu_drive_mirror( + $source->{vmid}, + $drive_id, + $dest->{volid}, + $dest->{vmid}, + $dest->{'zero-initialized'}, + $jobs, + $completion, + $options->{'guest-agent'}, + $options->{bwlimit}, + $source->{bitmap}, + ); +} + 1; -- 2.47.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel