[Libvir] [PATCH][RFC] Adding Cloning Feature

Kazuki Mizushima mizushima.kazuk at jp.fujitsu.com
Wed Apr 25 07:32:06 UTC 2007

HI Daniel,

Thank you for reply and comments.

>  Okay, so let's look first at how it would integrate in virsh ...
> So the command take the domain reference and a comma separated list
> of device. I assume it expect those device to be already available
> (for example if using LVM they were already created) and already
> initialized.

The user is preparing those destination devices beforehand. 

>  I'm surprized the name for the new clone is not an argument.

There is the clone which I think about for the purpose of reprinting 
an as possible state as is. So this first  revision is primmitive.
Also It is thought that information that must not overlap as a virtual
machine should change automatically. But I am thinking this  enhaunce it below.
1)--name    new clone vm name
2)--mac      new clone mac address
3)--format  destination devies initialized befor cloning
4)--wait       wait cloning porcess
                    I want to dettach the cloning process and to show the state with the "cloning" by virsh. 

>  The problem of adding a Clone operation at the libvirt level is that
> it would be very hard to make it solid, I mean just modifying an XML
> file is not hard, it's the checking of the state, the provisionning and
> making sure that no disaster will happen if we try to start the domain
> which are the hard part. I'm not sure we can do that in a relatively
> generic fashion, it probably depends a lot on the scenario. 
>  To get down to something concrete, suppose I have a domain with an
> Apache server running a RHEL4 paravirt. The new API may sound like 
> it could create a new domain with a similar Apache server, but:
>    - how do we provision it ?
>    - how do we avoid name clashes, i.e. IP, machine name, ...
>      in practice it would mean changing settings in the server
>    - are we using resource which may not be shared (or shareable)

It is surely so. 
Cloning I defined aims at creating a just duplication as it except 
informations that must not overlap as a virtual machine.
So, by my just now cloning,  it is necessary for a user to edit 
peculiar information of the OS and Middlewares. 

I thought about service such as load dispersion than by 1 installed the 
OS and Middlewares in each node when I set each node a clone did 
the machine at the stage that came by one setup, and to edit peculiarity

> We would need to be very precise about what the API call does, and warn
> about what it does not do, before I would start feeling comfortable about
> adding it in libvirt,

I see. So I put down to virsh used libvirt library instead of libvirt.
# but I also unterstand that put ing down to virsh cannot remote support .....  

Kazuki Mizushima

More information about the libvir-list mailing list