Re: [Openstack] Limit flavors to specific hosts

2012-04-03 Thread Day, Phil
Yes - Its more generic that hypervisor capabilities –  my main problem with 
Host Aggregates is that it limits it to some specific 1:1 groupings based on 
hypervisor functionality.

Use cases I want to be able to cover include:


-  Rolling new hardware through an existing cluster, and limiting some 
new flavors (which might for example provide higher network bandwidth) to just 
those servers



-  Providing a range of flavours that are dependent on specific 
hardware features (GPU)


-  There may be a further group that couples flavour and/or images to 
host groups – for example it’s possible to imagine a scenario where an image is 
only licensed to some specific subset of servers, or where a subset of nodes 
are running LXC (in which case the image is in effect pre-defined). In this 
case the image metadata could, for example, specify the flavors that it can be 
used with, and those flavors are in turn limited to specific hosts.   I don’t 
really like this model of linking Glance objects (images) to Nova Objects 
(flavors), but I’m not sure what an alternative would be.

On the config file vs REST API for configuration debate (maybe this needs to be 
a Design Summit subject in its own right), I agree that we should make a 
distinction between items that are deploy time configuration (which hypervisor 
to use, network driver, etc) and items that could change whilst the system is 
running (rate limits is a good example). I don’t however see this as being 
an REST API vs config file issue  - more a configuration repository issue.   
I’d also add that anything which is going to be configured via a REST API needs 
to also provide a command line tool to drive that interface – so that out of 
the box the system can be installed and configured via the tools and scripts 
shipped with it.

Phil



From: openstack-bounces+philip.day=hp@lists.launchpad.net 
[mailto:openstack-bounces+philip.day=hp@lists.launchpad.net] On Behalf Of 
Jan Drake
Sent: 03 April 2012 02:23
To: Lorin Hochstein
Cc: openstack@lists.launchpad.net
Subject: Re: [Openstack] Limit flavors to specific hosts

If I understand this correctly, the motivation is to be able to provide a hint 
to schedulers on host-level appropriateness based on information external to 
that found in the hyperviser.

Right/Wrong/Close?

It would help to have a real-world example of where basic host resource  
evalution for scheduling would cause a situation requiring the host-level 
hard-coding of what is essentially a flavor-constraint.

I'll hold further thoughts for downstream.


Jan

On Apr 2, 2012, at 6:06 PM, Lorin Hochstein 
lo...@nimbisservices.commailto:lo...@nimbisservices.com wrote:
Just created a blueprint for this:

https://blueprints.launchpad.net/nova/+spec/host-capabilities-api


Take care,

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




On Apr 2, 2012, at 3:29 PM, Jay Pipes wrote:


Can I add a feature request to the below thoughtstream? Can we make it so that 
the management of these things can be done outside of config files? i.e. via a 
REST API with some simple middleware exposing the particular scheduler nodes' 
understanding of which capabilities/filters it is using to apply its scheduling 
algorithm?

Making changes to configuration files works OK for simple uses and testing, not 
so much for on-demand operations :) I say this after grumbling about similar 
configuration obstacles with ratelimits.

Best,
-jay

On 04/02/2012 02:37 PM, Chris Behrens wrote:

I have some plans for being able to set arbitrary capabilities for
hosts via nova.conf that you can use to build scheduler filters.

Right now, there are capabilities, but I believe we're only creating
these from hypervisor stats. You can filter on those today. What I'm
planning on adding is a way to specify additional keyname/value pairs in
nova.conf to supplement the capabilities we build from hypervisor stats.
You could set things like this in your nova.conf:

--host_capabilities=instance_type_ids=1,2,3;keyX;keyY=something

etc. Since capabilities are already passed to scheduler rules, you could
add some basic filters that do:

if 'instance_type_ids' in capabilities and instance_type.id not in
capabilities['instance_type_ids']:
return False

Since host_capabilities are just arbitrary keyname/value pairs, you can
pretty much add anything you want to --host_capabilities and then write
some matching scheduler filter rules.

That's the basic idea, anyway. The exact same behavior will apply to
'cells' and the cells scheduler as well. (Except you'll have
cells_capabilities= somewhere (prob nova.conf for the cells service).

- Chris


On Apr 2, 2012, at 10:36 AM, Day, Phil wrote:

Hi Folks,
I’m looking for a capability to limit some flavours to some hosts. I
want the mapping to be as flexible as possible, and work within a
zone/cell (I don’t want to add zones just to get

Re: [Openstack] Limit flavors to specific hosts

2012-04-03 Thread Vishvananda Ishaya

On Apr 3, 2012, at 6:45 AM, Day, Phil wrote:

 Hi John,
  
 Maybe the problem with host aggregates is that it too quickly became 
 something that was linked to hypervisor capability, rather than being the 
 more general mechanism of which one form of aggregate could be linked to 
 hypervisor capabilities ?
  
 Should we have a “host aggregates 2.0” session at the Design Summit ?

+ 1

I think the primary use case is associating metadata with groups of hosts that 
can be interpreted by the scheduler.  Obviously, this same metadata can be used 
to create pools/etc. in the hypervisor, but we can't forget about the 
scheduler.  Modifying flags on the hosts for capabilities is ugly.

Vish

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Limit flavors to specific hosts

2012-04-03 Thread John Garbutt
+1

It is certainly worth a session to decide how to modify the scheduler.

I suspect all you would need is to do on the compute side is add a stub 
implementations for add/remove host operations in the compute manager base 
class (rather than throw NotImplemented exceptions), and maybe an extra 
XenServer specific flag to suppress the pool creation. I think it has all the 
DB and metadata functionality required.

One thing worth raising, is that currently all hosts in an aggregate must be in 
the same availability zone. That seems reasonable to me.

From: Vishvananda Ishaya [mailto:vishvana...@gmail.com]
Sent: 03 April 2012 19:11
To: Day, Phil
Cc: John Garbutt; Jan Drake; Lorin Hochstein; openstack@lists.launchpad.net
Subject: Re: [Openstack] Limit flavors to specific hosts


On Apr 3, 2012, at 6:45 AM, Day, Phil wrote:


Hi John,

Maybe the problem with host aggregates is that it too quickly became something 
that was linked to hypervisor capability, rather than being the more general 
mechanism of which one form of aggregate could be linked to hypervisor 
capabilities ?

Should we have a host aggregates 2.0 session at the Design Summit ?

+ 1

I think the primary use case is associating metadata with groups of hosts that 
can be interpreted by the scheduler.  Obviously, this same metadata can be used 
to create pools/etc. in the hypervisor, but we can't forget about the 
scheduler.  Modifying flags on the hosts for capabilities is ugly.

Vish

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Limit flavors to specific hosts

2012-04-03 Thread John Purrier
+1.

 

Interesting scenarios open up if we can have the scheduler intelligently
direct workloads based on config/metadata.

 

johnpur

 

From: openstack-bounces+john=openstack@lists.launchpad.net
[mailto:openstack-bounces+john=openstack@lists.launchpad.net] On Behalf
Of Vishvananda Ishaya
Sent: Tuesday, April 03, 2012 1:11 PM
To: Day, Phil
Cc: openstack@lists.launchpad.net; John Garbutt
Subject: Re: [Openstack] Limit flavors to specific hosts

 

 

On Apr 3, 2012, at 6:45 AM, Day, Phil wrote:





Hi John,

 

Maybe the problem with host aggregates is that it too quickly became
something that was linked to hypervisor capability, rather than being the
more general mechanism of which one form of aggregate could be linked to
hypervisor capabilities ?

 

Should we have a host aggregates 2.0 session at the Design Summit ?

 

+ 1

 

I think the primary use case is associating metadata with groups of hosts
that can be interpreted by the scheduler.  Obviously, this same metadata can
be used to create pools/etc. in the hypervisor, but we can't forget about
the scheduler.  Modifying flags on the hosts for capabilities is ugly.

 

Vish

 

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Limit flavors to specific hosts

2012-04-03 Thread Armando Migliaccio
On Tue, Apr 3, 2012 at 7:10 PM, Vishvananda Ishaya
vishvana...@gmail.com wrote:

 On Apr 3, 2012, at 6:45 AM, Day, Phil wrote:

 Hi John,

 Maybe the problem with host aggregates is that it too quickly became
 something that was linked to hypervisor capability, rather than being the
 more general mechanism of which one form of aggregate could be linked to
 hypervisor capabilities ?

The host aggregate model is not tied to no hypervisor-dependent
detail, it's a group of hosts with metadata linked to it. As far as
the the functionality around it, that can evolve to make it work as
you expected it to work. If I understand it correctly, you'd not be
interested in xenapi (whose implementation is wrapped around the
concept of pool), and as far as KVM is concerned, this is still a
blank canvas.

As for the scheduler, as most things in Nova, you can write a new one
(that's host-aggregate aware), or you can extend an existing one to
make sure it understands the metadata related to a host belonging to
an aggregate. The latter, in particular,  was not done in the Essex
timeframe for lack of time ;(


 Should we have a “host aggregates 2.0” session at the Design Summit ?


I am all in for a host aggregate 2.0 so to speak, or just the
continuation of the work that was started; at first I got the
impression that we were going to write new abstraction/functionality
from scratch just because the one that already existed did not fit the
bill...I am glad I was wrong :)


 + 1

 I think the primary use case is associating metadata with groups of hosts
 that can be interpreted by the scheduler.  Obviously, this same metadata can
 be used to create pools/etc. in the hypervisor, but we can't forget about
 the scheduler.  Modifying flags on the hosts for capabilities is ugly.

 Vish


 ___
 Mailing list: https://launchpad.net/~openstack
 Post to     : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


[Openstack] Limit flavors to specific hosts

2012-04-02 Thread Day, Phil
Hi Folks,

I'm looking for a capability to limit some flavours to some hosts.  I want the 
mapping to be as flexible as possible, and work within a zone/cell  (I don't 
want to add zones just to get this mapping).For example I want to express 
something like:

Host_1 supports flavours A, C
Host_2 supports flavours A, B
Host_3 supports flavours A, B, C
Host_4 supports flavours D

Ideally there would be some form of grouping to sets of flavours:

Flavour_A  is part of Flavour_Sets 1, 2, 3
Flavour_B is part of Flavour_Sets 2, 3
Flavour_C is part of Flavour_Sets 1, 3, 4

Host_1 supports flavour Set 1
Host_2 supports flavour Set 2
Host_3 supports flavour Set 3
Host_4 supports flavour Set 4


From the Essex design summit I thought that host aggregates was going to give 
this sort of capability, but having looked through the code that seems to be 
quite tightly coupled with specific hypervisor functionality, whereas this is 
purely a scheduler feature.

I can see that I could define flavour group membership through the 
instanace_type_extra_specs, but not how to then associate these with specific 
hosts.

I know I'm a tad behind some of the recent changes - so before suggesting a 
design summit session on this I thought I'd ask - is there something that 
already does this type of mapping ?

Cheers,
Phil



___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Limit flavors to specific hosts

2012-04-02 Thread Chris Behrens
I have some plans for being able to set arbitrary capabilities for hosts via 
nova.conf that you can use to build scheduler filters.

Right now, there are capabilities, but I believe we're only creating these from 
hypervisor stats.  You can filter on those today.  What I'm planning on adding 
is a way to specify additional keyname/value pairs in nova.conf to supplement 
the capabilities we build from hypervisor stats.  You could set things like 
this in your nova.conf:

--host_capabilities=instance_type_ids=1,2,3;keyX;keyY=something

etc.  Since capabilities are already passed to scheduler rules, you could add 
some basic filters that do:

if 'instance_type_ids' in capabilities and instance_type.id not in 
capabilities['instance_type_ids']:
return False

Since host_capabilities are just arbitrary keyname/value pairs, you can pretty 
much add anything you want to --host_capabilities and then write some matching 
scheduler filter rules.

That's the basic idea, anyway.   The exact same behavior will apply to 'cells' 
and the cells scheduler as well.  (Except you'll have cells_capabilities=  
somewhere (prob nova.conf for the cells service).

- Chris


On Apr 2, 2012, at 10:36 AM, Day, Phil wrote:

Hi Folks,

I’m looking for a capability to limit some flavours to some hosts.  I want the 
mapping to be as flexible as possible, and work within a zone/cell  (I don’t 
want to add zones just to get this mapping).For example I want to express 
something like:

Host_1 supports flavours A, C
Host_2 supports flavours A, B
Host_3 supports flavours A, B, C
Host_4 supports flavours D

Ideally there would be some form of grouping to sets of flavours:

Flavour_A  is part of Flavour_Sets 1, 2, 3
Flavour_B is part of Flavour_Sets 2, 3
Flavour_C is part of Flavour_Sets 1, 3, 4

Host_1 supports flavour Set 1
Host_2 supports flavour Set 2
Host_3 supports flavour Set 3
Host_4 supports flavour Set 4


From the Essex design summit I thought that host aggregates was going to give 
this sort of capability, but having looked through the code that seems to be 
quite tightly coupled with specific hypervisor functionality, whereas this is 
purely a scheduler feature.

I can see that I could define flavour group membership through the 
instanace_type_extra_specs, but not how to then associate these with specific 
hosts.

I know I’m a tad behind some of the recent changes – so before suggesting a 
design summit session on this I thought I’d ask - is there something that 
already does this type of mapping ?

Cheers,
Phil



___
Mailing list: https://launchpad.net/~openstack
Post to : 
openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Limit flavors to specific hosts

2012-04-02 Thread Lorin Hochstein
Phil:

I don't know of a way to do this in Essex. However, when I was working at ISI, 
we added a configuration option called extra_node_capabilities that allows 
you to specify the capabilities of a particular host in the 
/etc/nova/nova.conf, and these capabilities are checked against the 
extra_specs. 

See the following lines of code in ISI's repo:

https://github.com/usc-isi/nova/blob/hpc-trunk/nova/virt/libvirt/connection.py#L163
https://github.com/usc-isi/nova/blob/hpc-trunk/nova/virt/libvirt/connection.py#L2669

I don't know how much reporting of capabilities has changed from diablo to 
essex, though, so no clue if that code would still work if ported to the 
current trunk.

Take care,

Lorin
--
Lorin Hochstein
Lead Architect - Cloud Services
Nimbis Services, Inc.
www.nimbisservices.com





On Apr 2, 2012, at 1:36 PM, Day, Phil wrote:

 Hi Folks,
  
 I’m looking for a capability to limit some flavours to some hosts.  I want 
 the mapping to be as flexible as possible, and work within a zone/cell  (I 
 don’t want to add zones just to get this mapping).For example I want to 
 express something like:
  
 Host_1 supports flavours A, C
 Host_2 supports flavours A, B
 Host_3 supports flavours A, B, C
 Host_4 supports flavours D
  
 Ideally there would be some form of grouping to sets of flavours:
  
 Flavour_A  is part of Flavour_Sets 1, 2, 3
 Flavour_B is part of Flavour_Sets 2, 3
 Flavour_C is part of Flavour_Sets 1, 3, 4
  
 Host_1 supports flavour Set 1
 Host_2 supports flavour Set 2
 Host_3 supports flavour Set 3
 Host_4 supports flavour Set 4
  
  
 From the Essex design summit I thought that host aggregates was going to give 
 this sort of capability, but having looked through the code that seems to be 
 quite tightly coupled with specific hypervisor functionality, whereas this is 
 purely a scheduler feature.
  
 I can see that I could define flavour group membership through the 
 instanace_type_extra_specs, but not how to then associate these with specific 
 hosts. 
  
 I know I’m a tad behind some of the recent changes – so before suggesting a 
 design summit session on this I thought I’d ask - is there something that 
 already does this type of mapping ?
  
 Cheers,
 Phil
  
  
  
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Limit flavors to specific hosts

2012-04-02 Thread Jay Pipes
Can I add a feature request to the below thoughtstream? Can we make it 
so that the management of these things can be done outside of config 
files? i.e. via a REST API with some simple middleware exposing the 
particular scheduler nodes' understanding of which capabilities/filters 
it is using to apply its scheduling algorithm?


Making changes to configuration files works OK for simple uses and 
testing, not so much for on-demand operations :) I say this after 
grumbling about similar configuration obstacles with ratelimits.


Best,
-jay

On 04/02/2012 02:37 PM, Chris Behrens wrote:

I have some plans for being able to set arbitrary capabilities for
hosts via nova.conf that you can use to build scheduler filters.

Right now, there are capabilities, but I believe we're only creating
these from hypervisor stats. You can filter on those today. What I'm
planning on adding is a way to specify additional keyname/value pairs in
nova.conf to supplement the capabilities we build from hypervisor stats.
You could set things like this in your nova.conf:

--host_capabilities=instance_type_ids=1,2,3;keyX;keyY=something

etc. Since capabilities are already passed to scheduler rules, you could
add some basic filters that do:

if 'instance_type_ids' in capabilities and instance_type.id not in
capabilities['instance_type_ids']:
return False

Since host_capabilities are just arbitrary keyname/value pairs, you can
pretty much add anything you want to --host_capabilities and then write
some matching scheduler filter rules.

That's the basic idea, anyway. The exact same behavior will apply to
'cells' and the cells scheduler as well. (Except you'll have
cells_capabilities= somewhere (prob nova.conf for the cells service).

- Chris


On Apr 2, 2012, at 10:36 AM, Day, Phil wrote:


Hi Folks,
I’m looking for a capability to limit some flavours to some hosts. I
want the mapping to be as flexible as possible, and work within a
zone/cell (I don’t want to add zones just to get this mapping). For
example I want to express something like:
Host_1 supports flavours A, C
Host_2 supports flavours A, B
Host_3 supports flavours A, B, C
Host_4 supports flavours D
Ideally there would be some form of grouping to sets of flavours:
Flavour_A is part of Flavour_Sets 1, 2, 3
Flavour_B is part of Flavour_Sets 2, 3
Flavour_C is part of Flavour_Sets 1, 3, 4
Host_1 supports flavour Set 1
Host_2 supports flavour Set 2
Host_3 supports flavour Set 3
Host_4 supports flavour Set 4
From the Essex design summit I thought that host aggregates was going to give 
this sort of capability, but having looked through the code that seems to be quite 
tightly coupled with specific hypervisor functionality, whereas this is purely a 
scheduler feature.
I can see that I could define flavour group membership through the
instanace_type_extra_specs, but not how to then associate these with
specific hosts.
I know I’m a tad behind some of the recent changes – so before
suggesting a design summit session on this I thought I’d ask - is
there something that already does this type of mapping ?
Cheers,
Phil
___
Mailing list:https://launchpad.net/~openstack
Post to :openstack@lists.launchpad.net
mailto:openstack@lists.launchpad.net
Unsubscribe :https://launchpad.net/~openstack
More help :https://help.launchpad.net/ListHelp




___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Limit flavors to specific hosts

2012-04-02 Thread Ed_Conzel
+1

-Original Message-
From: openstack-bounces+ed_conzel=dell@lists.launchpad.net 
[mailto:openstack-bounces+ed_conzel=dell@lists.launchpad.net] On Behalf Of 
Jay Pipes
Sent: Monday, April 02, 2012 2:29 PM
To: openstack@lists.launchpad.net
Subject: Re: [Openstack] Limit flavors to specific hosts

Can I add a feature request to the below thoughtstream? Can we make it so that 
the management of these things can be done outside of config files? i.e. via a 
REST API with some simple middleware exposing the particular scheduler nodes' 
understanding of which capabilities/filters it is using to apply its scheduling 
algorithm?

Making changes to configuration files works OK for simple uses and testing, not 
so much for on-demand operations :) I say this after grumbling about similar 
configuration obstacles with ratelimits.

Best,
-jay

On 04/02/2012 02:37 PM, Chris Behrens wrote:
 I have some plans for being able to set arbitrary capabilities for 
 hosts via nova.conf that you can use to build scheduler filters.

 Right now, there are capabilities, but I believe we're only creating 
 these from hypervisor stats. You can filter on those today. What I'm 
 planning on adding is a way to specify additional keyname/value pairs 
 in nova.conf to supplement the capabilities we build from hypervisor stats.
 You could set things like this in your nova.conf:

 --host_capabilities=instance_type_ids=1,2,3;keyX;keyY=something

 etc. Since capabilities are already passed to scheduler rules, you 
 could add some basic filters that do:

 if 'instance_type_ids' in capabilities and instance_type.id not in
 capabilities['instance_type_ids']:
 return False

 Since host_capabilities are just arbitrary keyname/value pairs, you 
 can pretty much add anything you want to --host_capabilities and then 
 write some matching scheduler filter rules.

 That's the basic idea, anyway. The exact same behavior will apply to 
 'cells' and the cells scheduler as well. (Except you'll have 
 cells_capabilities= somewhere (prob nova.conf for the cells service).

 - Chris


 On Apr 2, 2012, at 10:36 AM, Day, Phil wrote:

 Hi Folks,
 I'm looking for a capability to limit some flavours to some hosts. I 
 want the mapping to be as flexible as possible, and work within a 
 zone/cell (I don't want to add zones just to get this mapping). For 
 example I want to express something like:
 Host_1 supports flavours A, C
 Host_2 supports flavours A, B
 Host_3 supports flavours A, B, C
 Host_4 supports flavours D
 Ideally there would be some form of grouping to sets of flavours:
 Flavour_A is part of Flavour_Sets 1, 2, 3 Flavour_B is part of 
 Flavour_Sets 2, 3 Flavour_C is part of Flavour_Sets 1, 3, 4
 Host_1 supports flavour Set 1
 Host_2 supports flavour Set 2
 Host_3 supports flavour Set 3
 Host_4 supports flavour Set 4
 From the Essex design summit I thought that host aggregates was going to 
 give this sort of capability, but having looked through the code that seems 
 to be quite tightly coupled with specific hypervisor functionality, whereas 
 this is purely a scheduler feature.
 I can see that I could define flavour group membership through the 
 instanace_type_extra_specs, but not how to then associate these with 
 specific hosts.
 I know I'm a tad behind some of the recent changes - so before 
 suggesting a design summit session on this I thought I'd ask - is 
 there something that already does this type of mapping ?
 Cheers,
 Phil
 ___
 Mailing list:https://launchpad.net/~openstack
 Post to :openstack@lists.launchpad.net 
 mailto:openstack@lists.launchpad.net
 Unsubscribe :https://launchpad.net/~openstack More help 
 :https://help.launchpad.net/ListHelp



 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Limit flavors to specific hosts

2012-04-02 Thread Jan Drake
If I understand this correctly, the motivation is to be able to provide a hint 
to schedulers on host-level appropriateness based on information external to 
that found in the hyperviser. 

Right/Wrong/Close?

It would help to have a real-world example of where basic host resource  
evalution for scheduling would cause a situation requiring the host-level 
hard-coding of what is essentially a flavor-constraint.

I'll hold further thoughts for downstream.


Jan


On Apr 2, 2012, at 6:06 PM, Lorin Hochstein lo...@nimbisservices.com wrote:

 Just created a blueprint for this:
 
 https://blueprints.launchpad.net/nova/+spec/host-capabilities-api
 
 
 Take care,
 
 Lorin
 --
 Lorin Hochstein
 Lead Architect - Cloud Services
 Nimbis Services, Inc.
 www.nimbisservices.com
 
 
 
 
 
 On Apr 2, 2012, at 3:29 PM, Jay Pipes wrote:
 
 Can I add a feature request to the below thoughtstream? Can we make it so 
 that the management of these things can be done outside of config files? 
 i.e. via a REST API with some simple middleware exposing the particular 
 scheduler nodes' understanding of which capabilities/filters it is using to 
 apply its scheduling algorithm?
 
 Making changes to configuration files works OK for simple uses and testing, 
 not so much for on-demand operations :) I say this after grumbling about 
 similar configuration obstacles with ratelimits.
 
 Best,
 -jay
 
 On 04/02/2012 02:37 PM, Chris Behrens wrote:
 I have some plans for being able to set arbitrary capabilities for
 hosts via nova.conf that you can use to build scheduler filters.
 
 Right now, there are capabilities, but I believe we're only creating
 these from hypervisor stats. You can filter on those today. What I'm
 planning on adding is a way to specify additional keyname/value pairs in
 nova.conf to supplement the capabilities we build from hypervisor stats.
 You could set things like this in your nova.conf:
 
 --host_capabilities=instance_type_ids=1,2,3;keyX;keyY=something
 
 etc. Since capabilities are already passed to scheduler rules, you could
 add some basic filters that do:
 
 if 'instance_type_ids' in capabilities and instance_type.id not in
 capabilities['instance_type_ids']:
 return False
 
 Since host_capabilities are just arbitrary keyname/value pairs, you can
 pretty much add anything you want to --host_capabilities and then write
 some matching scheduler filter rules.
 
 That's the basic idea, anyway. The exact same behavior will apply to
 'cells' and the cells scheduler as well. (Except you'll have
 cells_capabilities= somewhere (prob nova.conf for the cells service).
 
 - Chris
 
 
 On Apr 2, 2012, at 10:36 AM, Day, Phil wrote:
 
 Hi Folks,
 I’m looking for a capability to limit some flavours to some hosts. I
 want the mapping to be as flexible as possible, and work within a
 zone/cell (I don’t want to add zones just to get this mapping). For
 example I want to express something like:
 Host_1 supports flavours A, C
 Host_2 supports flavours A, B
 Host_3 supports flavours A, B, C
 Host_4 supports flavours D
 Ideally there would be some form of grouping to sets of flavours:
 Flavour_A is part of Flavour_Sets 1, 2, 3
 Flavour_B is part of Flavour_Sets 2, 3
 Flavour_C is part of Flavour_Sets 1, 3, 4
 Host_1 supports flavour Set 1
 Host_2 supports flavour Set 2
 Host_3 supports flavour Set 3
 Host_4 supports flavour Set 4
 From the Essex design summit I thought that host aggregates was going to 
 give this sort of capability, but having looked through the code that 
 seems to be quite tightly coupled with specific hypervisor functionality, 
 whereas this is purely a scheduler feature.
 I can see that I could define flavour group membership through the
 instanace_type_extra_specs, but not how to then associate these with
 specific hosts.
 I know I’m a tad behind some of the recent changes – so before
 suggesting a design summit session on this I thought I’d ask - is
 there something that already does this type of mapping ?
 Cheers,
 Phil
 ___
 Mailing list:https://launchpad.net/~openstack
 Post to :openstack@lists.launchpad.net
 mailto:openstack@lists.launchpad.net
 Unsubscribe :https://launchpad.net/~openstack
 More help :https://help.launchpad.net/ListHelp
 
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp

Re: [Openstack] Limit flavors to specific hosts

2012-04-02 Thread Lorin Hochstein
Jan:

Here are two use cases from when I was at ISI. In both cases, we wanted access 
to a machine with customized hardware to improve performance of certain 
applications:

1. GPUs.  We wanted the users to be able to specify request a host that had GPU 
cards so they could run GPU-accelarated apps in their instances. 

2. Shared-memory machine. We had an SGI UV machine with specific performance 
characteristics, and sometimes we wanted to specifically launch instances on 
that machine, even if the instance could fit on one of the regular x86 boxes we 
had. So we had an extra spec with something like system=uv.


Take care,

Lorin
--
Lorin Hochstein
Lead Architect - Cloud Services
Nimbis Services, Inc.
www.nimbisservices.com





On Apr 2, 2012, at 9:23 PM, Jan Drake wrote:

 If I understand this correctly, the motivation is to be able to provide a 
 hint to schedulers on host-level appropriateness based on information 
 external to that found in the hyperviser.  
 
 Right/Wrong/Close?
 
 It would help to have a real-world example of where basic host resource  
 evalution for scheduling would cause a situation requiring the host-level 
 hard-coding of what is essentially a flavor-constraint.
 
 I'll hold further thoughts for downstream.
 
 
 Jan
 
 
 On Apr 2, 2012, at 6:06 PM, Lorin Hochstein lo...@nimbisservices.com wrote:
 
 Just created a blueprint for this:
 
 https://blueprints.launchpad.net/nova/+spec/host-capabilities-api
 
 
 Take care,
 
 Lorin
 --
 Lorin Hochstein
 Lead Architect - Cloud Services
 Nimbis Services, Inc.
 www.nimbisservices.com
 
 
 
 
 
 On Apr 2, 2012, at 3:29 PM, Jay Pipes wrote:
 
 Can I add a feature request to the below thoughtstream? Can we make it so 
 that the management of these things can be done outside of config files? 
 i.e. via a REST API with some simple middleware exposing the particular 
 scheduler nodes' understanding of which capabilities/filters it is using to 
 apply its scheduling algorithm?
 
 Making changes to configuration files works OK for simple uses and testing, 
 not so much for on-demand operations :) I say this after grumbling about 
 similar configuration obstacles with ratelimits.
 
 Best,
 -jay
 
 On 04/02/2012 02:37 PM, Chris Behrens wrote:
 I have some plans for being able to set arbitrary capabilities for
 hosts via nova.conf that you can use to build scheduler filters.
 
 Right now, there are capabilities, but I believe we're only creating
 these from hypervisor stats. You can filter on those today. What I'm
 planning on adding is a way to specify additional keyname/value pairs in
 nova.conf to supplement the capabilities we build from hypervisor stats.
 You could set things like this in your nova.conf:
 
 --host_capabilities=instance_type_ids=1,2,3;keyX;keyY=something
 
 etc. Since capabilities are already passed to scheduler rules, you could
 add some basic filters that do:
 
 if 'instance_type_ids' in capabilities and instance_type.id not in
 capabilities['instance_type_ids']:
 return False
 
 Since host_capabilities are just arbitrary keyname/value pairs, you can
 pretty much add anything you want to --host_capabilities and then write
 some matching scheduler filter rules.
 
 That's the basic idea, anyway. The exact same behavior will apply to
 'cells' and the cells scheduler as well. (Except you'll have
 cells_capabilities= somewhere (prob nova.conf for the cells service).
 
 - Chris
 
 
 On Apr 2, 2012, at 10:36 AM, Day, Phil wrote:
 
 Hi Folks,
 I’m looking for a capability to limit some flavours to some hosts. I
 want the mapping to be as flexible as possible, and work within a
 zone/cell (I don’t want to add zones just to get this mapping). For
 example I want to express something like:
 Host_1 supports flavours A, C
 Host_2 supports flavours A, B
 Host_3 supports flavours A, B, C
 Host_4 supports flavours D
 Ideally there would be some form of grouping to sets of flavours:
 Flavour_A is part of Flavour_Sets 1, 2, 3
 Flavour_B is part of Flavour_Sets 2, 3
 Flavour_C is part of Flavour_Sets 1, 3, 4
 Host_1 supports flavour Set 1
 Host_2 supports flavour Set 2
 Host_3 supports flavour Set 3
 Host_4 supports flavour Set 4
 From the Essex design summit I thought that host aggregates was going to 
 give this sort of capability, but having looked through the code that 
 seems to be quite tightly coupled with specific hypervisor 
 functionality, whereas this is purely a scheduler feature.
 I can see that I could define flavour group membership through the
 instanace_type_extra_specs, but not how to then associate these with
 specific hosts.
 I know I’m a tad behind some of the recent changes – so before
 suggesting a design summit session on this I thought I’d ask - is
 there something that already does this type of mapping ?
 Cheers,
 Phil
 ___
 Mailing list:https://launchpad.net/~openstack
 Post to :openstack@lists.launchpad.net
 mailto:openstack@lists.launchpad.net
 Unsubscribe