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

2014-11-18 Thread Ondrej Wisniewski

Hi Daniel,

referring to this discussion we had some weeks ago, there is a blueprint 
and spec up for review now, describing the boot device prioritization 
feature you proposed:

https://blueprints.launchpad.net/nova/+spec/boot-order-for-instance
https://review.openstack.org/#/c/133254/

It would be great if you could have a look and add your comments.

Regards, Ondrej

On 10/02/2014 11:56 AM, Daniel P. Berrange wrote:

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



___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


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

2014-10-02 Thread Ondrej Wisniewski

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.


Ondrej


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


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

2014-10-02 Thread Daniel P. Berrange
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
-- 
|: http://berrange.com  -o-http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org  -o- http://virt-manager.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org   -o-   http://live.gnome.org/gtk-vnc :|

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


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

2014-10-02 Thread Ondrej Wisniewski

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


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev