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

Re: [libvirt-users] Create multiple domains from single saved domain state (is UUID/name fixed?)

virt-builder looks like some fancy guest/host interaction related to building VM images.

What I'm looking for is more like:
  virsh save running_domain saved-domain-A.img
  cp saved-domain-A.img saved-domain-B.img
  virsh save-image-edit saved-domain-B.img   // Change the network, possibly MAC, VNC port

Then in parallel I want to do:
  virsh restore saved-domain-A.img
  virsh restore saved-domain-B.img

So that I have two instances of the same virtual machine starting from the same state.
This way I can reset the VMs without having to reboot them (booting is rather slow).

I practice I'll probably have ~16 instances at the same time. Constantly being reset to the same state.
I tried with QEMU, and it's seems totally doable with savevm, copy file, then doing loadvm twice in parallel.
(I'll be using a separate network for each VM, so I can be sure which one I'm talking to).

Is this doable with libvirt, or am I better off using QEMU directly? and how? I couldn't do internal snapshots with --live, and snapshot-revert says it can't revert to external snapshots yet :)
(using QEMU directly would certainly leave me with a lot of manual network configuration)

Regards Jonas Finnemann Jensen.

2016-04-19 2:23 GMT-07:00 Martin Kletzander <mkletzan redhat com>:
On Mon, Apr 18, 2016 at 10:05:02PM +0300, Michael Ravits wrote:
Hi Jonas,

I asked a similar question here last week. You could find it by searching
for this topic in the mailing list archives: "Clone VM with saved state".
That being said I'd be very glad if you could update here when you find a
complete solution.

- Michael

What I *think* Jones wants is to use virt-builder, it could cause some
problems if you started all of them.  What Michael wants is:

 virsh save running_domain saved-image-file.img
 virsh save-image-edit saved-image-file.img

Hope that helped,

On Mon, Apr 18, 2016 at 9:49 PM, Jonas Finnemann Jensen <jonasfj mozilla com


I would like to save a running domain (ie. disk + memory) and be able to
restore it multiple times creating duplicates of the orignal domain all
starting from the same state.
Use case:
I'm building a task-processing system for use in a CI flow.
I want to run multiple VMs in parallel using the same image (always
starting from the same state).
And to avoid needlessly booting between each task, I would like to save
(and distribute) the domain state, so that I just restore from memory.

However, I can't seems to change the UUID or the name of a domain once it
is saved.
Nor do I seem able to rename a domain while it is running.

I can obviously duplicate both the disks and the file to which I saved the
domain state using "virsh save".
But I seem unable to rename before I restore.. Any ideas?

Could I do this with snapshots? I suspect not since I see
virDomainSnapshotRedefinePrep() calling
virDomainDefCheckABIStability which raises the error here:

Out of curiosity does anyone know what horrors might befall me if I were
to remove the lines protecting against name and UUID changes? Then compile
my own libvirt...
The comment in the code says name can be changed, but I'm guessing I would
have to change the UUID too. Does anyone see how that would create issues?
I'm not sure how libvirt uses the UUID internally.

Regards Jonas Finnemann Jensen.

libvirt-users mailing list
libvirt-users redhat com

libvirt-users mailing list
libvirt-users redhat com

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