Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-02-04 Thread Ladislav Smola

Hello,

+1 to 'let's work towards having a single Node Profile (flavor) 
associated with each Deployment Role (pages 12  13 of the latest 
mockups[1])'


Good start.

We could have also more flavors per role now, user just would have to be 
advised: You are using one image for multiple hardware, so be sure it's 
compatible. So it probably make sense to limit it for one flavor per 
role for now.


Regards
Ladislav


On 02/03/2014 12:23 PM, Tomas Sedovic wrote:

My apologies for firing this off and then hiding under the FOSDEM rock.

In light of the points raised by Devananda and Robert, I no longer 
think fiddling with the scheduler is the way to go.


Note this was never intended to break/confuse all TripleO users -- I 
considered it a cleaner equivalent to entering incorrect HW specs 
(i.e. instead of doing that you would switch to this other filter in 
nova.conf).


Regardless, I stand corrected on the distinction between heterogeneous 
hardware all the way and having a flavour per service definition. That 
was a very good point to raise.


I'm fine with both approaches.

So yeah, let's work towards having a single Node Profile (flavor) 
associated with each Deployment Role (pages 12  13 of the latest 
mockups[1]), optionally starting with requiring all the Node Profiles 
to be equal.


Once that's working fine, we can look into the harder case of having 
multiple Node Profiles within a Deployment Role.


Is everyone comfortable with that?

Tomas

[1]: 
http://people.redhat.com/~jcoufal/openstack/tripleo/2014-01-27_tripleo-ui-icehouse.pdf


On 03/02/14 00:21, Robert Collins wrote:

On 3 February 2014 08:45, Jaromir Coufal jcou...@redhat.com wrote:





However, taking a step back, maybe the real answer is:

a) homogeneous nodes
b) document. . .
 - **unsupported** means of demoing Tuskar (set node 
attributes to

match flavors, hack
   the scheduler, etc)


Why are people calling it 'hack'? It's an additional filter to
nova-scheduler...?


It doesn't properly support the use case; its extra code to write and
test and configure that is precisely identical to mis-registering
nodes.


 - our goals of supporting heterogeneous nodes for the J-release.


I wouldn't talk about J-release. I would talk about next iteration 
or next

step. Nobody said that we are not able to make it in I-release.


+1




Does this seem reasonable to everyone?

Mainn



Well +1 for a) and it's documentation.

However me and Robert, we look to have different opinions on what
'homogeneous' means in our context. I think we should clarify that.


So I think my point is more this:
  - either this iteration is entirely limited to homogeneous hardware,
in which case, document it, not workarounds or custom schedulers etc.
  - or it isn't limited, in which case we should consider the options:
- flavor per service definition
- custom scheduler
- register nodes wrongly

-Rob




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



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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-02-04 Thread Jaromir Coufal


On 2014/03/02 12:23, Tomas Sedovic wrote:

My apologies for firing this off and then hiding under the FOSDEM rock.

In light of the points raised by Devananda and Robert, I no longer think
fiddling with the scheduler is the way to go.

Note this was never intended to break/confuse all TripleO users -- I
considered it a cleaner equivalent to entering incorrect HW specs (i.e.
instead of doing that you would switch to this other filter in nova.conf).

Regardless, I stand corrected on the distinction between heterogeneous
hardware all the way and having a flavour per service definition. That
was a very good point to raise.

I'm fine with both approaches.

So yeah, let's work towards having a single Node Profile (flavor)
associated with each Deployment Role (pages 12  13 of the latest
mockups[1]), optionally starting with requiring all the Node Profiles to
be equal.
I think here is a small misinterpretation. All Node Profiles don't have 
to be equal. We just support one Node Profile association per role.



Once that's working fine, we can look into the harder case of having
multiple Node Profiles within a Deployment Role.

Is everyone comfortable with that?

Tomas

[1]:
http://people.redhat.com/~jcoufal/openstack/tripleo/2014-01-27_tripleo-ui-icehouse.pdf


+1 for this approach.

-- Jarda

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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-02-04 Thread Jaromir Coufal


On 2014/03/02 00:21, Robert Collins wrote:

[snip]


However me and Robert, we look to have different opinions on what
'homogeneous' means in our context. I think we should clarify that.


So I think my point is more this:
  - either this iteration is entirely limited to homogeneous hardware,
in which case, document it, not workarounds or custom schedulers etc.
  - or it isn't limited, in which case we should consider the options:
- flavor per service definition
It was confirmed that this solution doesn't have to be big chunk of work 
worth splitting into different iterations, so +1 for this solution in 
the first iteration.



- custom scheduler
- register nodes wrongly

-Rob


Thanks all for clarification.

-- Jarda

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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-02-03 Thread Tomas Sedovic

My apologies for firing this off and then hiding under the FOSDEM rock.

In light of the points raised by Devananda and Robert, I no longer think 
fiddling with the scheduler is the way to go.


Note this was never intended to break/confuse all TripleO users -- I 
considered it a cleaner equivalent to entering incorrect HW specs (i.e. 
instead of doing that you would switch to this other filter in nova.conf).


Regardless, I stand corrected on the distinction between heterogeneous 
hardware all the way and having a flavour per service definition. That 
was a very good point to raise.


I'm fine with both approaches.

So yeah, let's work towards having a single Node Profile (flavor) 
associated with each Deployment Role (pages 12  13 of the latest 
mockups[1]), optionally starting with requiring all the Node Profiles to 
be equal.


Once that's working fine, we can look into the harder case of having 
multiple Node Profiles within a Deployment Role.


Is everyone comfortable with that?

Tomas

[1]: 
http://people.redhat.com/~jcoufal/openstack/tripleo/2014-01-27_tripleo-ui-icehouse.pdf


On 03/02/14 00:21, Robert Collins wrote:

On 3 February 2014 08:45, Jaromir Coufal jcou...@redhat.com wrote:





However, taking a step back, maybe the real answer is:

a) homogeneous nodes
b) document. . .
 - **unsupported** means of demoing Tuskar (set node attributes to
match flavors, hack
   the scheduler, etc)


Why are people calling it 'hack'? It's an additional filter to
nova-scheduler...?


It doesn't properly support the use case; its extra code to write and
test and configure that is precisely identical to mis-registering
nodes.


 - our goals of supporting heterogeneous nodes for the J-release.


I wouldn't talk about J-release. I would talk about next iteration or next
step. Nobody said that we are not able to make it in I-release.


+1




Does this seem reasonable to everyone?

Mainn



Well +1 for a) and it's documentation.

However me and Robert, we look to have different opinions on what
'homogeneous' means in our context. I think we should clarify that.


So I think my point is more this:
  - either this iteration is entirely limited to homogeneous hardware,
in which case, document it, not workarounds or custom schedulers etc.
  - or it isn't limited, in which case we should consider the options:
- flavor per service definition
- custom scheduler
- register nodes wrongly

-Rob




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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-02-02 Thread Jaromir Coufal

On 2014/30/01 12:59, Ladislav Smola wrote:
 On 01/30/2014 12:39 PM, Jiří Stránský wrote:
 On 01/30/2014 11:26 AM, Tomas Sedovic wrote:

[snip]

 I am for implementing support for Heterogeneous hardware properly,
 lifeless should post what he recommends soon, so I would rather discuss
 that. We should be able to do simple version in I.
Nobody ever said that any implementation of heterogeneous should be 
wrong or poor. This is misinterpretation.



 Lowest common denominator doesn't solve storage vs. compute node. If we
 really have similar hardware, we don't care about, we can just fill the
 nova-baremetal/ironic specs the same as the flavor.
I disagree with this point. This approach of yours will bring super huge 
confusion for the end user. Asking user to enter same values for 
different hardware specs will be huge mistake. User is required to enter 
the reality, it's up to us, how we will help him to make his life easier.


 Why would we want to see in UI that the hardware is different, when we
 can't really determine what goes where.
Because it is reality.

 And as you say assume homogenous hardware and treat it as such. So
 showing in UI that the hardware is different doesn't make any sense then.
This might be just wrong wording, but 'assume homogenous hardware and 
treat it as such' is meant in a way - we deploy roles on nodes randomly, 
because we assume similar HW - as a *first* step. Right after that, we 
add functionality for user to define flavors.


 So the solution for similar hardware is already there.

 I don't see this as an incremental step, but as ugly hack that is not
 placed anywhere on the roadmap.

 Regards,
 Ladislav

-- Jarda

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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-02-02 Thread Jaromir Coufal

On 2014/30/01 19:29, Tzu-Mainn Chen wrote:

Wouldn't lying about the hardware specs when registering nodes be
problematic for upgrades?  Users would have
to re-register their nodes.

+1 for problematic area here


One reason why a custom filter feels attractive is that it provides us
with a clear upgrade path:

Icehouse
   * nodes are registered with correct attributes
   * create a custom scheduler filter that allows any node to match
   * users are informed that for this release, Tuskar will not
differentiate between heterogeneous hardware

J-Release
   * implement the proper use of flavors within Tuskar, allowing Tuskar
to work with heterogeneous hardware
I don't think that this is J-release issue. We are very likely to handle 
this in I-release.



   * work with nova regarding scheduler filters (if needed)
   * remove the custom scheduler filter


Mainn


-- Jarda


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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-02-02 Thread Jaromir Coufal

On 2014/30/01 23:33, Devananda van der Veen wrote:

I was responding based on Treat similar hardware configuration as
equal. When there is a very minor difference in hardware (eg, 1TB vs
1.1TB disks), enrolling them with the same spec (1TB disk) is sufficient
to solve all these issues and mask the need for multiple flavors, and
the hardware wouldn't need to be re-enrolled.
I disagree here, of course user can register HW as they wish, it's their 
responsibility. But asking them to register nodes as equal (even if they 
are close) is going to be mess and huge confusion for users. You would 
actually ask user to enter non-real data - so that he can use our 
deployment tool somehow. From my point of view, this is not right 
approach and I would better see him entering correct information and us 
working with it.



My suggestion does not
address the desire to support significant variation in hardware specs,
such as 8GB RAM vs 64GB RAM, in which case, there is no situation in
which I think those differences should be glossed over, even as a
short-term hack in Icehouse.

if our baremetal flavour said 16GB ram and 1TB disk, it would also
match a node with 24GB ram or 1.5TB disk.

I think this will lead to a lot of confusion, and difficulty with
inventory / resource management. I don't think it's suitable even as a
first-approximation.

Put another way, I dislike the prospect of removing currently-available
functionality (an exact-match scheduler and support for multiple
flavors) to enable ease-of-use in a UI.
I would say this is not for ease-of-use in the UI. It's for bringing 
user functionality to deploy in the UI. Then, in next iteration, to 
support them by picking HW they care about.



Not that I dislike UIs or
anything... it just feels like two steps backwards. If the UI is limited
to homogeneous hardware, accept that; don't take away heterogeneous
hardware support from the rest of the stack.
It's not about taking away support for heterogeneous HW from the whole 
stack. I see the proposal more like adding another filter (possibility) 
for nova-scheduler.



Anyway, it sounds like Robert has a solution in mind, so this is all moot :)

Cheers,
Devananda


Cheers
-- Jarda

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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-02-02 Thread Robert Collins
On 1 February 2014 10:03, Tzu-Mainn Chen tzuma...@redhat.com wrote:
 So after reading the replies on this thread, it seems like I (and others 
 advocating
 a custom scheduler) may have overthought things a bit.  The reason this route 
 was
 suggested was because of conflicting goals for Icehouse:

 a) homogeneous nodes (to simplify requirements)
 b) support diverse hardware sets (to allow as many users as possible to try 
 Tuskar)

 Option b) requires either a custom scheduler or forcing nodes to have the 
 same attributes,
 and the answer to that question is where much of the debate lies.

Not really. It all depends on how you define 'support diverse hardware
sets'. The point I've consistently made is that by working within the
current scheduler we can easily deliver homogeneous support *within* a
given 'service role'. So that is (a), not 'every single node is
identical.

A (b) of supporting arbitrary hardware within a single service role is
significantly more complex, and while I think its entirely doable, it
would be a mistake to tackle this within I (and possibly J). I don't
think users will be impaired by us delaying however.

 However, taking a step back, maybe the real answer is:

 a) homogeneous nodes
 b) document. . .
- **unsupported** means of demoing Tuskar (set node attributes to match 
 flavors, hack
  the scheduler, etc)
- our goals of supporting heterogeneous nodes for the J-release.

 Does this seem reasonable to everyone?

No, because a) is overly scoped.

I think we should have a flavor attribute in the definition of a
service role, and no unsupported hacks needed; and J goals should be
given a chunk of time to refine in Atlanta.

-Rob

-- 
Robert Collins rbtcoll...@hp.com
Distinguished Technologist
HP Converged Cloud

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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-02-02 Thread Jaromir Coufal

On 2014/30/01 21:28, Robert Collins wrote:

On 30 January 2014 23:26, Tomas Sedovic tsedo...@redhat.com wrote:

Hi all,

I've seen some confusion regarding the homogenous hardware support as the
first step for the tripleo UI. I think it's time to make sure we're all on
the same page.

Here's what I think is not controversial:

1. Build the UI and everything underneath to work with homogenous hardware
in the Icehouse timeframe
2. Figure out how to support heterogenous hardware and do that (may or may
not happen within Icehouse)

The first option implies having a single nova flavour that will match all
the boxes we want to work with. It may or may not be surfaced in the UI (I
think that depends on our undercloud installation story).


I don't agree that (1) implies a single nova flavour. In the context
of the discussion it implied avoiding doing our own scheduling, and
due to the many moving parts we never got beyond that.
I think that homogeneous hardware implies single flavor. That's from the 
definition 'homogeneous'. Question is, how we treat it then.



My expectation is that (argh naming of things) a service definition[1]
will specify a nova flavour, right from the get go. That gives you
homogeneous hardware for any service
[control/network/block-storage/object-storage].
If a service definition specifies a nova flavor, then (based on the fact 
that we have 4 hard-coded roles) we are supporting heterogeneous HW 
(because we would allow user to specify 4 flavors).


What we agreed on in the beginning is homogeneous HW - which links to 
the fact that we have only one flavor.


We should really start with something *simple* and increment on that:

1) one flavor, no association to any role. This is what I see under 
homogeneous HW - MVP0. (As an addition for the sake of usability we 
wanted to add 'no care' filter - so that it picks node without need for 
specifying requirements).


2) association with role - one flavor per role - homogeneous hardware.

3) support multiple node profiles per role.

Why to complicate things from the very beginning (1)?


Jaromir's wireframes include the ability to define multiple such
definitions, so two definitions for compute, for instance (e.g. one
might be KVM, one Xen, or one w/GPUs and the other without, with a
different host aggregate configured).

As long as each definition has a nova flavour, users with multiple
hardware configurations can just create multiple definitions, done.

That is not entirely policy driven, so for longer term you want to be
able to say 'flavour X *or* Y can be used for this', but as a early
iteration it seems very straight forward to me.


Now, someone (I don't honestly know who or when) proposed a slight step up
from point #1 that would allow people to try the UI even if their hardware
varies slightly:



1.1 Treat similar hardware configuration as equal


I think this is a problematic idea, because of the points raised
elsewhere in the thread.

But more importantly, it's totally unnecessary. If one wants to handle
minor variations in hardware (e.g. 1TB vs 1.1TB disks) just register
them as being identical, with the lowest common denominator - Nova
will then treat them as equal.

-Rob


-- Jarda

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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-02-02 Thread Jaromir Coufal


On 2014/31/01 22:03, Tzu-Mainn Chen wrote:

So after reading the replies on this thread, it seems like I (and others 
advocating
a custom scheduler) may have overthought things a bit.  The reason this route 
was
suggested was because of conflicting goals for Icehouse:

a) homogeneous nodes (to simplify requirements)
b) support diverse hardware sets (to allow as many users as possible to try 
Tuskar)



Option b) requires either a custom scheduler or forcing nodes to have the same 
attributes,
and the answer to that question is where much of the debate lies.

I think these two goals are pretty accurate.


However, taking a step back, maybe the real answer is:

a) homogeneous nodes
b) document. . .
- **unsupported** means of demoing Tuskar (set node attributes to match 
flavors, hack
  the scheduler, etc)
Why are people calling it 'hack'? It's an additional filter to 
nova-scheduler...?



- our goals of supporting heterogeneous nodes for the J-release.
I wouldn't talk about J-release. I would talk about next iteration or 
next step. Nobody said that we are not able to make it in I-release.



Does this seem reasonable to everyone?

Mainn


Well +1 for a) and it's documentation.

However me and Robert, we look to have different opinions on what 
'homogeneous' means in our context. I think we should clarify that.


-- Jarda

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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-02-02 Thread Clint Byrum
Excerpts from Jaromir Coufal's message of 2014-02-02 11:19:25 -0800:
 On 2014/30/01 23:33, Devananda van der Veen wrote:
  I was responding based on Treat similar hardware configuration as
  equal. When there is a very minor difference in hardware (eg, 1TB vs
  1.1TB disks), enrolling them with the same spec (1TB disk) is sufficient
  to solve all these issues and mask the need for multiple flavors, and
  the hardware wouldn't need to be re-enrolled.
 I disagree here, of course user can register HW as they wish, it's their 
 responsibility. But asking them to register nodes as equal (even if they 
 are close) is going to be mess and huge confusion for users. You would 
 actually ask user to enter non-real data - so that he can use our 
 deployment tool somehow. From my point of view, this is not right 
 approach and I would better see him entering correct information and us 
 working with it.
 

I totally understand the desire to have it all make sense to users. I
wonder if the desire to have something working well in the next 30 days
should override the desire.

My thought is that early adopters are used to this sort of
work-around. Accept this bit of weirdness, and you get all this
awesomeness. In this case Register hardware with similar specs as
identical specs, and you will get automatic deployment over heterogeneous
hardware.

If we keep the scope narrow enough, those users only have to wait a few
more months to be able to make their hardware registrations more accurate.

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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-02-02 Thread Tzu-Mainn Chen
 On 1 February 2014 10:03, Tzu-Mainn Chen tzuma...@redhat.com wrote:
  So after reading the replies on this thread, it seems like I (and others
  advocating
  a custom scheduler) may have overthought things a bit.  The reason this
  route was
  suggested was because of conflicting goals for Icehouse:
 
  a) homogeneous nodes (to simplify requirements)
  b) support diverse hardware sets (to allow as many users as possible to try
  Tuskar)
 
  Option b) requires either a custom scheduler or forcing nodes to have the
  same attributes,
  and the answer to that question is where much of the debate lies.
 
 Not really. It all depends on how you define 'support diverse hardware
 sets'. The point I've consistently made is that by working within the
 current scheduler we can easily deliver homogeneous support *within* a
 given 'service role'. So that is (a), not 'every single node is
 identical.
 
 A (b) of supporting arbitrary hardware within a single service role is
 significantly more complex, and while I think its entirely doable, it
 would be a mistake to tackle this within I (and possibly J). I don't
 think users will be impaired by us delaying however.
 
  However, taking a step back, maybe the real answer is:
 
  a) homogeneous nodes
  b) document. . .
 - **unsupported** means of demoing Tuskar (set node attributes to
 match flavors, hack
   the scheduler, etc)
 - our goals of supporting heterogeneous nodes for the J-release.
 
  Does this seem reasonable to everyone?
 
 No, because a) is overly scoped.
 
 I think we should have a flavor attribute in the definition of a
 service role, and no unsupported hacks needed; and J goals should be
 given a chunk of time to refine in Atlanta.

Fair enough.  It's my fault for being imprecise, but in my email I meant 
homogeneous
as homogeneous per service role.

That being said, are people on board with:

a) a single flavor per service role for Icehouse?
b) documentation as suggested above?

A single flavor per service role shouldn't be significantly harder than a 
single flavor
for all service roles (multiple flavors per service role is where tricky issues 
start
to creep in).

Mainn

 -Rob
 
 --
 Robert Collins rbtcoll...@hp.com
 Distinguished Technologist
 HP Converged Cloud
 
 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
 

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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-01-31 Thread Tzu-Mainn Chen
So after reading the replies on this thread, it seems like I (and others 
advocating
a custom scheduler) may have overthought things a bit.  The reason this route 
was
suggested was because of conflicting goals for Icehouse:

a) homogeneous nodes (to simplify requirements)
b) support diverse hardware sets (to allow as many users as possible to try 
Tuskar)

Option b) requires either a custom scheduler or forcing nodes to have the same 
attributes,
and the answer to that question is where much of the debate lies.

However, taking a step back, maybe the real answer is:

a) homogeneous nodes
b) document. . .
   - **unsupported** means of demoing Tuskar (set node attributes to match 
flavors, hack
 the scheduler, etc)
   - our goals of supporting heterogeneous nodes for the J-release.

Does this seem reasonable to everyone?


Mainn

- Original Message -
 On 30 January 2014 23:26, Tomas Sedovic tsedo...@redhat.com wrote:
  Hi all,
 
  I've seen some confusion regarding the homogenous hardware support as the
  first step for the tripleo UI. I think it's time to make sure we're all on
  the same page.
 
  Here's what I think is not controversial:
 
  1. Build the UI and everything underneath to work with homogenous hardware
  in the Icehouse timeframe
  2. Figure out how to support heterogenous hardware and do that (may or may
  not happen within Icehouse)
 
  The first option implies having a single nova flavour that will match all
  the boxes we want to work with. It may or may not be surfaced in the UI (I
  think that depends on our undercloud installation story).
 
 I don't agree that (1) implies a single nova flavour. In the context
 of the discussion it implied avoiding doing our own scheduling, and
 due to the many moving parts we never got beyond that.
 
 My expectation is that (argh naming of things) a service definition[1]
 will specify a nova flavour, right from the get go. That gives you
 homogeneous hardware for any service
 [control/network/block-storage/object-storage].
 
 Jaromir's wireframes include the ability to define multiple such
 definitions, so two definitions for compute, for instance (e.g. one
 might be KVM, one Xen, or one w/GPUs and the other without, with a
 different host aggregate configured).
 
 As long as each definition has a nova flavour, users with multiple
 hardware configurations can just create multiple definitions, done.
 
 That is not entirely policy driven, so for longer term you want to be
 able to say 'flavour X *or* Y can be used for this', but as a early
 iteration it seems very straight forward to me.
 
  Now, someone (I don't honestly know who or when) proposed a slight step up
  from point #1 that would allow people to try the UI even if their hardware
  varies slightly:
 
  1.1 Treat similar hardware configuration as equal
 
 I think this is a problematic idea, because of the points raised
 elsewhere in the thread.
 
 But more importantly, it's totally unnecessary. If one wants to handle
 minor variations in hardware (e.g. 1TB vs 1.1TB disks) just register
 them as being identical, with the lowest common denominator - Nova
 will then treat them as equal.
 
 -Rob
 
 --
 Robert Collins rbtcoll...@hp.com
 Distinguished Technologist
 HP Converged Cloud
 
 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
 

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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-01-31 Thread Devananda van der Veen
On Fri, Jan 31, 2014 at 1:03 PM, Tzu-Mainn Chen tzuma...@redhat.com wrote:

 So after reading the replies on this thread, it seems like I (and others
 advocating
 a custom scheduler) may have overthought things a bit.  The reason this
 route was
 suggested was because of conflicting goals for Icehouse:

 a) homogeneous nodes (to simplify requirements)
 b) support diverse hardware sets (to allow as many users as possible to
 try Tuskar)

 Option b) requires either a custom scheduler or forcing nodes to have the
 same attributes,
 and the answer to that question is where much of the debate lies.

 However, taking a step back, maybe the real answer is:

 a) homogeneous nodes
 b) document. . .
- **unsupported** means of demoing Tuskar (set node attributes to
 match flavors, hack
  the scheduler, etc)
- our goals of supporting heterogeneous nodes for the J-release.

 Does this seem reasonable to everyone?


+1

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


[openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-01-30 Thread Tomas Sedovic

Hi all,

I've seen some confusion regarding the homogenous hardware support as 
the first step for the tripleo UI. I think it's time to make sure we're 
all on the same page.


Here's what I think is not controversial:

1. Build the UI and everything underneath to work with homogenous 
hardware in the Icehouse timeframe
2. Figure out how to support heterogenous hardware and do that (may or 
may not happen within Icehouse)


The first option implies having a single nova flavour that will match 
all the boxes we want to work with. It may or may not be surfaced in the 
UI (I think that depends on our undercloud installation story).


Now, someone (I don't honestly know who or when) proposed a slight step 
up from point #1 that would allow people to try the UI even if their 
hardware varies slightly:


1.1 Treat similar hardware configuration as equal

The way I understand it is this: we use a scheduler filter that wouldn't 
do a strict match on the hardware in Ironic. E.g. if our baremetal 
flavour said 16GB ram and 1TB disk, it would also match a node with 24GB 
ram or 1.5TB disk.


The UI would still assume homogenous hardware and treat it as such. It's 
just that we would allow for small differences.


This *isn't* proposing we match ARM to x64 or offer a box with 24GB RAM 
when the flavour says 32. We would treat the flavour as a lowest common 
denominator.


Nor is this an alternative to a full heterogenous hardware support. We 
need to do that eventually anyway. This is just to make the first MVP 
useful to more people.


It's an incremental step that would affect neither point 1. (strict 
homogenous hardware) nor point 2. (full heterogenous hardware support).


If some of these assumptions are incorrect, please let me know. I don't 
think this is an insane U-turn from anything we've already agreed to do, 
but it seems to confuse people.


At any rate, this is not a huge deal and if it's not a good idea, let's 
just drop it.


Tomas

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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-01-30 Thread Jiří Stránský

On 01/30/2014 11:26 AM, Tomas Sedovic wrote:

1.1 Treat similar hardware configuration as equal

The way I understand it is this: we use a scheduler filter that wouldn't
do a strict match on the hardware in Ironic. E.g. if our baremetal
flavour said 16GB ram and 1TB disk, it would also match a node with 24GB
ram or 1.5TB disk.

The UI would still assume homogenous hardware and treat it as such. It's
just that we would allow for small differences.

This *isn't* proposing we match ARM to x64 or offer a box with 24GB RAM
when the flavour says 32. We would treat the flavour as a lowest common
denominator.

Nor is this an alternative to a full heterogenous hardware support. We
need to do that eventually anyway. This is just to make the first MVP
useful to more people.

It's an incremental step that would affect neither point 1. (strict
homogenous hardware) nor point 2. (full heterogenous hardware support).

If some of these assumptions are incorrect, please let me know. I don't
think this is an insane U-turn from anything we've already agreed to do,
but it seems to confuse people.


I think having this would allow users with almost-homogeous hardware use 
TripleO. If someone already has precisely homogenous hardware, they 
won't notice a difference.


So i'm +1 for this idea. The condition should be that it's easy to 
implement, because imho it's something that will get dropped when 
support for fully heterogenous hardware is added.


Jirka


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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-01-30 Thread Ladislav Smola

On 01/30/2014 12:39 PM, Jiří Stránský wrote:

On 01/30/2014 11:26 AM, Tomas Sedovic wrote:

1.1 Treat similar hardware configuration as equal

The way I understand it is this: we use a scheduler filter that wouldn't
do a strict match on the hardware in Ironic. E.g. if our baremetal
flavour said 16GB ram and 1TB disk, it would also match a node with 24GB
ram or 1.5TB disk.

The UI would still assume homogenous hardware and treat it as such. It's
just that we would allow for small differences.

This *isn't* proposing we match ARM to x64 or offer a box with 24GB RAM
when the flavour says 32. We would treat the flavour as a lowest common
denominator.

Nor is this an alternative to a full heterogenous hardware support. We
need to do that eventually anyway. This is just to make the first MVP
useful to more people.

It's an incremental step that would affect neither point 1. (strict
homogenous hardware) nor point 2. (full heterogenous hardware support).

If some of these assumptions are incorrect, please let me know. I don't
think this is an insane U-turn from anything we've already agreed to do,
but it seems to confuse people.


I think having this would allow users with almost-homogeous hardware 
use TripleO. If someone already has precisely homogenous hardware, 
they won't notice a difference.


So i'm +1 for this idea. The condition should be that it's easy to 
implement, because imho it's something that will get dropped when 
support for fully heterogenous hardware is added.


Jirka



Hello,

I am for implementing support for Heterogeneous hardware properly, 
lifeless should post what he recommends soon, so I would rather discuss 
that. We should be able to do simple version in I.


Lowest common denominator doesn't solve storage vs. compute node. If we 
really have similar hardware, we don't care about, we can just fill the 
nova-baremetal/ironic specs the same as the flavor.
Why would we want to see in UI that the hardware is different, when we 
can't really determine what goes where.
And as you say assume homogenous hardware and treat it as such. So 
showing in UI that the hardware is different doesn't make any sense then.

So the solution for similar hardware is already there.

I don't see this as an incremental step, but as ugly hack that is not 
placed anywhere on the roadmap.


Regards,
Ladislav


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



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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-01-30 Thread Matt Wagner
On 1/30/14, 5:26 AM, Tomas Sedovic wrote:
 Hi all,
 
 I've seen some confusion regarding the homogenous hardware support as
 the first step for the tripleo UI. I think it's time to make sure we're
 all on the same page.
 
 Here's what I think is not controversial:
 
 1. Build the UI and everything underneath to work with homogenous
 hardware in the Icehouse timeframe
 2. Figure out how to support heterogenous hardware and do that (may or
 may not happen within Icehouse)
 
 The first option implies having a single nova flavour that will match
 all the boxes we want to work with. It may or may not be surfaced in the
 UI (I think that depends on our undercloud installation story).
 
 Now, someone (I don't honestly know who or when) proposed a slight step
 up from point #1 that would allow people to try the UI even if their
 hardware varies slightly:
 
 1.1 Treat similar hardware configuration as equal
 
 The way I understand it is this: we use a scheduler filter that wouldn't
 do a strict match on the hardware in Ironic. E.g. if our baremetal
 flavour said 16GB ram and 1TB disk, it would also match a node with 24GB
 ram or 1.5TB disk.
 
 The UI would still assume homogenous hardware and treat it as such. It's
 just that we would allow for small differences.
 
 This *isn't* proposing we match ARM to x64 or offer a box with 24GB RAM
 when the flavour says 32. We would treat the flavour as a lowest common
 denominator.

Does Nova already handle this? Or is it built on exact matches?

I guess my question is -- what is the benefit of doing this? Is it just
so people can play around with it? Or is there a lasting benefit
long-term? I can see one -- match to the closest, but be willing to give
me more than I asked for if that's all that's available. Is there any
downside to this being permanent behavior?

I think the lowest-common-denominator match will be familiar to
sysadmins, too. Want to do RAID striping across a 500GB and a 750GB
disk? You'll get a striped 500GB volume.

-- 
Matt Wagner
Software Engineer, Red Hat



signature.asc
Description: OpenPGP digital signature
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-01-30 Thread Tomas Sedovic

On 30/01/14 15:53, Matt Wagner wrote:

On 1/30/14, 5:26 AM, Tomas Sedovic wrote:

Hi all,

I've seen some confusion regarding the homogenous hardware support as
the first step for the tripleo UI. I think it's time to make sure we're
all on the same page.

Here's what I think is not controversial:

1. Build the UI and everything underneath to work with homogenous
hardware in the Icehouse timeframe
2. Figure out how to support heterogenous hardware and do that (may or
may not happen within Icehouse)

The first option implies having a single nova flavour that will match
all the boxes we want to work with. It may or may not be surfaced in the
UI (I think that depends on our undercloud installation story).

Now, someone (I don't honestly know who or when) proposed a slight step
up from point #1 that would allow people to try the UI even if their
hardware varies slightly:

1.1 Treat similar hardware configuration as equal

The way I understand it is this: we use a scheduler filter that wouldn't
do a strict match on the hardware in Ironic. E.g. if our baremetal
flavour said 16GB ram and 1TB disk, it would also match a node with 24GB
ram or 1.5TB disk.

The UI would still assume homogenous hardware and treat it as such. It's
just that we would allow for small differences.

This *isn't* proposing we match ARM to x64 or offer a box with 24GB RAM
when the flavour says 32. We would treat the flavour as a lowest common
denominator.


Does Nova already handle this? Or is it built on exact matches?


It's doing an exact match as far as I know. This would likely involve 
writing a custom filter for nova scheduler and updating nova.conf 
accordingly.




I guess my question is -- what is the benefit of doing this? Is it just
so people can play around with it? Or is there a lasting benefit
long-term? I can see one -- match to the closest, but be willing to give
me more than I asked for if that's all that's available. Is there any
downside to this being permanent behavior?


Absolutely not a long term thing. This is just to let people play around 
with the MVP until we have the proper support for heterogenous hardware in.


It's just an idea that would increase the usefulness of the first 
version and should be trivial to implement and take out.


If neither is the case or if we will in fact manage to have a proper 
heterogenous hardware support early (in Icehouse), it doesn't make any 
sense to do this.




I think the lowest-common-denominator match will be familiar to
sysadmins, too. Want to do RAID striping across a 500GB and a 750GB
disk? You'll get a striped 500GB volume.



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




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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-01-30 Thread Devananda van der Veen
As far as nova-scheduler and Ironic go, I believe this is a solved problem.
Steps are:
- enroll hardware with proper specs (CPU, RAM, disk, etc)
- create flavors based on hardware specs
- scheduler filter matches requests exactly

There are, I suspect, three areas where this would fall short today:
- exposing to the user when certain flavors shouldn't be picked, because
there is no more hardware available which could match it
- ensuring that hardware is enrolled with the proper specs //
trouble-shooting when it is not
- a UI that does these well

If I understand your proposal correctly, you're suggesting that we
introduce non-deterministic behavior. If the scheduler filter falls back to
$flavor when $flavor is not available, even if the search is in ascending
order and upper-bounded by some percentage, the user is still likely to get
something other than what they requested. From a utilization and
inventory-management standpoint, this would be a headache, and from a user
standpoint, it would be awkward. Also, your proposal is only addressing the
case where hardware variance is small; it doesn't include a solution for
deployments with substantially different hardware.

I don't think introducing a non-deterministic hack when the underlying
services already work, just to provide a temporary UI solution, is
appropriate. But that's just my opinion.

Here's an alternate proposal to support same-arch but different
cpu/ram/disk hardware environments:
- keep the scheduler filter doing an exact match
- have the UI only allow the user to define one flavor, and have that be
the lowest common denominator of available hardware
- assign that flavor's properties to all nodes -- basically lie about the
hardware specs when enrolling them
- inform the user that, if they have heterogeneous hardware, they will get
randomly chosen nodes from their pool, and that scheduling on heterogeneous
hardware will be added in a future UI release

This will allow folks who are using TripleO at the commandline to take
advantage of their heterogeneous hardware, instead of crippling
already-existing functionality, while also allowing users who have slightly
(or wildly) different hardware specs to still use the UI.


Regards,
Devananda



On Thu, Jan 30, 2014 at 7:14 AM, Tomas Sedovic tsedo...@redhat.com wrote:

 On 30/01/14 15:53, Matt Wagner wrote:

 On 1/30/14, 5:26 AM, Tomas Sedovic wrote:

 Hi all,

 I've seen some confusion regarding the homogenous hardware support as
 the first step for the tripleo UI. I think it's time to make sure we're
 all on the same page.

 Here's what I think is not controversial:

 1. Build the UI and everything underneath to work with homogenous
 hardware in the Icehouse timeframe
 2. Figure out how to support heterogenous hardware and do that (may or
 may not happen within Icehouse)

 The first option implies having a single nova flavour that will match
 all the boxes we want to work with. It may or may not be surfaced in the
 UI (I think that depends on our undercloud installation story).

 Now, someone (I don't honestly know who or when) proposed a slight step
 up from point #1 that would allow people to try the UI even if their
 hardware varies slightly:

 1.1 Treat similar hardware configuration as equal

 The way I understand it is this: we use a scheduler filter that wouldn't
 do a strict match on the hardware in Ironic. E.g. if our baremetal
 flavour said 16GB ram and 1TB disk, it would also match a node with 24GB
 ram or 1.5TB disk.

 The UI would still assume homogenous hardware and treat it as such. It's
 just that we would allow for small differences.

 This *isn't* proposing we match ARM to x64 or offer a box with 24GB RAM
 when the flavour says 32. We would treat the flavour as a lowest common
 denominator.


 Does Nova already handle this? Or is it built on exact matches?


 It's doing an exact match as far as I know. This would likely involve
 writing a custom filter for nova scheduler and updating nova.conf
 accordingly.



 I guess my question is -- what is the benefit of doing this? Is it just
 so people can play around with it? Or is there a lasting benefit
 long-term? I can see one -- match to the closest, but be willing to give
 me more than I asked for if that's all that's available. Is there any
 downside to this being permanent behavior?


 Absolutely not a long term thing. This is just to let people play around
 with the MVP until we have the proper support for heterogenous hardware in.

 It's just an idea that would increase the usefulness of the first version
 and should be trivial to implement and take out.

 If neither is the case or if we will in fact manage to have a proper
 heterogenous hardware support early (in Icehouse), it doesn't make any
 sense to do this.


 I think the lowest-common-denominator match will be familiar to
 sysadmins, too. Want to do RAID striping across a 500GB and a 750GB
 disk? You'll get a striped 500GB volume.



 

Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-01-30 Thread Tzu-Mainn Chen
Wouldn't lying about the hardware specs when registering nodes be problematic 
for upgrades? Users would have 
to re-register their nodes. 

One reason why a custom filter feels attractive is that it provides us with a 
clear upgrade path: 

Icehouse 
* nodes are registered with correct attributes 
* create a custom scheduler filter that allows any node to match 
* users are informed that for this release, Tuskar will not differentiate 
between heterogeneous hardware 

J-Release 
* implement the proper use of flavors within Tuskar, allowing Tuskar to work 
with heterogeneous hardware 
* work with nova regarding scheduler filters (if needed) 
* remove the custom scheduler filter 

Mainn 

- Original Message -

 As far as nova-scheduler and Ironic go, I believe this is a solved problem.
 Steps are:
 - enroll hardware with proper specs (CPU, RAM, disk, etc)
 - create flavors based on hardware specs
 - scheduler filter matches requests exactly

 There are, I suspect, three areas where this would fall short today:
 - exposing to the user when certain flavors shouldn't be picked, because
 there is no more hardware available which could match it
 - ensuring that hardware is enrolled with the proper specs //
 trouble-shooting when it is not
 - a UI that does these well

 If I understand your proposal correctly, you're suggesting that we introduce
 non-deterministic behavior. If the scheduler filter falls back to $flavor
 when $flavor is not available, even if the search is in ascending order and
 upper-bounded by some percentage, the user is still likely to get something
 other than what they requested. From a utilization and inventory-management
 standpoint, this would be a headache, and from a user standpoint, it would
 be awkward. Also, your proposal is only addressing the case where hardware
 variance is small; it doesn't include a solution for deployments with
 substantially different hardware.

 I don't think introducing a non-deterministic hack when the underlying
 services already work, just to provide a temporary UI solution, is
 appropriate. But that's just my opinion.

 Here's an alternate proposal to support same-arch but different cpu/ram/disk
 hardware environments:
 - keep the scheduler filter doing an exact match
 - have the UI only allow the user to define one flavor, and have that be the
 lowest common denominator of available hardware
 - assign that flavor's properties to all nodes -- basically lie about the
 hardware specs when enrolling them
 - inform the user that, if they have heterogeneous hardware, they will get
 randomly chosen nodes from their pool, and that scheduling on heterogeneous
 hardware will be added in a future UI release

 This will allow folks who are using TripleO at the commandline to take
 advantage of their heterogeneous hardware, instead of crippling
 already-existing functionality, while also allowing users who have slightly
 (or wildly) different hardware specs to still use the UI.

 Regards,
 Devananda

 On Thu, Jan 30, 2014 at 7:14 AM, Tomas Sedovic  tsedo...@redhat.com  wrote:

  On 30/01/14 15:53, Matt Wagner wrote:
 

   On 1/30/14, 5:26 AM, Tomas Sedovic wrote:
  
 

Hi all,
   
  
 

I've seen some confusion regarding the homogenous hardware support as
   
  
 
the first step for the tripleo UI. I think it's time to make sure we're
   
  
 
all on the same page.
   
  
 

Here's what I think is not controversial:
   
  
 

1. Build the UI and everything underneath to work with homogenous
   
  
 
hardware in the Icehouse timeframe
   
  
 
2. Figure out how to support heterogenous hardware and do that (may or
   
  
 
may not happen within Icehouse)
   
  
 

The first option implies having a single nova flavour that will match
   
  
 
all the boxes we want to work with. It may or may not be surfaced in
the
   
  
 
UI (I think that depends on our undercloud installation story).
   
  
 

Now, someone (I don't honestly know who or when) proposed a slight step
   
  
 
up from point #1 that would allow people to try the UI even if their
   
  
 
hardware varies slightly:
   
  
 

1.1 Treat similar hardware configuration as equal
   
  
 

The way I understand it is this: we use a scheduler filter that
wouldn't
   
  
 
do a strict match on the hardware in Ironic. E.g. if our baremetal
   
  
 
flavour said 16GB ram and 1TB disk, it would also match a node with
24GB
   
  
 
ram or 1.5TB disk.
   
  
 

The UI would still assume homogenous hardware and treat it as such.
It's
   
  
 
just that we would allow for small differences.
   
  
 

This *isn't* proposing we match ARM to x64 or offer a box with 24GB RAM
   
  
 
when the flavour says 32. We would treat the flavour as a lowest common
   
  
 
denominator.
   
  
 

   Does Nova already handle this? Or is it built on exact matches?
  
 

  It's doing an exact match as far as I know. 

Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-01-30 Thread Robert Collins
On 30 January 2014 23:26, Tomas Sedovic tsedo...@redhat.com wrote:
 Hi all,

 I've seen some confusion regarding the homogenous hardware support as the
 first step for the tripleo UI. I think it's time to make sure we're all on
 the same page.

 Here's what I think is not controversial:

 1. Build the UI and everything underneath to work with homogenous hardware
 in the Icehouse timeframe
 2. Figure out how to support heterogenous hardware and do that (may or may
 not happen within Icehouse)

 The first option implies having a single nova flavour that will match all
 the boxes we want to work with. It may or may not be surfaced in the UI (I
 think that depends on our undercloud installation story).

I don't agree that (1) implies a single nova flavour. In the context
of the discussion it implied avoiding doing our own scheduling, and
due to the many moving parts we never got beyond that.

My expectation is that (argh naming of things) a service definition[1]
will specify a nova flavour, right from the get go. That gives you
homogeneous hardware for any service
[control/network/block-storage/object-storage].

Jaromir's wireframes include the ability to define multiple such
definitions, so two definitions for compute, for instance (e.g. one
might be KVM, one Xen, or one w/GPUs and the other without, with a
different host aggregate configured).

As long as each definition has a nova flavour, users with multiple
hardware configurations can just create multiple definitions, done.

That is not entirely policy driven, so for longer term you want to be
able to say 'flavour X *or* Y can be used for this', but as a early
iteration it seems very straight forward to me.

 Now, someone (I don't honestly know who or when) proposed a slight step up
 from point #1 that would allow people to try the UI even if their hardware
 varies slightly:

 1.1 Treat similar hardware configuration as equal

I think this is a problematic idea, because of the points raised
elsewhere in the thread.

But more importantly, it's totally unnecessary. If one wants to handle
minor variations in hardware (e.g. 1TB vs 1.1TB disks) just register
them as being identical, with the lowest common denominator - Nova
will then treat them as equal.

-Rob

-- 
Robert Collins rbtcoll...@hp.com
Distinguished Technologist
HP Converged Cloud

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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-01-30 Thread Tzu-Mainn Chen
- Original Message -
 On 30 January 2014 23:26, Tomas Sedovic tsedo...@redhat.com wrote:
  Hi all,
 
  I've seen some confusion regarding the homogenous hardware support as the
  first step for the tripleo UI. I think it's time to make sure we're all on
  the same page.
 
  Here's what I think is not controversial:
 
  1. Build the UI and everything underneath to work with homogenous hardware
  in the Icehouse timeframe
  2. Figure out how to support heterogenous hardware and do that (may or may
  not happen within Icehouse)
 
  The first option implies having a single nova flavour that will match all
  the boxes we want to work with. It may or may not be surfaced in the UI (I
  think that depends on our undercloud installation story).
 
 I don't agree that (1) implies a single nova flavour. In the context
 of the discussion it implied avoiding doing our own scheduling, and
 due to the many moving parts we never got beyond that.
 
 My expectation is that (argh naming of things) a service definition[1]
 will specify a nova flavour, right from the get go. That gives you
 homogeneous hardware for any service
 [control/network/block-storage/object-storage].
 
 Jaromir's wireframes include the ability to define multiple such
 definitions, so two definitions for compute, for instance (e.g. one
 might be KVM, one Xen, or one w/GPUs and the other without, with a
 different host aggregate configured).
 
 As long as each definition has a nova flavour, users with multiple
 hardware configurations can just create multiple definitions, done.
 
 That is not entirely policy driven, so for longer term you want to be
 able to say 'flavour X *or* Y can be used for this', but as a early
 iteration it seems very straight forward to me.
 
  Now, someone (I don't honestly know who or when) proposed a slight step up
  from point #1 that would allow people to try the UI even if their hardware
  varies slightly:
 
  1.1 Treat similar hardware configuration as equal
 
 I think this is a problematic idea, because of the points raised
 elsewhere in the thread.
 
 But more importantly, it's totally unnecessary. If one wants to handle
 minor variations in hardware (e.g. 1TB vs 1.1TB disks) just register
 them as being identical, with the lowest common denominator - Nova
 will then treat them as equal.

Thanks for the reply!  So if I understand correctly, the proposal is for:

Icehouse: one flavor per service role, so nodes are homogeneous per role
J: multiple flavors per service role

That sounds reasonable; the part that gives me pause is when you talk about
handling variations in hardware by registering the nodes as equal.  If those
differences vanish, then won't there be problems in the future when we might
be able to properly handle those variations?

Or do you propose that we only allow minor variations to be registered as 
equal, so
that the UI has to understand the concept of minor variances?

Mainn

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


Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-01-30 Thread Jay Dobies

Wouldn't lying about the hardware specs when registering nodes be
problematic for upgrades?  Users would have
to re-register their nodes.


This was my first impression too, the line basically lie about the 
hardware specs when enrolling them. It feels more wrong to have the 
user provide false data than it does to ignore that data for Icehouse. 
I'd rather have the data correct now and ignore it than tell users when 
they upgrade to Juno they have to re-enter all of their node data.


It's not heterogenous v. homogeneous support. It's whether or not we use 
the data. We can capture it now and not provide the user the ability to 
differentiate what something is deployed on. That's a heterogeneous 
enrivonment, but just a lack of fine-grained control over where the 
instances fall.


And all of this is simply for the time constraints of Icehouse's first 
pass. A known, temporary limitation.




One reason why a custom filter feels attractive is that it provides us
with a clear upgrade path:

Icehouse
   * nodes are registered with correct attributes
   * create a custom scheduler filter that allows any node to match
   * users are informed that for this release, Tuskar will not
differentiate between heterogeneous hardware

J-Release
   * implement the proper use of flavors within Tuskar, allowing Tuskar
to work with heterogeneous hardware
   * work with nova regarding scheduler filters (if needed)
   * remove the custom scheduler filter


Mainn



As far as nova-scheduler and Ironic go, I believe this is a solved
problem. Steps are:
- enroll hardware with proper specs (CPU, RAM, disk, etc)
- create flavors based on hardware specs
- scheduler filter matches requests exactly

There are, I suspect, three areas where this would fall short today:
- exposing to the user when certain flavors shouldn't be picked,
because there is no more hardware available which could match it
- ensuring that hardware is enrolled with the proper specs //
trouble-shooting when it is not
- a UI that does these well

If I understand your proposal correctly, you're suggesting that we
introduce non-deterministic behavior. If the scheduler filter falls
back to $flavor when $flavor is not available, even if the search
is in ascending order and upper-bounded by some percentage, the user
is still likely to get something other than what they requested.
 From a utilization and inventory-management standpoint, this would
be a headache, and from a user standpoint, it would be awkward.
Also, your proposal is only addressing the case where hardware
variance is small; it doesn't include a solution for deployments
with substantially different hardware.

I don't think introducing a non-deterministic hack when the
underlying services already work, just to provide a temporary UI
solution, is appropriate. But that's just my opinion.

Here's an alternate proposal to support same-arch but different
cpu/ram/disk hardware environments:
- keep the scheduler filter doing an exact match
- have the UI only allow the user to define one flavor, and have
that be the lowest common denominator of available hardware
- assign that flavor's properties to all nodes -- basically lie
about the hardware specs when enrolling them
- inform the user that, if they have heterogeneous hardware, they
will get randomly chosen nodes from their pool, and that scheduling
on heterogeneous hardware will be added in a future UI release

This will allow folks who are using TripleO at the commandline to
take advantage of their heterogeneous hardware, instead of crippling
already-existing functionality, while also allowing users who have
slightly (or wildly) different hardware specs to still use the UI.


Regards,
Devananda



On Thu, Jan 30, 2014 at 7:14 AM, Tomas Sedovic tsedo...@redhat.com
mailto:tsedo...@redhat.com wrote:

On 30/01/14 15:53, Matt Wagner wrote:

On 1/30/14, 5:26 AM, Tomas Sedovic wrote:

Hi all,

I've seen some confusion regarding the homogenous
hardware support as
the first step for the tripleo UI. I think it's time to
make sure we're
all on the same page.

Here's what I think is not controversial:

1. Build the UI and everything underneath to work with
homogenous
hardware in the Icehouse timeframe
2. Figure out how to support heterogenous hardware and
do that (may or
may not happen within Icehouse)

The first option implies having a single nova flavour
that will match
all the boxes we want to work with. It may or may not be
surfaced in the

Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-01-30 Thread Devananda van der Veen
I was responding based on Treat similar hardware configuration as equal. When
there is a very minor difference in hardware (eg, 1TB vs 1.1TB disks),
enrolling them with the same spec (1TB disk) is sufficient to solve all
these issues and mask the need for multiple flavors, and the hardware
wouldn't need to be re-enrolled. My suggestion does not address the desire
to support significant variation in hardware specs, such as 8GB RAM vs 64GB
RAM, in which case, there is no situation in which I think those
differences should be glossed over, even as a short-term hack in Icehouse.

if our baremetal flavour said 16GB ram and 1TB disk, it would also match a
node with 24GB ram or 1.5TB disk.

I think this will lead to a lot of confusion, and difficulty with inventory
/ resource management. I don't think it's suitable even as a
first-approximation.

Put another way, I dislike the prospect of removing currently-available
functionality (an exact-match scheduler and support for multiple flavors)
to enable ease-of-use in a UI. Not that I dislike UIs or anything... it
just feels like two steps backwards. If the UI is limited to homogeneous
hardware, accept that; don't take away heterogeneous hardware support from
the rest of the stack.


Anyway, it sounds like Robert has a solution in mind, so this is all moot :)

Cheers,
Devananda



On Thu, Jan 30, 2014 at 1:30 PM, Jay Dobies jason.dob...@redhat.com wrote:

  Wouldn't lying about the hardware specs when registering nodes be
 problematic for upgrades?  Users would have
 to re-register their nodes.


 This was my first impression too, the line basically lie about the
 hardware specs when enrolling them. It feels more wrong to have the user
 provide false data than it does to ignore that data for Icehouse. I'd
 rather have the data correct now and ignore it than tell users when they
 upgrade to Juno they have to re-enter all of their node data.

 It's not heterogenous v. homogeneous support. It's whether or not we use
 the data. We can capture it now and not provide the user the ability to
 differentiate what something is deployed on. That's a heterogeneous
 enrivonment, but just a lack of fine-grained control over where the
 instances fall.

 And all of this is simply for the time constraints of Icehouse's first
 pass. A known, temporary limitation.


 One reason why a custom filter feels attractive is that it provides us
 with a clear upgrade path:

 Icehouse
* nodes are registered with correct attributes
* create a custom scheduler filter that allows any node to match
* users are informed that for this release, Tuskar will not
 differentiate between heterogeneous hardware

 J-Release
* implement the proper use of flavors within Tuskar, allowing Tuskar
 to work with heterogeneous hardware
* work with nova regarding scheduler filters (if needed)
* remove the custom scheduler filter


 Mainn

 


 As far as nova-scheduler and Ironic go, I believe this is a solved
 problem. Steps are:
 - enroll hardware with proper specs (CPU, RAM, disk, etc)
 - create flavors based on hardware specs
 - scheduler filter matches requests exactly

 There are, I suspect, three areas where this would fall short today:
 - exposing to the user when certain flavors shouldn't be picked,
 because there is no more hardware available which could match it
 - ensuring that hardware is enrolled with the proper specs //
 trouble-shooting when it is not
 - a UI that does these well

 If I understand your proposal correctly, you're suggesting that we
 introduce non-deterministic behavior. If the scheduler filter falls
 back to $flavor when $flavor is not available, even if the search
 is in ascending order and upper-bounded by some percentage, the user
 is still likely to get something other than what they requested.
  From a utilization and inventory-management standpoint, this would
 be a headache, and from a user standpoint, it would be awkward.
 Also, your proposal is only addressing the case where hardware
 variance is small; it doesn't include a solution for deployments
 with substantially different hardware.

 I don't think introducing a non-deterministic hack when the
 underlying services already work, just to provide a temporary UI
 solution, is appropriate. But that's just my opinion.

 Here's an alternate proposal to support same-arch but different
 cpu/ram/disk hardware environments:
 - keep the scheduler filter doing an exact match
 - have the UI only allow the user to define one flavor, and have
 that be the lowest common denominator of available hardware
 - assign that flavor's properties to all nodes -- basically lie
 about the hardware specs when enrolling them
 - inform the user that, if they have heterogeneous hardware, they
 will get randomly chosen nodes from 

Re: [openstack-dev] [TripleO] [Ironic] Roadmap towards heterogenous hardware support

2014-01-30 Thread Jordan OMara

On 30/01/14 16:14 -0500, Tzu-Mainn Chen wrote:


Thanks for the reply!  So if I understand correctly, the proposal is for:

Icehouse: one flavor per service role, so nodes are homogeneous per role
J: multiple flavors per service role

That sounds reasonable; the part that gives me pause is when you talk about
handling variations in hardware by registering the nodes as equal.  If those
differences vanish, then won't there be problems in the future when we might
be able to properly handle those variations?

Or do you propose that we only allow minor variations to be registered as 
equal, so
that the UI has to understand the concept of minor variances?



Back to your original point, the idea of are we going to allow seems
fraught with peril. Do we have some kind of tolerance for what hardware the user
is allowed to register after they register their first one? This
sounds like a recipe for user frustration


Mainn

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


--
Jordan O'Mara jomara at redhat.com
Red Hat Engineering, Raleigh 


pgpYmCvfhgVO3.pgp
Description: PGP signature
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev