Jump to: navigation, search

Difference between revisions of "Valence"

(Source Code)
(Look Who is Interested!)
 
(29 intermediate revisions by 9 users not shown)
Line 1: Line 1:
== Rack Scale Design: Composable Hardware ==
+
== Valence Overview ==
 +
Valence is a service for lifecycle management of pooled bare-metal hardware infrastructure.  The concept of pooled storage (SSDs or nvmE) disaggregated from compute nodes and network disaggregated from compute and storage provides the flexibility to compose and uses as and when the cloud requires more server resources. Valence provides the capability "compose" hardware nodes and release resources as needed by the overcloud.
 +
 
 +
Valence supports Redfish as default management protocol to communicate to hardware. It supports Rack Scale Design (RSD), Open architecture for management
 +
of disaggregated server hardware resources, which is standardized in Redfish. Valence also provides capability to manage other vendors disaggregated hardware
 +
using their respective drivers other than Redfish.
 +
 
 +
=== Rack Scale Design: Composable Hardware ===
 
Rack Scale Design  allows considering compute, storage, and networking as disaggregated resources that can be composed on the fly to meet various needs in a data center/cloud.  
 
Rack Scale Design  allows considering compute, storage, and networking as disaggregated resources that can be composed on the fly to meet various needs in a data center/cloud.  
 
Disaggregation, in addition to allowing hardware refresh at different rates for each of storage, compute, and networking, supports more efficient resource utilization.
 
Disaggregation, in addition to allowing hardware refresh at different rates for each of storage, compute, and networking, supports more efficient resource utilization.
Line 11: Line 18:
 
[[File:Rack-Scale-Design.png|200x300|Rack Scale Design]]
 
[[File:Rack-Scale-Design.png|200x300|Rack Scale Design]]
  
== DMTF Redfish ==
+
=== DMTF Redfish ===
  
 
The Distributed Management Task Force, Inc (DMTF) [2] creates open manageability standards spanning diverse emerging and traditional IT infrastructures including cloud, virtualization, network, servers and storage. DMTF Redfish™ is an open industry standard specification and schema that specifies a RESTful interface and utilizes JSON and OData to help customers integrate and manage today's scale out hardware solutions, which are very different from the enterprise hardware of the past. Its sponsors are Broadcom, Dell, Emerson, HPE, INspur, Lenovo, MIcrosoft, SuperMicro, VMWare, and Intel among others. For more details refer to [3] and [4].
 
The Distributed Management Task Force, Inc (DMTF) [2] creates open manageability standards spanning diverse emerging and traditional IT infrastructures including cloud, virtualization, network, servers and storage. DMTF Redfish™ is an open industry standard specification and schema that specifies a RESTful interface and utilizes JSON and OData to help customers integrate and manage today's scale out hardware solutions, which are very different from the enterprise hardware of the past. Its sponsors are Broadcom, Dell, Emerson, HPE, INspur, Lenovo, MIcrosoft, SuperMicro, VMWare, and Intel among others. For more details refer to [3] and [4].
  
== Valence - the Rack Scale Controller ==
+
== Valence - Functionality Overview ==
  
 
Valence is a collection of all things Rack Scale Control, from an user interface to help compose and view nodes, to supporting launch of an OpenStack cloud using your favorite deployment tool, a place to register blueprints, a banner under which to assemble a growing community interested in this functionality, a place to hold Nova and Ironic drivers and Horizon plugins to support growing/shrinking clouds dynamically, viewing Rack Scale flavors, and more.
 
Valence is a collection of all things Rack Scale Control, from an user interface to help compose and view nodes, to supporting launch of an OpenStack cloud using your favorite deployment tool, a place to register blueprints, a banner under which to assemble a growing community interested in this functionality, a place to hold Nova and Ironic drivers and Horizon plugins to support growing/shrinking clouds dynamically, viewing Rack Scale flavors, and more.
  
We envisage setting up the under cloud and dynamically growing/shrinking the cloud as complementary to OpenStack today. Given that, Valence seeks to become an OpenStack Big Tent project. Registration efforts are underway, ably being managed by Lin (lin dot a dot yang at intel dot com)  [6]
+
=== Multi-PodManager Support ===
 +
Valence provides the capability to manage multiple podmanagers. Each podmanager can be configured to use different driver. By default, ``redfishv1`` driver is used.
 +
 
 +
Currently supported drivers in Valence are:
 +
1. redfishv1
 +
2. expether
 +
 
 +
Future work include redfish v2 driver support. Other vendors also could implement their own driver to manage their hardware.
 +
Valence provides uniform interface to manage all the disaggregated hardware in datacentre supporting different protocols.
 +
 
 +
=== Device Orchestration Framework ===
 +
 
 +
Valence provides support for the dynamic management of pooled resources like storage, network and other pci devices which can be connected on demand to a composed node,
 +
giving user the ability to attach or detach the devices dynamically based on workload.
 +
 
 +
=== Ironic Provision Driver ===
 +
 
 +
Valence supports ``ironic`` provision driver to be able to register the valence composed node to ironic. Once the node is registered further operations of provisioning/managing
 +
could be directly performed using Ironic.
 +
 
 +
=== Architecture ===
  
 
The figure below describes how Valence will interact with implementations of RedFish and OpenStack to set up clouds.
 
The figure below describes how Valence will interact with implementations of RedFish and OpenStack to set up clouds.
 
[[File:Rsc-ui.jpg|200x400|rack scale controller interactions]]
 
[[File:Rsc-ui.jpg|200x400|rack scale controller interactions]]
 +
 +
We envisage setting up the under cloud and dynamically growing/shrinking the cloud as complementary to OpenStack today. Given that, Valence seeks to become an OpenStack Big Tent project.  Registration efforts are underway, ably being managed by Lin (lin dot a dot yang at intel dot com)  [6]
  
 
=== Use Cases ===
 
=== Use Cases ===
 
A datacenter has multiple racks of machines with a RedFish implementation to control the same.
 
A datacenter has multiple racks of machines with a RedFish implementation to control the same.
 +
From creating multiple clouds from a datacenter, to a cloud spanning multiple datacenters, and even a cloud dynamically expanding/shrinking based on need, there are several possible use cases. We pull the use cases into a separate document and attach to launchpad to elicit community input.
 +
[[valence use cases]]
  
# An enterprise user would like to float a cloud sourcing hardware from the above datacenter.
+
Below figure shows general workflow of valence project.
# An enterprise cloud has a transient need for more resources and seeks the same from the above datacenter, wanting to add nodes for storage or compute (virtual machines, bare metal, or containers). (This is where Ironic and Nova plugins and drivers are necessary.)
+
[[File:valence_workflow.png|1231 × 656|general user workflow]]
# An enterprise cloud's needs have decreased, and in true utility mode, pay as you go, would like to release its excess resources back to the datacenter. (Once again Nova/Ironic etc plugins necessary, and code to ascertain that no workloads are resident on the machines, and scrubbing software and workflow, before releasing them back to the cloud. )
 
# An enterprise owns the datacenter, but would like to via software power on/off resources to conserve power and cooling needs depending on resource utilization. This is where the RedFish APIs come in handy.
 
# A large datacenter may partition its resources among multiple clouds, each possibly even set up using different deployment tools. (Brings up issues of quota, and of course authentication to the RSC UI).
 
  
 
=== Valence Web Pages ===
 
=== Valence Web Pages ===
Line 44: Line 72:
  
 
[[File:Rsc-horizon.jpg|200x200|Horizon Integration, showing RSC composed node with Nova-compute deployed.]]
 
[[File:Rsc-horizon.jpg|200x200|Horizon Integration, showing RSC composed node with Nova-compute deployed.]]
 +
 +
==RSD Client and RSD Lib==
 +
Related projects have also been started for enabling communication directly to RSD enabled hardware, the python-rsdclient and rsd-lib. The rsd-lib will house extensions to the
 +
Sushy project, enabling it to discover and compose nodes using RSD systems, storage, and networking, while the client will utilize those extensions for a simple CLI for making RSD calls for discovery and composition. The RSD client is also planned to be a plugin for the larger OpenStack Client.
 +
 +
[https://github.com/openstack/python-rsdclient RSD Client]
 +
[https://github.com/openstack/rsd-lib RSD Lib]
  
 
=== Source Code ===
 
=== Source Code ===
* Official repository [https://git.openstack.org/cgit/openstack/rsc openstack/rsc]. Renaming rsc -> valence is pending to wait next OpenStack gerrit downtime.
+
* Official repository [https://git.openstack.org/cgit/openstack/valence openstack/valence].
* Github: https://github.com/openstack/rsc
+
* Github: https://github.com/openstack/valence
 
* [https://blueprints.launchpad.net/openstack-valence Valence blueprints launchpad]
 
* [https://blueprints.launchpad.net/openstack-valence Valence blueprints launchpad]
  
Line 53: Line 88:
 
[[Valence Threat Model]]
 
[[Valence Threat Model]]
 
=== Look Who is Interested! ===
 
=== Look Who is Interested! ===
 +
# Peter Jung (Dell EMC)
 
# shuquan
 
# shuquan
 
# octopuszhang
 
# octopuszhang
 
# kevinshu96
 
# kevinshu96
# malinib     (attending OpenStack Barcelona)
+
# malinib  
# mritikka     (attending OpenStack Barcelona)
+
# mritikka
# Ananth Narayan (attending OpenStack Barcelona)
+
# Ananth Narayan
 
# Lin Yang
 
# Lin Yang
 
# Nate Potter
 
# Nate Potter
Line 65: Line 101:
 
# Chester
 
# Chester
 
# jfding
 
# jfding
# shuquan   (attending OpenStack Barcelona)
+
# shuquan
 
# snivas
 
# snivas
 
# yufei
 
# yufei
 
# chakri
 
# chakri
# Mandy_  
+
# Mandy_ (Lenovo)
# Andy_Yan
+
# HuBian  (Lenovo)
# Maohaijun  
+
# Andy_Yan (Lenovo)
# yangxing4
+
# Maohaijun (Lenovo)
# wangzhandong
+
# yangxing4 (Lenovo)
# ramineni  (attending Openstack Barcelona)
+
# wangzhandong (Lenovo)
 +
# ramineni  (NEC)
 
# zhenguo
 
# zhenguo
 
# yuntongjin
 
# yuntongjin
 +
# bryang  (Suse)
 +
# Jinxing Fang
  
 
== Meetings  ==
 
== Meetings  ==
Meetings will alternate on mornings and evenings on even and odd weeks,  Wednesdays 8 am and 8 pm PDT.
+
Meetings will occur weekly, 60 minutes long on  
 
* Channel:  '''freenode #openstack-valence'''
 
* Channel:  '''freenode #openstack-valence'''
* Wednesdays, 15:00 HRS UTC ( For geos with daylight savings time, note that the meeting will shift to maintain UTC time)
+
* Wednesdays, 14:30 HRS UTC ( For geos with daylight savings time, note that the meeting will shift to maintain UTC time)
  
Provide your input to the meeting agenda at [[Valence-Agenda]]
+
Provide your input to the meeting agenda at [https://etherpad.openstack.org/p/Valence Valence-Agenda]
  
 
Logs of meetings past [[Valence-Meetings]]
 
Logs of meetings past [[Valence-Meetings]]
 +
 +
== Pike Planning  ==
 +
'''Lenovo''' (Hubian) interested in:
 +
 +
# Valence basic foundation for multi-PodManager  (horizontal scalability)
 +
# Valence Web UI
 +
# OpenStack plugins for Valence (Ironic)
 +
# Valence simulator
 +
# Network/Storage part of Valence
 +
 +
'''Intel''' :
 +
# Registering Rack scale bare metal flavors in OpenStack (could be accomplished by using an admin privileged Valence user in OpenStack to make OpenStack flavor creation API calls)
 +
# Attaching metadata bare metal composed nodes registered in Ironic that reflect any desired Rack scale features, at the minimum that it is an Rack Scale node
 +
# Deploying an OpenStack Nova compute image on a Rack scale composed node
 +
# Deploying a telemetry collection agent on the bare metal node ?? that is not normal in traditional OpenStack Ironic.
 +
# '''??''' Might we want to as part of OpenStack rack awareness, on any new node creation define OpenStack host aggregates and include composed node there in, where host aggregates for Pod_ID, Pod-<id>-rack <id> be defined?
 +
# '''??''' any interest in node decomposition
 +
# '''??''' should we create an OpenStack API to "release" a bare metal node? "release" a compute host. Possibly even a Horizon UI page restricted to admins for the same. Workloads would need to be live migrated, host put into maintainance mode and valence/Redfish API calls to decompose then carried out.
 +
 +
'''NEC'''(ramineni):
 +
# valence ironic integration
 +
# how valence can manage other pooled resources hardware (apart from RSD)
 +
# provision in valence to accommodate vendor specific drivers to manage other pooled resources (apart from RSD)
 +
#. Features for Pike
  
 
== Happenings! ==
 
== Happenings! ==
 
*  Yufei (99Cloud) has an ironic driver, not perfect, but works. Will be demoed at Beijing ODCC meeting on 09/27. Welcome!
 
*  Yufei (99Cloud) has an ironic driver, not perfect, but works. Will be demoed at Beijing ODCC meeting on 09/27. Welcome!
 
*  Mrittika (Intel), Malini (Intel) , & Alaa (Dell) have an OpenStack Brownbag tech talk at OpenStack Barcelona. http://vbrownbag.com/2016/09/vbrownbag-techtalks-at-openstack-barcelona/
 
*  Mrittika (Intel), Malini (Intel) , & Alaa (Dell) have an OpenStack Brownbag tech talk at OpenStack Barcelona. http://vbrownbag.com/2016/09/vbrownbag-techtalks-at-openstack-barcelona/
*  OpenStack Barcelona demo booth, F2F
+
*  OpenStack Barcelona demo booth, '''First Face-to- Face  Monday, 24 Oct 2016, 2 pm Barcelona local time,  congregate by 1:50 pm near registration area'''.
 
*  [https://etherpad.openstack.org/p/Valence_Barcelona_Co-ordination Valence_Barcelona_Co-ordination]
 
*  [https://etherpad.openstack.org/p/Valence_Barcelona_Co-ordination Valence_Barcelona_Co-ordination]
  
Line 115: Line 178:
  
 
[7] https://www.sdxcentral.com/articles/news/hpe-touts-composable-infrastructure-with-synergy/2015/12/
 
[7] https://www.sdxcentral.com/articles/news/hpe-touts-composable-infrastructure-with-synergy/2015/12/
 +
 +
[8] old Ironic Redfish spec https://review.openstack.org/#/c/184653/
 +
 +
[9] Bruno Cornec's OpenStack Barcelona talk: https://www.openstack.org/videos/video/empowering-ironic-with-redfish-support-1
 +
 +
[10]SNIA Swordfish  http://www.snia.org/forums/smi/swordfish
 +
 +
[11] Node registration with Ironic http://www.slideshare.net/devananda1/isnt-it-ironic-managing-a-bare-metal-cloud-osl-tes-2015

Latest revision as of 02:18, 18 July 2018

Valence Overview

Valence is a service for lifecycle management of pooled bare-metal hardware infrastructure. The concept of pooled storage (SSDs or nvmE) disaggregated from compute nodes and network disaggregated from compute and storage provides the flexibility to compose and uses as and when the cloud requires more server resources. Valence provides the capability "compose" hardware nodes and release resources as needed by the overcloud.

Valence supports Redfish as default management protocol to communicate to hardware. It supports Rack Scale Design (RSD), Open architecture for management of disaggregated server hardware resources, which is standardized in Redfish. Valence also provides capability to manage other vendors disaggregated hardware using their respective drivers other than Redfish.

Rack Scale Design: Composable Hardware

Rack Scale Design allows considering compute, storage, and networking as disaggregated resources that can be composed on the fly to meet various needs in a data center/cloud. Disaggregation, in addition to allowing hardware refresh at different rates for each of storage, compute, and networking, supports more efficient resource utilization. Imagine a cloud that grew and shrank to meet usage by virtue of being connected to a rack that allowed such dynamic composition and release, where you might compose a node with copious storage or another that provides pure compute horsepower. Intel[5], Dell, Lenovo, HPE [7] among others are interested in composable infrastructure.

To bring such a vision to light, the compute industry collaborated to standardize and define the RESTful Redfish API[1]. Intel PodManager implements the Redfish API. The API, in addition to supporting composition and release of nodes, supports managing them (power-on/off), discovering hardware capabilities, and even collecting advanced telemetry.

Using software that implements the Redfish API, one could construct nodes to deploy an OpenStack Cloud and with drivers for Nova and Ironic grow and shrink the cloud to meet utilization needs. Hardware flavors for the undercloud could be defined no different from VM flavors. This will take us closer to true Software Defined Infrastructure (SDI).

Rack Scale Design

DMTF Redfish

The Distributed Management Task Force, Inc (DMTF) [2] creates open manageability standards spanning diverse emerging and traditional IT infrastructures including cloud, virtualization, network, servers and storage. DMTF Redfish™ is an open industry standard specification and schema that specifies a RESTful interface and utilizes JSON and OData to help customers integrate and manage today's scale out hardware solutions, which are very different from the enterprise hardware of the past. Its sponsors are Broadcom, Dell, Emerson, HPE, INspur, Lenovo, MIcrosoft, SuperMicro, VMWare, and Intel among others. For more details refer to [3] and [4].

Valence - Functionality Overview

Valence is a collection of all things Rack Scale Control, from an user interface to help compose and view nodes, to supporting launch of an OpenStack cloud using your favorite deployment tool, a place to register blueprints, a banner under which to assemble a growing community interested in this functionality, a place to hold Nova and Ironic drivers and Horizon plugins to support growing/shrinking clouds dynamically, viewing Rack Scale flavors, and more.

Multi-PodManager Support

Valence provides the capability to manage multiple podmanagers. Each podmanager can be configured to use different driver. By default, ``redfishv1`` driver is used.

Currently supported drivers in Valence are:

1. redfishv1
2. expether

Future work include redfish v2 driver support. Other vendors also could implement their own driver to manage their hardware. Valence provides uniform interface to manage all the disaggregated hardware in datacentre supporting different protocols.

Device Orchestration Framework

Valence provides support for the dynamic management of pooled resources like storage, network and other pci devices which can be connected on demand to a composed node, giving user the ability to attach or detach the devices dynamically based on workload.

Ironic Provision Driver

Valence supports ``ironic`` provision driver to be able to register the valence composed node to ironic. Once the node is registered further operations of provisioning/managing could be directly performed using Ironic.

Architecture

The figure below describes how Valence will interact with implementations of RedFish and OpenStack to set up clouds. rack scale controller interactions

We envisage setting up the under cloud and dynamically growing/shrinking the cloud as complementary to OpenStack today. Given that, Valence seeks to become an OpenStack Big Tent project. Registration efforts are underway, ably being managed by Lin (lin dot a dot yang at intel dot com) [6]

Use Cases

A datacenter has multiple racks of machines with a RedFish implementation to control the same. From creating multiple clouds from a datacenter, to a cloud spanning multiple datacenters, and even a cloud dynamically expanding/shrinking based on need, there are several possible use cases. We pull the use cases into a separate document and attach to launchpad to elicit community input. valence use cases

Below figure shows general workflow of valence project. general user workflow

Valence Web Pages

Here are some pages capturing functionality at 30,000 feet! Rack Scale Controller Web UI pages

OpenStack Horizon Integration

Using a deployment tool of your choice (our team has explored with TripleO and Fuel) can be used to install OpenStack on RSC composed node(s). This could be at the very beginning to create a cloud, or anytime after a cloud has been floated to expand it. Such nodes would become visible through the OpenStack Horizon UI and via OpenStack CI through calls such as Nova list. Shown below is Horizon UI listing all hypervisors, aka compute nodes, assuming on Node-1, using a deployment tool, we have launched Nova-compute.

Horizon Integration, showing RSC composed node with Nova-compute deployed.

RSD Client and RSD Lib

Related projects have also been started for enabling communication directly to RSD enabled hardware, the python-rsdclient and rsd-lib. The rsd-lib will house extensions to the Sushy project, enabling it to discover and compose nodes using RSD systems, storage, and networking, while the client will utilize those extensions for a simple CLI for making RSD calls for discovery and composition. The RSD client is also planned to be a plugin for the larger OpenStack Client.

RSD Client RSD Lib

Source Code

Threat Model

Valence Threat Model

Look Who is Interested!

  1. Peter Jung (Dell EMC)
  2. shuquan
  3. octopuszhang
  4. kevinshu96
  5. malinib
  6. mritikka
  7. Ananth Narayan
  8. Lin Yang
  9. Nate Potter
  10. Deepti Ramakrishna
  11. Ruijing
  12. Chester
  13. jfding
  14. shuquan
  15. snivas
  16. yufei
  17. chakri
  18. Mandy_ (Lenovo)
  19. HuBian (Lenovo)
  20. Andy_Yan (Lenovo)
  21. Maohaijun (Lenovo)
  22. yangxing4 (Lenovo)
  23. wangzhandong (Lenovo)
  24. ramineni (NEC)
  25. zhenguo
  26. yuntongjin
  27. bryang (Suse)
  28. Jinxing Fang

Meetings

Meetings will occur weekly, 60 minutes long on

  • Channel: freenode #openstack-valence
  • Wednesdays, 14:30 HRS UTC ( For geos with daylight savings time, note that the meeting will shift to maintain UTC time)

Provide your input to the meeting agenda at Valence-Agenda

Logs of meetings past Valence-Meetings

Pike Planning

Lenovo (Hubian) interested in:

  1. Valence basic foundation for multi-PodManager (horizontal scalability)
  2. Valence Web UI
  3. OpenStack plugins for Valence (Ironic)
  4. Valence simulator
  5. Network/Storage part of Valence

Intel :

  1. Registering Rack scale bare metal flavors in OpenStack (could be accomplished by using an admin privileged Valence user in OpenStack to make OpenStack flavor creation API calls)
  2. Attaching metadata bare metal composed nodes registered in Ironic that reflect any desired Rack scale features, at the minimum that it is an Rack Scale node
  3. Deploying an OpenStack Nova compute image on a Rack scale composed node
  4. Deploying a telemetry collection agent on the bare metal node ?? that is not normal in traditional OpenStack Ironic.
  5. ?? Might we want to as part of OpenStack rack awareness, on any new node creation define OpenStack host aggregates and include composed node there in, where host aggregates for Pod_ID, Pod-<id>-rack <id> be defined?
  6. ?? any interest in node decomposition
  7. ?? should we create an OpenStack API to "release" a bare metal node? "release" a compute host. Possibly even a Horizon UI page restricted to admins for the same. Workloads would need to be live migrated, host put into maintainance mode and valence/Redfish API calls to decompose then carried out.

NEC(ramineni):

  1. valence ironic integration
  2. how valence can manage other pooled resources hardware (apart from RSD)
  3. provision in valence to accommodate vendor specific drivers to manage other pooled resources (apart from RSD)
  4. . Features for Pike

Happenings!

Licensing

Apache License v2

FAQs

  1. Do I need a Rack to develop and test Rack Scale Controller features? No, you could get by using a simulator. Please contact us. But to deploy your cloud you will need real hardware.
  2. Where can I learn more? Come join our meeting. Check out the references below. Join us on IRC.

References

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

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

[3] https://www.dmtf.org/sites/default/files/SPMF%20Introduction%20to%20Redfish%20May%202016.pdf

[4] https://www.dmtf.org/sites/default/files/standards/documents/DSP0266_1.0.4.pdf

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

[6] https://review.openstack.org/#/c/341966/

[7] https://www.sdxcentral.com/articles/news/hpe-touts-composable-infrastructure-with-synergy/2015/12/

[8] old Ironic Redfish spec https://review.openstack.org/#/c/184653/

[9] Bruno Cornec's OpenStack Barcelona talk: https://www.openstack.org/videos/video/empowering-ironic-with-redfish-support-1

[10]SNIA Swordfish http://www.snia.org/forums/smi/swordfish

[11] Node registration with Ironic http://www.slideshare.net/devananda1/isnt-it-ironic-managing-a-bare-metal-cloud-osl-tes-2015