[openstack-dev] [OSC][ironic][mogan][nova] mogan and nova co-existing

Jay Pipes jaypipes at gmail.com
Wed May 31 14:01:16 UTC 2017

On 05/31/2017 01:31 AM, Zhenguo Niu wrote:
> On Wed, May 31, 2017 at 12:20 PM, Ed Leafe <ed at leafe.com 
> <mailto:ed at leafe.com>> wrote:
>     On May 30, 2017, at 9:36 PM, Zhenguo Niu <niu.zglinux at gmail.com
>     <mailto:niu.zglinux at gmail.com>> wrote:
>     > as placement is not splitted out from nova now, and there would be users who only want a baremetal cloud, so we don't add resources to placement yet, but it's easy for us to turn to placement to match the node type with mogan flavors.
>     Placement is a separate service, independent of Nova. It tracks
>     Ironic nodes as individual resources, not as a "pretend" VM. The
>     Nova integration for selecting an Ironic node as a resource is still
>     being developed, as we need to update our view of the mess that is
>     "flavors", but the goal is to have a single flavor for each Ironic
>     machine type, rather than the current state of flavors pretending
>     that an Ironic node is a VM with certain RAM/CPU/disk quantities.
> Yes, I understand the current efforts of improving the baremetal nodes 
> scheduling. It's not conflict with mogan's goal, and when it is done, we 
> can share the same scheduling strategy with placement :)
> Mogan is a service for a specific group of users who really want a 
> baremetal resource instead of a generic compute resource, on API side, 
> we can expose RAID, advanced partitions, nics bonding, firmware 
> management, and other baremetal specific capabilities to users. And 
> unlike nova's host based availability zone, host aggregates, server 
> groups (ironic nodes share the same host), mogan can make it possible to 
> divide baremetal nodes into such groups, and make Rack aware for 
> affinity and anti-affinity when scheduling.
Zhenguo Niu brings up a very good point here. Currently, all Ironic 
nodes are associated with a single host aggregate in Nova, because of 
the vestigial notion that a compute *service* (ala the nova-compute 
worker) was equal to the compute *node*.

In the placement API, of course, there's no such coupling. A placement 
aggregate != a Nova host aggregate.

So, technically Ironic (or Mogan) can call the placement service to 
create aggregates that match *its* definition of what an aggregate is 
(rack, row, cage, zone, DC, whatever). Furthermore, Ironic (or Mogan) 
can associate Ironic baremetal nodes to one or more of those placement 
aggregates to get around Nova host aggregate to compute service coupling.

That said, there's still lots of missing pieces before placement gets 
affinity/anti-affinity support...


More information about the OpenStack-dev mailing list