19.08.2020 18:15, Stefan Hajnoczi wrote:
On Mon, Aug 17, 2020 at 12:15:53PM +0300, Vladimir Sementsov-Ogievskiy wrote:
vstorage has slow allocation, so this patch detect vstorage
(I hope, we don't use other FUSE filesystems) and inserts preallocate
filter between qcow2 node and its file child.
The following test executes more than 10 times faster
(43.2s -> 3.9s for me) with this patch. (/newssd3 is mount point of
vstorage, both cs and mds are on same ssd local ssd disk)
IMG=/newssd3/z
FILE_OPTS=file.filename=$IMG
COUNT=15000
CHUNK=64K
CLUSTER=1M
rm -f $IMG
./qemu-img create -f qcow2 -o cluster_size=$CLUSTER $IMG 1G
./qemu-img bench -c $COUNT -d 1 -s $CHUNK -w -t none -f qcow2 $IMG
Kevin's input is needed here. I think the philosophy is that nodes are
not automatically inserted. The user should define the graph explicitly.
The management tool would be responsible for configuring a preallocate
filter node.
This patch originally is not intended to be merged upstream, only for
downstream.
I post it just to possibly get some ideas, could it be somehow useful for
others.
(I'm not sure, that all FUSE filesystems needs this filter. But vstorage needs)
Hmm, about automatically inserted nodes: why not? block jobs insert their
filters
automatically.. Anyway, for our downstream process the simplest thing is to
insert it automatically in Qemu.
--
Best regards,
Vladimir