Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Redfish composability provides a data model to describe composable hardware, as well as an interface for clients to manage their composition. Composition Service is the top-level resource for all  composability related resources. Within the Composition Service we can find the inventory of Resource Blocks, Resource Zones and Collection Capabilities. Resource Blocks contains inventory of all components that can be used for composability. Resource Zones are descriptors containing the binding restrictions of the different components. Collection Capabilities are annotations that describe how to form composition requests.

ODIM composition service implements the Redfish composition model. The composition service provides APIs and framework to build the composable infrastructure using ODIM resources. Initially, Composition service offers the features like resource blocks and resource zones. Any supported actions on these resources will be added. Composition service requires  additional API support from other redfish resources to create a composition, update resources, and delete the composition.


Create a Composed Resource: Redfish Composability model has defined Specific Composition, Constrained Composition. ODIM composition service includes all composition models, in phase-by-phase releases.

Update a composed Resource: Composition service enables updating an existing composition like adding a new resource or removing a attached resource etc.

Delete a composed Resource: Composition service retire or decompose an already composed resource

The composition service provides infrastructure to compose a logical system called composed node and associate the required hardware resources on demand. The composition service provides RESTful APIs to compose a node based on the requirements provided as a JSON payload. The composition service keeps the inventory of hardware resources available from the ODIM resource aggregator service. The payload includes one or more of hardware requirements like chassis, computer system, processor, memory, ethernet interfaces, local and remote storage. The composition takes place in two steps, allocate and assemble. Allocate action reserves the best suitable hardware resources from the global pool of available hardware resources.  Assemble action links hardware resources as needed, to the computer system associated. After resources get allocated administrator can review and make sure that resources allocated are best suitable before assembling it.

Composition service provides additional features like attach and detach resources at run time. There is an option to delete the composed node when not needed. The node deletion will release the reserved hardware resource to the global resource pool and they will be available for next node composition. composition Service also provides resource specific actions like power reset, Boot source override, etc.

There is an API to initiate the resource inventory from the resource aggregator to update the latest set of available resources.


API

URI

HTTP Methods

Remarks

Composed Node Collection

Composition Service

/redfish/v1/

Nodes

CompositionService

GET

Composed Node Instance

Resource Blocks

/redfish/v1/

Nodes

CompositionService/

{Id}

ResourceBlocks

GET,

POST, PATCH, DELETEAllocate Action

POST

POST to add a resource block manually.  Not in Redfish specification.

Resource Zones

/redfish/v1/

Nodes/Actions/ComposedNode.Allocate

POST

Assemble

CompositionService/ResourceZones

GET, POST



Dependencies

Composition Service depends on additional APIs to be supported in other ODIM modules. Listed down the APIs required for Computer system Composition. Later this list will be extended for other composable resources.

APIURIHTTP MethodsRemarks
Computer system Composition/redfish/v1/
Nodes/{Id}/Actions/ComposedNode.Assemble

POST

Attach Resource
SystemsPOSTODIM Systems collection need to have this action
Add resource block/redfish/v1/
Nodes
Systems/{
Id
{id}}/Actions/
ComposedNode
ComputerSystem.
AttachResource
AddResourceBlockPOST
Detach Resource
System instance
Remove resource block

/redfish/v1/

Nodes

Systems/{{

Id

id}}/Actions/

ComposedNode

ComputerSystem.

DetachResource

RemoveResourceBlock

POST
Initiate Inventory
Systems instance
Delete a composed resource/redfish/v1/
Configurations/Actions/Configurations.InitiateInventory

POST

OEM Action

Power Reset

/redfish/v1/Nodes/{Id}/Actions/ComposedNode.Reset

POST

Boot Source Override

/redfish/v1/Nodes/{Id}

PATCH
Systems/{{id}}DELETEResources will be deleted and available for next composition


ODIM kind of aggregation services includes servers and hardware resources identified using different technologies and operates on a heterogeneous environment. Building the composition resources in a standard way is not sufficient.  We are listing some of the real time use cases below, on the possible options to build the composition resources.


There are different ways we can build the composition resources, in a heterogeneous environment.


Use Case 1: API to add Composition resources.

Redfish has support to add resource blocks. Redfish specification does not support to add a resource block directly. ODIM Composition Service can exposes APIs to add resource blocks. Users can add a resource block using this API.  We recommend that this shall be proposed as a feature enhancement to DMTF.


Use Case 2: Build the composition resources automatically.  

Composition service will have a back end service running that triggers the building of composition service resources like resource blocks and resource zones.  For this Composition service need to be notified when there is a new server added to ODIM.    

When a new server is added to ODIM, the composition service gets notified. Then composition service collect the new servers resource information and build the composition resources. There is a limitation here that the composition service does not recognize the underlying connectivity across the disaggregated resources. This could be helpful build the resource blocks and resource zones for the integrated resources like compute, processor, memory etc.


Use Case 3: Utilizes composition resources from underlying services.

When a new server added to the ODIM, ODIM knows the underlying service (like  redfish service) that provides the information. If the underlying service is redfish and exposing the composition  service resources that can be consumed in the ODIM composition service. 

We must check the possibilities of doing this, as composition service may not have visibility to underlying services that provides the resource data.


 

Development Plan


Initial implementation of ODIM Composition service will have support for resource blocks, resource zones and computer system composition. The initial version shall add support to specific composition.


The constrained composition, and other resource composition will be added later versions.

Also, future versions of composition service adopts new features added by DMTF Redfish Composability task force.