[pve-devel] RFC: vm cloning implementation proposal

Alexandre DERUMIER aderumier at odiso.com
Wed Oct 3 08:33:16 CEST 2012


>>Type 1 seems easy to implement, but type 2 looks clumsy. 

Yes, indeed 1 is easy. 2 need more work and can a little more tricky,because is like a qcow2 external snapshot


>>But first, why do I want to clone a VM? Please can you elaborate on 
>>the usage scenario first? 

Cloning vm is a current scenario in enterprise, generally, you have a basevm you want to duplicate in 1 second.
Other scenario can be vdi desktop, you can clone in live a vm if a user need a desktop.

advantages : fast deploy, less space usage, and more io/s as if storage have cache,it can keep in memory the base image

To have a real example, on my nexenta box, I have around 300 cloned base lun of 15GB, without cloning I need 4,5TB, with cloning 15GB...

> Vm cloning is instant duplicate vm config and disk (qm clone sourcevmid
> targetvmid).

>>This is an over-simplification. For examply, user want to clone a VM, but to different storage?
Be carefull that cloning != copy (in my proposal) . Cloning is always on same storage (at least for point1).

But we could also implement a copy feature,export/import from/to differents storage.


vmware call them "Full Clones" (copy) and "Linkend Clones" (true clone)

http://www.vmware.com/support/ws55/doc/ws_clone_overview.html#wp1028798


----- Mail original ----- 

De: "Dietmar Maurer" <dietmar at proxmox.com> 
À: "Alexandre DERUMIER" <aderumier at odiso.com>, pve-devel at pve.proxmox.com 
Envoyé: Mercredi 3 Octobre 2012 06:40:40 
Objet: RE: [pve-devel] RFC: vm cloning implementation proposal 

> 2 types Storage which support cloning: 
> 
> 1)-sheepdog,rbd (>=0.52),nexenta : 
> - the clone is made from a snapshot 
> - can be done when sourcevm is online 
> - we can use source vm after cloning 
> - we can't delete a snapshot if a clone is made from the snapshot 
> - we can't delete the sourcevm is clone exist 
> 
> 2)-raw,qcow2 : 
> it's a little different,we don't clone from a snapshot, but from a whole base 
> file. 

Type 1 seems easy to implement, but type 2 looks clumsy. 

But first, why do I want to clone a VM? Please can you elaborate on 
the usage scenario first? 



More information about the pve-devel mailing list