To the best of my understanding there are two parts to this, neither of which 
is fully where it ought to be:


1.       It shouldn't be a required parameter. If you give it a volume with 
everything it needs and not an image it should try to boot from that without 
throwing an exception. Horizon only enforces the requirement because Nova does.

2.       As an optional parameter, specifying an image should allow you to 
create the instance with that image loaded onto the volume, which is a very 
important part of the workflow for creating your own bootable volumes. This 
feature doesn't currently exist in Nova, however.

I also don't know offhand if there are blueprints or bug reports for either of 
those...


-          Gabriel

From: [email protected] 
[mailto:[email protected]] On 
Behalf Of Vishvananda Ishaya
Sent: Saturday, May 26, 2012 8:35 PM
To: Lorin Hochstein
Cc: [email protected] ([email protected])
Subject: Re: [Openstack] Why is an image required when booting from volume

If there is a separate kernel and ramdisk needed for the boot from volume, it 
is pulled from image properties.  Otherwise it is basically useless.

Vish

On May 26, 2012, at 8:22 AM, Lorin Hochstein wrote:


I'm trying to figure out boot from volume, both so I can use it and so I can 
add it to the docs.


 It seems that when calling "nova boot" or using Horizon, you need to specify 
an image. Why is that?

I naively tried to create a volume image by creating a volume and then doing on 
my volume server:

dd if=/tmp/precise-server-cloudimg-amd64-disk1.img 
of=/dev/nova-volumes/volume-0000000d

Then I tried this:

$ nova boot --flavor 2 --key_name lorin --block_device_mapping /dev/vda=13:::0 
test

Which generated an error:

Invalid imageRef provided. (HTTP 400)

If I try to specify an image, it at least attempts to boot:

$ nova boot --flavor 2 --key_name lorin --block_device_mapping /dev/vda=13:::0 
--image 7d6923d9-1c13-4405-ba0c-41c7487dd6bc test

I noticed that the devstack example specifies an image: 
https://github.com/openstack-dev/devstack/blob/master/exercises/boot_from_volume.sh:

VOL_VM_UUID=`nova boot --flavor $INSTANCE_TYPE --image $IMAGE 
--block_device_mapping vda=$VOLUME_ID:::0 --security_groups=$SECGROUP 
--key_name $KEY_NAME $VOL_INSTANCE_NAME | grep ' id ' | get_field 2`

Looking at nova/api/openstack/compute/servers.py, it does look like 
_image_uuid_from_href() is called regardless of whether we are booting from 
volume or not. What is "--image" used for when booting from volume?


Take care,

Lorin
--
Lorin Hochstein
Lead Architect - Cloud Services
Nimbis Services, Inc.
www.nimbisservices.com<https://www.nimbisservices.com/>




_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : 
[email protected]<mailto:[email protected]>
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to