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

Jonas Finnemann Jensen jonasfj at mozilla.com
Tue Apr 19 17:09:43 UTC 2016


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 at 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,
> Martin
>
>
> On Mon, Apr 18, 2016 at 9:49 PM, Jonas Finnemann Jensen <
>> jonasfj at mozilla.com
>>
>>> wrote:
>>>
>>
>> Hi,
>>>
>>> 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:
>>> https://fossies.org/dox/libvirt-1.3.3/domain__conf_8c_source.html#l17991
>>>
>>> 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 at redhat.com
>>> https://www.redhat.com/mailman/listinfo/libvirt-users
>>>
>>>
> _______________________________________________
>> libvirt-users mailing list
>> libvirt-users at redhat.com
>> https://www.redhat.com/mailman/listinfo/libvirt-users
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20160419/c0ab14ab/attachment.htm>


More information about the libvirt-users mailing list