Jump to: navigation, search

Difference between revisions of "Mogan"

(python-nimbleclient)
(mogan)
Line 66: Line 66:
 
{| border="1" cellpadding="2"
 
{| border="1" cellpadding="2"
 
| Source code
 
| Source code
| https://github.com/openstack/nimble
+
| https://github.com/openstack/mogan
 
|-
 
|-
 
| Bug tracker
 
| Bug tracker
| https://bugs.launchpad.net/nimble
+
| https://bugs.launchpad.net/mogan
 
|-
 
|-
 
| Feature tracker
 
| Feature tracker
| https://blueprints.launchpad.net/nimble
+
| https://blueprints.launchpad.net/mogan
 
|-
 
|-
 
| Weekly meetings
 
| Weekly meetings

Revision as of 01:30, 13 January 2017

OpenStack Bare Metal Computing

What is Mogan?

Mogan is an OpenStack project which aims to provide bare metal computing. Compared with Nova, it's more bare metal specific and with more advanced features that VM users don't need. And it also plans to support RSD(Rack Scale Design)[4], so Mogan can provide both Pre-set Configuration Servers and Custom Servers by leveraging Ironic.

nova-mogan

Architecture

  • mogan-api: Provides an OpenStack native REST API that processes API requests by sending them to the mogan-engine over RPC.
  • mogan-engine: Interacts with other OpenStack services (like cinder, neutron, glance, etc) through REST API to support bare metal specific features. It transforms and dispatches the user request to ironic to provision bare metal instances.

architecture

Interaction Details

The figure below describes how Mogan interact with other OpenStack services to manage bare metal servers.

mogan detailed workflow

About scheduler

As we said above, Mogan plans to support both Pre-set configuration servers and Custom servers. For Pre-set configuration servers(what OpenStack currently support), we don't need to schedule based on properties like RAM, CPU, DISK, etc. We can just divide machines into several groups based on their properties like gold type machine with better cpu and more memory, silver type machine include cheap cpu and less memory than gold one. This can be easily implemented by adding some extra information to Ironic node's properties filed like {'availability_zone': 'Beijing-01', 'instance_type': 'gold'}, and then map them to different instance_types(flavors). Instance_type includes a description field which can be used to provide bare metal server specs to users, like it may contain something like ‘Dual Professor, Dual Intel Xeon E5-2620(2.00GHz), 12 Cores, 16GB RAM, 500GB SATA'.

And there are already a series of efforts on upstream work to make a generic scheduler, finally which will separate out from Nova, to be a standalone project, then we will try to use it.

Why Mogan?

Ironic only provides the capability to provision bare metal servers, which lacks the ability of scheduling, quotas management and multi-tenancy support. Currently it heavily depends on Nova which was designed for VMs. If we can decouple these two technologies by breaking baremetal computing management into its own set of application program interfaces, it will jump out from the complex model (Nova + Ironic). Besides this, we also want to support RSD(Rack Scale Design), which is not easily possible to be integrated into Nova.

nova-mogan-ironic

Mogan Mission Statement

1. To implement services which focus on the management of bare metal computing resources.

2. To promote the speed of bare metal development in OpenStack.

Use Cases

1. An enterprise user wants to orchestration and provisioning bare metals , with multi tenancy support.

2. An enterprise user wants to only provides a bare metal cloud which is not bounded by Nova's API

3. An enterprise user wants to get a bare metal instance with special RAID disk and partition configuration.

4. An enterprise user wants to get a bare metal instance with special NIC bound configuration, like: active/active, active/standby, etc .

5. An enterprise user wants to manage the RSD and general hardware in unified way.

6. An enterprise operator want to inventory all the physic assets, model the physic datacenter arch, mapping into a object model to help him manage physic assets, scheduling and optimize within datacenter.

RSD Integration

Rack Scale Design (RSD) implementations represent the next generation of Software Defined Infrastructure that can be dynamically provisioned across compute, network and storage resources.The fundamental premise for an RSA-based solution is the customers’ ability to “right-size” their end-to-end infrastructure needs according to anticipated workload performance and capacity requirements, across pooled resources.

VALENCE[1] is a controller for pooled and composable resources which adhere to DMTF[2] Redfish[3] with hardware management requests. That includes provisioning and management of RSD components and underlay features.

mogan RSD

Projects

mogan

Source code https://github.com/openstack/mogan
Bug tracker https://bugs.launchpad.net/mogan
Feature tracker https://blueprints.launchpad.net/mogan
Weekly meetings https://wiki.openstack.org/wiki/Meetings/Mogan

python-moganclient

Source code https://github.com/openstack/python-nimbleclient
Bug tracker https://bugs.launchpad.net/python-nimbleclient
Feature tracker https://blueprints.launchpad.net/python-nimbleclient

People

Zhenguo Niu (zhenguo)

Rui Chen (RuiChen)

YunTong Jin (yuntong.jin@intel.com)

Shaohe Feng (shaohe_feng)

Lei Zhang (lei-zh)

Zhong Luyao (Zhong Luyao)

Hanzhang Shi (shihanzhang)

Sheng Liu (liusheng)

Zhenyu Zheng (Kevin_Zheng)

IRC

Discussion of the project also takes place in #openstack-mogan on irc.freenode.net. This is a great place to jump in and start your mogan adventure.

Developers

Guidelines for developers can be found here: https://wiki.openstack.org/wiki/Ironic/Developer_guidelines Please note that for any non-trivial change that is not a fix for a particular bug, you have to go through the specs review process

For more information please refer to our dev-quickstart doc Nimble devref

Task track

Developers want to add new features, can add your task item here: https://etherpad.openstack.org/p/nimble-task

FAQ

1) What's the relationship with Mogan and Nova?

Compared with Nova, Mogan is dedicated for baremetal computing, it's more lightweight and with more baremetal specific features which VM users don't need.

2) Does Mogan compete with Nova?

We do not intend to compete with Nova. Nova focuses on VM management and provides many advanced features like live migrating, availability zone, host aggregates, etc. The ironic driver allows to manage baremetals via Nova's API (which is unified for VMs, baremetals, and containers, but in fact, it's customized for VMs). While Mogan is designed specifically for baremetals, it's not bounded by Nova's API.

3) What's the relationship with Mogan and Ironic?

Ironic is integrated into Mogan as a driver, which will be used to deploy(part of provisioning) baremetal node. And also Mogan leverage Ironic API to manage node’s lifecycle.

4) What's the relationship with Mogan and Valence?

Valence is a RSD controller for pooled and composable resources, it provide compose API for pooled resource, and also Redfish endpoint to control composed node. Mogan will contact with RSD through Valence to compose resouces then enroll the composed node to ironic and provision the node like generic nodes.

References

[1] https://wiki.openstack.org/wiki/Valence

[2] https://www.dmtf.org/standards/redfish

[3] https://www.dmtf.org/

[4] http://www.intel.com/content/www/us/en/architecture-and-technology/rack-scale-design-overview.html