[openstack-dev] [nova] discussion of an implementation detail for "boot from network" feature

Ondrej Wisniewski ondrej.wisniewski at dektech.com.au
Thu Oct 2 12:15:35 UTC 2014

On 10/02/2014 11:56 AM, Daniel P. Berrange wrote:
> On Thu, Oct 02, 2014 at 11:45:54AM +0200, Ondrej Wisniewski wrote:
>> Hi all,
>> This is related to the following blueprint:
>> https://blueprints.launchpad.net/nova/+spec/pxe-boot-instance
>> I would like to discuss here briefly an implementation detail and collect
>> some feedback.
>> With this new feature, the boot option "boot from network" will be added to
>> the existing options "boot from disk" and "boot from volume". The first
>> approach to implement this was to define a specific IMAGE_ID_TOKEN which
>> will be used to handle the "boot from network" option as a special case of
>> "boot from disk" option. This is a simple solution and has the advantage of
>> avoiding changes to the Nova REST API.
>> The second option would be to introduce the new "boot from network" option
>> in the Nova REST API with all the consequences of an API change (test,
>> documentation, etc).
>> Any thoughts on these two alternatives? This is a preliminary investigation
>> in order to avoid wasting time on an implementation which would be rejected
>> during review due to wrong design decisions.
> When booting from the network there is potentially a choice of multiple
> NICs from which todo PXE.
> With KVM you are not restricted to saying disk or network as exclusive
> choices, but rather you can setup arbitrary prioritization of boot order
> across devices, whether disk, nic or PCI assigned device.
> So we should really consider this broader problem of boot device
> prioritization not merely a PXE flag. IOW, we should extend the Nova
> boot command so that the --block-device-mapping and --nic args both
> allow for an integer boot priority value to be specified per device.
>    bootindex=NNN
> And likewise allow it to be set for PCI assigned devices.
> Hypervisors that don't support such fine grained ordering, can simply
> ignore anything except the device with bootindex=1.
> Regards,
> Daniel
Hi Daniel,

your proposal sounds reasonable to me. Implementing the possibility to 
choose the boot order priority from all available block devices and NICS 
(and possibly also PCI devices) would certainly cover more use cases 
then just the network boot. As you mentioned, some hypervisors like KVM 
support this, so we need to analyse what it takes to make the 
appropriate changes in OpenStack to pass the needed information down the 
chain. It will most likely involve Rest API changes but we need to do 
some digging into the Nova code here.

Thanks so far, Ondrej

More information about the OpenStack-dev mailing list