Redfish 1.0 is defined as a standard and a RESTful API for the management of scale-out commodity servers. Although it was created with the current needs of scalable architectures in mind, Redfish can be used for the management or the integration of the older platforms and their tool chains.
The Redfish API deals with resources which are expressed based on an OData or JSON schema. Resources are accessed through the usual HTTP operations: GET, PUT, POST, etc., or a set of Actions that go beyond what CRUD HTTP operations can perform. An example of such an action is performing a system reset. API clients can use the schema to discover the semantics of the resource properties. The specification makes reference to three main category of objects:
- Systems – server, CPU, memory, devices, etc.
- Managers – BMC, Enclosure Manager or similar
- Chassis – racks, enclosures, blades, etc.
There can be multiple managers per system and multiple systems per chassis.
The specification also defines a number of services that implement its functionality:
- Tasks – various jobs that can be initiated and executed synchronously or asynchronously against resources
- Sessions – a collection of related operations executed against a certain resource
- AccountService – a service for creating users
- EventService – a service for pushing events to interested parties
For more details we recommend reading the Redfish Specification. The Redfish Resource Explorer contains a simple mockup demonstrating some of the capabilities specified by this standard.
Redfish has been developed by DMTF with the support of Dell, Fujitsu, HP, Intel, Lenovo, Microsoft, Oracle, VMware, and others.