Redfish is a network standard and application programming interface (API) for the management of servers, networks, storage devices, facilities equipment, and other converged infrastructure (CI) components in software-defined hybrid IT environments like web-scale data centers and cloud infrastructure.
Redfish is schema based and provides a RESTful (Representational State Transfer) interface over Hypertext Transfer Protocol (HTTP) using JavaScript Object Notation (JSON) format and Common Schema Definition Language (CSDL), as defined by Open Data Protocol (OData) v4.
Redfish comprises multiple specifications, including common internet and web services standards, to expose information to the modern tool chain. In IT, a tool chain comprises the programming tools used to perform complex software development tasks. The Redfish standard incorporates specifications not only for client messaging but also for built-in services like task and user management, and session and event control.
Redfish is a hypermedia API. The term hypermedia refers to its capability to manage multimedia like text, audio, video, graphics, and hyperlinks, making it well suited for media-rich systems and storage systems.
Redfish was developed by the Distributed Management Task Force (DTMF), a non-profit industry standards organization that creates standards for IT infrastructures. Redfish was primarily originally designed as a server management standard but the latest version supports the complete range of hardware found in a data center.
The first version of the Redfish standard, Redfish 1.0, was published in 2015, and provided base schema models that described what resources Redfish supported and how to access them. Subsequent versions added new schema models, for example to standardize the management of memory, disk drives, storage, endpoints, etc., and added new specifications for features like composability and telemetry that were essential for managing hardware resources efficiently, and for an in-band interface.
The goals of the DMTF when designing Redfish were to develop a cross-vendor interface that: exposed information directly to the modern tool chain; provided a scalable and extensible data model for managing software-defined hybrid IT; leveraged commonly used web standards, best practices, and security methods; had secure multi-node capability; was human readable but machine capable; and enabled maximum interoperability between different hardware components such as the increasingly diverse devices being incorporated into Edge computing and the IoT.
The main task of a server manager is to manage, configure, and control a server’s infrastructure remotely, and to respond to server alerts and notifications. This is done through an out-of-band (OOB) interface. OOB management is a way of remotely managing IT infrastructure using a secure connection through an interface that is physically separated from the production network. This allows administrators to remotely gain control of hardware in the event that a system or component fails. In contrast, in-band management refers to managing components through a network itself, using a Telnet or SSH connection, or SNMP-based tools. The latest Redfish host interface specification provides in-band functionality that allows applications and tools that run on an operating system (OS) to communicate with Redfish. This is one of the features that enables administrators to holistically manage data centers via a single interface.
Redfish replaces the widely used Intelligent Platform Management Interface (IPMI), which was published in 1998. Like Redfish, IPMI specifies standards for the management of hardware-based infrastructure components like servers. However, IPMI was not very scalable, was not user friendly, and could not effectively address modern security challenges. Because vendors often developed their own versions and extensions, IPMI had interoperability issues and was becoming increasingly fragmented.
In data centers, it is not only servers that need to be remotely monitored, accessed, and potentially restarted or have their settings changed, but also facilities equipment like CCTV cameras or air conditioning units.
Redfish monitors the health of hardware components such as sensors, power supplies, fans, and chassis, and their state, or metrics like voltage or temperature. It also performs and may also automate maintenance tasks like rebooting different types of hardware, setting power thresholds, configuring baseboard management controller (BMC) network settings, and changing BIOS settings. Redfish retrieves information about sensors, power consumption, memory, storage space, and the operating system itself. It is used to perform remote recovery procedures, provide system and event logs, respond to warnings and critical events, and manage user accounts.
Redfish was designed to reduce overhead, increase system administrators’ productivity, reduce vendor lock-in, and enable scalable interoperability for converged, hybrid IT at software-defined data centers (SDDCs). It was developed as a solution to the increasing complexities of SDDCs and it addresses shortfalls in traditional data center management solutions like incompatible APIs, standards, protocols, and interfaces, and an increasing number of new types of hardware. It was designed to address flaws in, and eventually replace, the IPMI standard and a command-line interpreter (CLI) approach to server management at data centers.
In modern SDDCs, virtualized software represents network services and resources. This means that changes to physical connections and hardware do not need to be done manually. Redfish allows a device to be virtually reallocated to a different client without someone having to physically be at the data center.
Redfish is not limited to component management. It is also used to manage data center infrastructure management (DCIM) power and cooling, and the Ethernet domain using YANG, a data modeling language. It is increasingly used in networks like the IoT and Edge. Redfish also provides tools and extensions for frameworks like Ansible and Puppet that automate tasks like cloud provisioning and application deployments.
Redfish can be used with standalone servers, in rack mount and bladed environments, and in large-scale cloud environments.
Some commercial servers that use Redfish include Dell PowerEdge 13G/14G servers, Supermicro X10/X11 servers, and HPE ProLiant servers with iLO 5. Popular software that uses Redfish includes OpenStack Ironic, Ansible, and ManageIQ.
Redfish is supported by Supermicro, Oracle, Cisco, Lenovo, Dell, HPE, Intel, Microsoft, and Huawei, amongst others.
The Redfish tool chain includes REST, HTTPS, JSON, and OData. These commonly used technologies are familiar to developers and make Redfish easy to implement and use, and are easily accessible to applications, client libraries, and scripts.
Redfish data model
A key Redfish feature is the separation of protocol from the data model, making the data transport agnostic and protocol agnostic.
Redfish schema
The Redfish API is defined independently of a data model. It uses a RESTful interface to access a schema-based data model.
A schema describes the relationship between objects in a system. The DMTF hosts schema files for standard data used in Redfish in the DMTF schema repository. The Redfish schema may be extended by adding new properties to an existing schema or by creating a new collection or subordinate resource within a collection.
REST and HTTPS
The function of a Redfish service is to receive an HTTPS request and to return a response about the resource. HTTPS is an application layer protocol that is used to transport requests and responses using TCP/IP at the transport layer. The term Redfish protocol refers to a RESTful mapping to the HTTP message protocol.
A Redfish service returns a standard HTTPS status code and may return multiple additional error responses to provide extended information about an error.
JSON and OData
OData is an application layer protocol that specifies how REST services are called over HTTP and how they respond. Redfish uses the OData v4 standard to define schema and payload formats so that off-the-shelf OData applications can interact natively with Redfish.
JSON is a widely used file format and data interchange format that stores and transmits data objects in human-readable text. By using JSON, Redfish output can be viewed in a browser. OData prescribes the structure of the data coded in JSON format.
The DMTF also provides the Redfish schema in Yet Another Markup Language (YAML) format. YAML is a human-readable, data serialization language that is often used for writing configuration files.
Base management controller (BCM)
A BCM monitors the physical state, like temperature or voltage, of a computer or other device using sensors. It operates independently of server software and allows administrators to bypass the OS to control devices and server components at remote locations, which reduces overhead and increases reliability.
When IPMI or its competitor Active Management Technology (AMT) was used for baseband management, traditionally vendors were able to lock customers into their products. Redfish sits on top of baseband management solutions like IPMI. It makes the underlying baseband management process transparent to developers and enables interaction with any BMCs using JSON payloads. A JSON payload is the data associated with a specific resource accessed via the Redfish API.
Single interface
CI integrates compute, storage, virtualization, and network infrastructure components, which reduce complexity in data center management and mitigate hardware incompatibility. With Redfish, the management of these components can be done using a single, simple interface.
Authentication
Redfish provides HTTP basic authentication using the Authorization header in an HTTPS request. Basic authentication is usually used for one-time requests. Session-based authentication is done by a client saving the X-Auth-Token header returned in an HTTPS response from a client request to start a session. Session-based authentication is used when multiple requests are made successively. LDAP and Microsoft Active Directory can also be used for credentials.
A Redfish service is an application or managed system that implements the Redfish standard via a Redfish-defined interface. A service always includes a base uniform resource locator (URL) or uniform resource identifier (URI) that represents a particular type of resource, for example a service, collection, or file. Services return resources as JSON payloads.
Resources include an empty property called OEM, which is used to hold vendor-specific properties and allows resource extensibility.
Redfish resources, standard ones and those created by others, follow a set of naming conventions to ensure consistent naming. They are organized in a tree-like structure with collections that can include multiple related resources. A collection is a set of resources that share the same schema definition. Collections are used in support of standalone, multi-node, and aggregated rack-level systems.
The main Redfish resources are divided into three collections: systems, managers, and chassis. The systems collection provides a logical view of a computer system and includes system resources like CPU and storage. The management collection includes management resources like BMCs and enclosure managers. The chassis collection includes resources that are related to physical elements of an infrastructure such as enclosures, racks, and blades. Chassis collections link physical components to software in a system.
Registries are Redfish resources that are used to provide additional information about other resources. For example, BIOS information varies across platforms, so Redfish cannot define a fixed schema for this information. Registries are used instead to provide more information about these values.
Redfish leverages additional resources through services. Service collections include tasks, sessions, accounts, events, updates, registries, and schemas. Two services that provide the capabilities for two key Redfish features – composability and metric collection – are the composition and telemetry services.
Composition service
For better performance, hardware components at data centers are disaggregated or decoupled, i.e., broken down into constituent components like memory, storage, compute modules, etc. These components are assigned to pools of available resources that can be optimized for specific workloads as and when needed. This means that they can be reassembled for different uses, which optimizes resource resolutions. This architecture is referred to as composable infrastructure.
The Redfish composition service provides a data model to describe composable resources and an interface that allows clients to reassemble and configure composable components remotely.
Telemetry service
Telemetry is the process of gathering metrics about raw data from sensors at remote hardware sources. A metric is the value of a measurable quality or quantity like temperature or electric current. Metrics are used to obtain metadata about a resource, to report on the behavior of resources, and to specify trigger thresholds for metrics that are being monitored, for example the maximum allowable operating temperature of a device.
Metrics appear in Redfish resources as optional JSON properties. The Redfish telemetry service describes the resources that a client may use to get metrics from a Redfish component.
Redfish integrates easily with commonly used technologies such as REST, JSON, and Odata, and offers better functionality, performance, and security than other platform management solutions.
Redfish has a low memory footprint and supports most operating systems, enabling efficient multi-vendor data center management. Redfish is completely extensible and includes a complete development framework and test suite, and OEM extensions for custom deployments.
Redfish uses OOB management that allows administrators to remotely manage data center components even if equipment is switched off. This enables continuous monitoring and the capability for immediate remediation in the event of system failure.
Redfish can be deployed on existing management controllers and frees servers from vendor lock-in. It reduces the complexity and inefficiency inherent in using multiple incompatible tools, allowing developers to innovate more flexible, stable, cost efficient, and extensible solutions.
Using Redfish, interoperability can be managed throughout a product's or service's lifecycle, from deployment to support.
Although Redfish enhances interoperability between data center components, a Redfish client may still need to use different message elements for different vendors’ products.
Redfish does not allow a client to copy the contents of a resource tree directly to another service because the configuration may be different. Similarly, the value of resource links may vary across implementations.
Client software will need to be updated when there are data model updates and when new components are added.
Redfish is a fast-growing, open industry, next-generation standard that enables scalability in multi-server environments like data centers and cloud infrastructures.
The DMTF is collaborating with a number of alliance partners to build new Redfish extensions. For example, the DMTF, NVMe, and the Storage Networking Industry Association (SNIA) have collaborated on the development of Swordfish for managing storage appliances and services in data centers. The PCI Industrial Computer Manufacturer Group (PICMG) is working on extensions to support IoT deployments. The American Society of Heating, Refrigerating and Air Conditioning Engineers (ASHRAE) has adopted Redfish for power and thermal management in data centers. Together with the DMTF, the OpenFabrics Alliance is developing new Redfish models and schema for different fabrics. In IT, fabric refers to data or storage area networks, and to cloud platform servers, and high-speed connections and switches. Redfish is also expected to replace IPMI in the Open Compute Project (OCP). The work involves using Redfish to specify platform manageability in OCP applications.
The main potential disadvantage of Redfish is bloat in the future due to the large number of extensions being created, particularly with regard to Edge computing.
Data center monitoring
Data center monitoring is mission critical for any company. It is not just the network infrastructure that needs to be monitored but also the hosted applications and services and the data center physical environment itself. PRTG Network Monitor covers the entire network ecosystem. It monitors all infrastructure devices – like switches, routers, servers, firewalls, and load balancers – and system and client software – like virtual environments and web applications. PRTG Network Monitor also tracks information from sensors in the physical data center that monitor temperature, humidity, physical access, energy supply, and CCTV footage. Arguably, the most important monitoring function is security.
Redfish Sensors in PRTG
In PRTG, you can create virtual devices that represent physical devices in your network like servers, storage devices, etc. Sensors can then be added to these devices. PRTG sensors are basic monitoring elements that monitor measured values, like CPU load or the amount of free space on a drive. Alerts notify administrators when there is a problem or anomaly in the system, whether it is a critical issue like a power outage or a warning that the toner for a specific printer is running out.
PRTG recently released the Redfish System Health sensor, which monitors the overall system health and status of devices for a Redfish-enabled server. (Check out if your server supports the Redfish Health sensor here.)
The Redfish Health sensor monitors downtime, system memory, and processor functions. It provides continuous monitoring of the status of hardware components like chassis, drives, fans, power supplies, and Peripheral Component Interconnect Express (PCIe) devices.
[More about Monitoring with PRTG and redfish here https://blog.paessler.com/monitor-your-server-hardware-system-health-with-the-redfish-protocol]
- https://www.dmtf.org/
- https://en.wikipedia.org/wiki/Redfish_(specification)
- https://www.supermicro.com/manuals/other/RedfishRefGuide.pdf
- http://www.amax.com/blog/?p=840
- https://docplayer.net/186706324-Redfish-resource-and-schema-guide.html
- https://www.digi.com/solutions/by-technology/out-of-band-management#:~:text=Out%2Dof%2Dband%20(OOB,control%20even%20during%20infrastructure%20faults.
- https://ttu-ir.tdl.org/bitstream/handle/2346/72726/KUMARI-THESIS-2017.pdf?sequence=1&isAllowed=y
- https://internetofthingsagenda.techtarget.com/blog/IoT-Agenda/Redfish-expansion-unlocking-IoT-enabled-data-center?_gl=1*1dr8gfv*_ga*MTA1ODExNTI4LjE2MzE2NDc0MzI.*_ga_TQKE4GS5P9*MTYzMjgzMzU1MC42LjEuMTYzMjgzNjQ1OS4w&_ga=2.239712448.2139512087.1632830735-105811528.1631647432
- https://downloads.dell.com/manuals/all-products/esuprt_software/esuprt_it_ops_datcentr_mgmt/dell-management-solution-resources_white-papers11_en-us.pdf
- https://www.ami.com/tech-blog/focus-on-open-standards-in-server-management-the-redfish-api-from-dmtf/
- https://www.hpe.com/content/dam/hpe/download/pdf/AvidThink-HPE-Intel-Scaling-the-Edge-with-Redfish-Research-Brief-REV-A.PDF?cc=us&ll=en