Jump to: navigation, search

Difference between revisions of "Nimble"

(Before you Jump into the Code)
Line 97: Line 97:
 
Zhenyu Zheng (Kevin_Zheng)
 
Zhenyu Zheng (Kevin_Zheng)
  
= IRC =
+
= Before you Jump into the Code =
  
Discussion of the project also takes place in '''#openstack-nimble''' on irc.freenode.net. This is a great place to jump in and start your nimble adventure.
+
Before developing nimble and python-nimbleclient, make sure you know how OpenStack Bare Metal Computing works by reading this wiki page and asking questions.
 +
 
 +
Then try to run it yourself using [http://docs.openstack.org/developer/devstack/ devstack] . One example of how to run OpenStack Bare Metal Computing with devstack is here: [[NimbleDevstack]]
 +
 
 +
Subscribe to the [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev openstack-dev email list.] . Email sent to this list about OpenStack Bare Metal Computing should have a subject line that starts with '''[Nimble]'''. Discussion of the project also takes place in '''#openstack-nimble''' on irc.freenode.net. This is a great place to jump in and start your nimble adventure.
 +
 
 +
You'll also want to take care of a few OpenStack-wide requirements, described in [[HowToContribute]] .  In particular:
 +
 
 +
* signing a Contributors License Agreement (http://wiki.openstack.org/CLA)
 +
* getting a launchpad account are very important (http://launchpad.net)
 +
 
 +
 
 +
If you're feeling adventurous, you can sign up to see the set of bugs + changes flowing into Nimble:
 +
 
 +
* subscribe to nimble bug mail: https://bugs.launchpad.net/nimble/+subscribe and https://bugs.launchpad.net/python-nimbleclient/+subscribe
 +
* sign up to see changes proposed to the openstack/nimble and openstack/python-nimbleclient projects: https://review.openstack.org/#/settings/projects
 +
 
 +
 
 +
Before trying to submit your first patch, please learn more about how the patch submission and review process works ([http://docs.openstack.org/infra/manual/developers.html Developer's Guide]).
  
 
= FAQ =
 
= FAQ =

Revision as of 07:26, 9 November 2016

OpenStack Bare Metal Computing

What is Nimble?

Nimble is an OpenStack project to provide "bare metal computing as a service", dedicated for bare metal computing management, which is designed specifically for BMs, so Nimble is a lightweight and convenient platform with more advanced features by Ironic's provisioning, Neutron's networking and other services' abilities. Compared with Nova, it's more bare metal specific and with more advanced features that VM users don't need. Besides this, we also plan to support RSD(Rack Scale Design)[4], so we provide not only Pre-set Configuration Servers but also Custom Servers.

nova-nimble

Architecture

architecture

Interaction Details

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

nimble detailed workflow

A dedicated scheduler

Nimble plans to support both Pre-set configuration servers and Custom servers(leverage RSD). 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 servers into groups by adding some extra informations to Ironic node's properties filed like {'availability_zone': 'Beijing-01', 'instance_type': 'high-performance'}, 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, it may contain something like ‘Dual Professor, Dual Intel Xeon E5-2620(2.00GHz), 12 Cores, 16GB RAM, 500GB SATA'.

Why Nimble?

Ironic only provides the capability to provision bare metal servers, which lacks scheduling ability, quotas management and multitenancy support. Currently it is highly depends on Nova which was designed for VMs. It will move from an complex model if we can decouple these two technologies by breaking baremetal computing into its own set of application program interfaces. Besides this, we also want to support RSD(Rack Scale Design), it's will not easily possible to add it to Nova.

nova-nimble-ironic

Nimble 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 would like to float a cloud sourcing hardware within a datacenter, nimble will orchestrate RSD hardware resource to meet this requirement.

4. 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 endto-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.

Nimble Integrate RSD

Projects

nimble

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

python-nimbleclient

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)

Hanzhang Shi (shihanzhang)

Sheng Liu (liusheng)

Zhenyu Zheng (Kevin_Zheng)

Before you Jump into the Code

Before developing nimble and python-nimbleclient, make sure you know how OpenStack Bare Metal Computing works by reading this wiki page and asking questions.

Then try to run it yourself using devstack . One example of how to run OpenStack Bare Metal Computing with devstack is here: NimbleDevstack

Subscribe to the openstack-dev email list. . Email sent to this list about OpenStack Bare Metal Computing should have a subject line that starts with [Nimble]. Discussion of the project also takes place in #openstack-nimble on irc.freenode.net. This is a great place to jump in and start your nimble adventure.

You'll also want to take care of a few OpenStack-wide requirements, described in HowToContribute . In particular:


If you're feeling adventurous, you can sign up to see the set of bugs + changes flowing into Nimble:


Before trying to submit your first patch, please learn more about how the patch submission and review process works (Developer's Guide).

FAQ

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

Compared with Nova, Nimble is dedicated for baremetal computing, it's more lightweight and with more baremetal specific features.

2) Does Nimble compete with Nova?""

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

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

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

4) What's the relationship with Nimble 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 that used by Nimble. For example if a particular flavor system is requested which maps to a RSD system, such a call should go to nimble which subsequently Valence to provide that node. and Nimble will enroll that node to ironic and provisioning the node with ironic.

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