Jump to: navigation, search

Difference between revisions of "Nimble"

(Nimble Mission Statement)
(What is Nimble?)
Line 12: Line 12:
  
 
Nimble is an OpenStack project to provide "bare metal computing as a service" by leveraging 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.  
 
Nimble is an OpenStack project to provide "bare metal computing as a service" by leveraging 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.  
 +
 +
[[File:Nimble&Ironic.png|nimble-nova]]
  
 
The figure below describes how Nimble interact with other OpenStack services to manage bare metal servers.
 
The figure below describes how Nimble interact with other OpenStack services to manage bare metal servers.

Revision as of 03:10, 9 November 2016

OpenStack Bare Metal Computing

Nimble is a project dedicated for bare metal computing management, which is designed specifically for BMs, so we can provide a more lightweight and convenient platform with more advanced features by leveraging Ironic. Besides this, we also plan to support RSD(Rack Scale Design)[4], so we can not only provide Pre-set Configuration Servers but also Custom Servers.

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.

What is Nimble?

Nimble is an OpenStack project to provide "bare metal computing as a service" by leveraging 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.

nimble-nova

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.

Use Cases

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

2. An enterprise user would like to float a cloud sourcing hardware within a datacenter, nimble will orchestrate RSD hardware resource to meet this requirement.

3. 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)

IRC

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.

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