On Tue, Apr 07, 2020 at 01:18:47PM +0100, Richard W.M. Jones wrote:
Another issue, incidental to this but related, is that we cannot use
the fixed appliance because docker/podman have broken support for
sparse files. (It's possible to configure libguestfs to use qcow2 for
fixed appliances, but we don't do this now, we never really tested it,
and it both greatly slows down and adds more dependencies to the
supermin build step.)
I feel like we ought to be able to solve the slow down issue with
qcow2, because libguestfs has a pretty narrow usage scenario.
Slowdown for qcow2 is related to the fact that you have the multiple
table lookups to find clusters in the qcow2 image. With bigger
cluster sizes the overhead is much lower, but at the cost of harming
write performance. Since the appliance is read-only this downside
won't apply.
If we create the appliance qcow2 with a large cluster size (1MB)
then there's very small L1/L2 tables, and we can set the cache size
large enough that the lookup is always in memory. There's possibly
other things we can do too if we get guidance from QEMU devs. I'd
really hope (expect) that for a read-only qcow2, we can get it to
match raw in terms of performance.
Regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|