mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-04-28 13:30:57 +00:00
backup: fleecing: use exact size when allocating non-raw fleecing images
A non-1KiB aligned source image could cause issues when used with qcow2 fleecing images, e.g. for an image with size 4.5 KiB: > Size mismatch for 'drive-tpmstate0-backup-fleecing' - sector count 10 != 9 Raw images are attached to QEMU with an explicit 'size' argument, so rounding up before allocation doesn't matter, but it does for qcow2. Signed-off-by: Fiona Ebner <f.ebner@proxmox.com> Tested-by: Wolfgang Bumiller <w.bumiller@proxmox.com> Reviewed-by: Wolfgang Bumiller <w.bumiller@proxmox.com> Link: https://lore.proxmox.com/20250404133204.239783-12-f.ebner@proxmox.com
This commit is contained in:
parent
9891d05a97
commit
6c7e74c9d0
@ -558,7 +558,15 @@ my sub allocate_fleecing_images {
|
||||
my $name = "vm-$vmid-fleece-$n";
|
||||
$name .= ".$format" if $scfg->{path};
|
||||
|
||||
my $size = PVE::Tools::convert_size($di->{'block-node-size'}, 'b' => 'kb');
|
||||
my $size;
|
||||
if ($format ne 'raw') {
|
||||
# Since non-raw images cannot be attached with an explicit 'size' parameter to
|
||||
# QEMU later, pass the exact size to the storage layer. This makes qcow2
|
||||
# fleecing images work for non-1KiB-aligned source images.
|
||||
$size = $di->{'block-node-size'}/1024;
|
||||
} else {
|
||||
$size = PVE::Tools::convert_size($di->{'block-node-size'}, 'b' => 'kb');
|
||||
}
|
||||
|
||||
$di->{'fleece-volid'} = PVE::Storage::vdisk_alloc(
|
||||
$self->{storecfg}, $fleecing_storeid, $vmid, $format, $name, $size);
|
||||
|
Loading…
Reference in New Issue
Block a user