[pve-devel] [PATCH qemu-server 25/31] blockdev: support alloc-track driver for live-{import, restore}
Fiona Ebner
f.ebner at proxmox.com
Fri Jun 27 17:57:21 CEST 2025
Signed-off-by: Fiona Ebner <f.ebner at proxmox.com>
---
src/PVE/QemuServer/Blockdev.pm | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/PVE/QemuServer/Blockdev.pm b/src/PVE/QemuServer/Blockdev.pm
index a66ae6ef..4aea1abd 100644
--- a/src/PVE/QemuServer/Blockdev.pm
+++ b/src/PVE/QemuServer/Blockdev.pm
@@ -125,10 +125,12 @@ my sub get_node_name {
my $hash = substr(Digest::SHA::sha256_hex($info), 0, 30);
my $prefix = "";
- if ($type eq 'fmt') {
- $prefix = 'f';
+ if ($type eq 'alloc-track') {
+ $prefix = 'a';
} elsif ($type eq 'file') {
$prefix = 'e';
+ } elsif ($type eq 'fmt') {
+ $prefix = 'f';
} elsif ($type eq 'zeroinit') {
$prefix = 'z';
} else {
@@ -345,6 +347,17 @@ sub generate_drive_blockdev {
$child = { driver => 'zeroinit', file => $child, 'node-name' => "$node_name" };
}
+ if (my $live_restore = $options->{'live-restore'}) {
+ my $node_name = get_node_name('alloc-track', $drive_id, $drive->{file}, $options);
+ $child = {
+ driver => 'alloc-track',
+ 'auto-remove' => JSON::true,
+ backing => $live_restore->{blockdev},
+ file => $child,
+ 'node-name' => "$node_name",
+ };
+ }
+
# for fleecing and TPM backup, this is already the top node
return $child if $options->{fleecing} || $options->{'tpm-backup'};
--
2.47.2
More information about the pve-devel
mailing list