[libvirt RFC] add API for parallel Saves (not for committing)

Peter Krempa pkrempa at redhat.com
Fri Apr 22 07:57:39 UTC 2022


On Thu, Apr 21, 2022 at 18:08:36 +0100, Daniel P. Berrangé wrote:
> On Thu, Apr 14, 2022 at 09:54:16AM +0200, Claudio Fontana wrote:
> > RFC, starting point for discussion.
> > 
> > Sketch API changes to allow parallel Saves, and open up
> > and implementation for QEMU to leverage multifd migration to files,
> > with optional multifd compression.
> > 
> > This allows to improve save times for huge VMs.
> > 
> > The idea is to issue commands like:
> > 
> > virsh save domain /path/savevm --parallel --parallel-connections 2
> > 
> > and have libvirt start a multifd migration to:
> > 
> > /path/savevm   : main migration connection
> > /path/savevm.1 : multifd channel 1
> > /path/savevm.2 : multifd channel 2
> 
> At a conceptual level the idea would to still have a single file,
> but have threads writing to different regions of it. I don't think

Note that guys from Virtuozzo planned to do enhancements to the
migration code which would allow post-copy style migration into a file.

For this they need a memory image with "random access" especially for
the loading part. Now the idea was to use a different image format,
something more like a qcow2 container (or actually a qcow2 image) to
store the memory pages but allow random access.

Now with that a parallel output could also theoretically be possible
IIRC.

Unfortunately I have no idea how their work is progressing, it was a
while ago already we've discussed it here.


More information about the libvir-list mailing list