Re: [PATCH] qemu: migration: Fix blockdev config with VIR_MIGRATE_PARAM_MIGRATE_DISKS_DETECT_ZEROES

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Oct 14, 2024 at 16:13:07 +0200, Peter Krempa wrote:
> The idea of migration with VIR_MIGRATE_PARAM_MIGRATE_DISKS_DETECT_ZEROES
> populated is to sparsify the image. The QEMU NBD client as it was
> configured in commit 621f879adf98e2c93ac5c8c869733a57f06cd9aa would
> signal to the destination to do thick allocation of holes which would
> result in a non-sparse image for any backend except a qcow2 image which
> I used to test it.
> 
> Switch to VIR_DOMAIN_DISK_DETECT_ZEROES_UNMAP and
> VIR_DOMAIN_DISK_DISCARD_UNMAP which tells the NBD client (and that in
> turn the NBD server) to preserve the sparse blocks it detected from the
> image.
> 
> Fixes: 621f879adf98e2c93ac5c8c869733a57f06cd9aa
> Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx>
> ---
>  src/qemu/qemu_migration.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
> index 179e9d7c83..832b2946e0 100644
> --- a/src/qemu/qemu_migration.c
> +++ b/src/qemu/qemu_migration.c
> @@ -1092,8 +1092,14 @@ qemuMigrationSrcNBDStorageCopyBlockdevPrepareSource(virDomainDiskDef *disk,
>      copysrc->protocol = VIR_STORAGE_NET_PROTOCOL_NBD;
>      copysrc->format = VIR_STORAGE_FILE_RAW;
> 
> -    if (detect_zeroes)
> -        copysrc->detect_zeroes = VIR_DOMAIN_DISK_DETECT_ZEROES_ON;
> +    if (detect_zeroes) {
> +        /* We need to use both VIR_DOMAIN_DISK_DETECT_ZEROES_UNMAP and
> +         * VIR_DOMAIN_DISK_DISCARD_UNMAP as the qemu NBD client otherwise singals
> +         * to the server to fully allocate the zero blocks
> +         */
> +        copysrc->detect_zeroes = VIR_DOMAIN_DISK_DETECT_ZEROES_UNMAP;
> +        copysrc->discard = VIR_DOMAIN_DISK_DISCARD_UNMAP;
> +    }
> 
>      copysrc->backingStore = virStorageSourceNew();
> 

Reviewed-by: Jiri Denemark <jdenemar@xxxxxxxxxx>



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux