
On 07/01/2014 04:53 AM, Royce Lv wrote:
Currently kimchi just support create a vm from an ISO defined template. This requires duplicate installation. This release we want to support create a vm from an installed image.
This involves the following change:
1. Create a template from an image:
POST /templates/template-1 {'base': 'abs_base_img_path'}
Implementation: (1)probe image os distro and version to get suggested config. (2)Avoid image to be deleted. (3)Avoid using ISO and base image at the same time.
2. Create a vm from image based template: This part has already been covered by Aline's prototype patch.
POST /vms/vm-1 {'storagepool': 'default', 'network': 'default', 'disks':[{'index':0, 'base': 'abs_path'}]} or {'storagepool': 'default', 'network': 'default', 'disks':[{'index':0, 'base': 'abs_path', 'volume': 'scsi_volume'}]}
The create vm implementation need to be re-considered for the following points: (1) when creating vm on scsi/iscsi pool, if volume size smaller than original image, need to be rejected.
From that, I assume you will copy the img content to the scsi/iscsi volume. Is that correct? If so, can't we use backing store (http://libvirt.org/formatstorage.html#StorageVolBacking) for the existing img and make the vm volume the RW img? During my prototype development, I used backing store and it worked well with directory storage volumes But I haven't tested it with scsi/iscsi volumes
(2) when creating vm on directory based pool, volume generating logic is different with allocation new volume. (2) xml generating need to be refactored.
Anything else need to be considered, welcome your comments.