From: Alexandre Derumier via pve-devel <pve-devel@lists.proxmox.com>
To: pve-devel@lists.proxmox.com
Cc: Alexandre Derumier <alexandre.derumier@groupe-cyllene.com>
Subject: [pve-devel] [PATCH pve-storage 0/2] move qemu_img_create to common helpers and enable preallocation on backed images
Date: Mon, 19 May 2025 12:23:08 +0200 [thread overview]
Message-ID: <mailman.456.1747650234.394.pve-devel@lists.proxmox.com> (raw)
[-- Attachment #1: Type: message/rfc822, Size: 5432 bytes --]
From: Alexandre Derumier <alexandre.derumier@groupe-cyllene.com>
To: pve-devel@lists.proxmox.com
Subject: [PATCH pve-storage 0/2] move qemu_img_create to common helpers and enable preallocation on backed images
Date: Mon, 19 May 2025 12:23:08 +0200
Message-ID: <20250519102310.911326-1-alexandre.derumier@groupe-cyllene.com>
This is part of my work on qcow2 external snapshot, but could improve current qcow2 linked clone
This patch serie move qemu_img_create to common helpers,
and enable preallocation on backed_image to increase performance
This require l2_extended=on on the backed image
I have done some benchmarks on localssd with 100gb qcow2, the performance in randwrite 4k is 5x faster
some presentation of l2_extended=on are available here
https://www.youtube.com/watch?v=zJetcfDVFNw
https://www.youtube.com/watch?v=NfgLCdtkRus
I don't have enabled it for base image, as I think that Fabian see performance regression some month ago.
but I don't see performance difference in my bench. (can you could test on your side again ?)
It could help to reduce qcow2 overhead on disk,
and allow to keep more metadatas in memory for bigger image, as qemu default memory l2_cache_size=1MB)
https://www.ibm.com/products/tutorials/how-to-tune-qemu-l2-cache-size-and-qcow2-cluster-size
Maybe more test with bigger image (>1TB) could be done too to see if it's help
bench on 100G qcow2 file:
fio --filename=/dev/sdb --direct=1 --rw=randwrite --bs=4k --iodepth=32 --ioengine=libaio --name=test
fio --filename=/dev/sdb --direct=1 --rw=randread --bs=4k --iodepth=32 --ioengine=libaio --name=test
base image:
randwrite 4k: prealloc=metadata, l2_extended=off, cluster_size=64k: 20215
randread 4k: prealloc=metadata, l2_extended=off, cluster_size=64k: 22219
randwrite 4k: prealloc=metadata, l2_extended=on, cluster_size=64k: 20217
randread 4k: prealloc=metadata, l2_extended=on, cluster_size=64k: 21742
randwrite 4k: prealloc=metadata, l2_extended=on, cluster_size=128k: 21599
randread 4k: prealloc=metadata, l2_extended=on, cluster_size=128k: 22037
linked clone image with backing file:
randwrite 4k: prealloc=metadata, l2_extended=off, cluster_size=64k: 3912
randread 4k: prealloc=metadata, l2_extended=off, cluster_size=64k: 21476
randwrite 4k: prealloc=metadata, l2_extended=on, cluster_size=64k: 20563
randread 4k: prealloc=metadata, l2_extended=on, cluster_size=64k: 22265
randwrite 4k: prealloc=metadata, l2_extended=on, cluster_size=128k: 18016
randread 4k: prealloc=metadata, l2_extended=on, cluster_size=128k: 21611
Alexandre Derumier (2):
common: add qemu_img_create an preallocation_cmd_option
common: qemu_img_create: add backing_file support
src/PVE/Storage/Common.pm | 62 ++++++++++++++++++++++++++++++
src/PVE/Storage/GlusterfsPlugin.pm | 2 +-
src/PVE/Storage/Plugin.pm | 52 +------------------------
3 files changed, 65 insertions(+), 51 deletions(-)
--
2.39.5
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
next reply other threads:[~2025-05-19 10:23 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-19 10:23 Alexandre Derumier via pve-devel [this message]
2025-05-22 12:44 ` DERUMIER, Alexandre via pve-devel
2025-05-22 13:37 ` Fabian Grünbichler
2025-05-22 13:53 Alexandre Derumier via pve-devel
2025-05-27 8:49 ` Fiona Ebner
2025-05-27 8:59 ` DERUMIER, Alexandre via pve-devel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=mailman.456.1747650234.394.pve-devel@lists.proxmox.com \
--to=pve-devel@lists.proxmox.com \
--cc=alexandre.derumier@groupe-cyllene.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal