Redfish Management
This appendix gives an overview of Redfish management for cluster devices. Redfish is a standard RESTful API for managing servers, storage, and network infrastructure. BCM provides integration with Redfish-enabled devices for out-of-band management, hardware monitoring, and configuration.
Section N.1 provides an overview of Redfish and its role in cluster management.
Section N.2 covers commands for querying and managing devices using Redfish.
N.1 Redfish Overview
Redfish is an industry-standard specification developed by the DMTF (Distributed Management Task Force) that provides a RESTful interface for managing modern data center hardware. It replaces older protocols like IPMI with a more modern, secure, and extensible approach.
N.1.1 Redfish Features
Redfish features include:
-
RESTful API using JSON data format
-
Secure communication over HTTPS
-
Standard schema for hardware components (https://redfish.dmtf.org/redfish/schema_index)
-
Event-driven notifications
-
Support for firmware updates
-
Power and thermal management
N.1.2 Redfish In BCM
BCM uses Redfish for:
-
BMC (Baseboard Management Controller) communication (section 3.7)
-
Hardware inventory collection (section 14.11.1)
-
Power control operations (section N.2.3)
-
Firmware management (section 14.5.2)
-
Leak detection in NVL8 hardware (section 3.3.2.5 of the NVIDIA Mission Control Manual)
N.2 Redfish Commands
Redfish operations can be performed using commands available in the device mode of cmsh.
N.2.1 Redfish Status
Device status and Redfish connectivity can be verified through standard device status (here) commands, just as for nodes:
Example
N.2.2 Hardware Inventory Using Redfish
The hardwareinventoryinfo command (section 14.11.1) retrieves hardware inventory data from devices using Redfish when available. This includes component information such as CPUs, memory, GPUs, and network adapters.
N.2.3 Power Control Using Redfish
Power control operations (section 4.2) can be performed on Redfish-enabled devices using the standard power commands in device mode:
Example
For devices with Redfish BMCs, these commands are associated with the DC power cycle terminology used in Redfish. The commands communicate with the BMC using the Redfish API to perform the requested power action and assume that the AC power source to the BMC is on.
AC power cycle (here) is the term used to describe a power reset of the BMC itself.
N.2.4 Redfish Subscriptions: redfishsubscriptions
The redfishsubscriptions command is run from device mode, and displays the status of Redfish event subscriptions for devices such NVLink switches.
BCM subscribes to Redfish events from device BMCs to receive real-time notifications about hardware events, alerts, and status changes.
Example
The output shows:
-
hostname: The device hostname -
id: The subscription identifier -
initialized: Whether the subscription has been initialized -
ip: The BMC IP address -
kind: The device type (GB300for compute trays,GB200SWfor NVLink switches) -
port: The Redfish API port (typically 443 for HTTPS) -
ssl: Whether SSL/TLS is enabled -
subscribed: Whether the subscription is active -
uuid: The unique identifier for the device
N.2.5 Redfish Event Testing: redfishevent
The redfishevent command can be used to test Redfish event delivery. The -m|--message option sends a custom message that can be used to verify that event subscriptions are working correctly:
Example
Running the command multiple times triggers test events from different subscribed devices, confirming that Redfish event delivery is functioning across the cluster. The events are logged and can be viewed using the events command.
The redfishevent command has options for targeting specific nodes. Details can be seen by running the help command (help redfishevent).
N.2.6 Redfish HTTP Commands
BCM provides commands for direct Redfish API access using standard HTTP methods. These commands allow administrators to query and modify device configurations directly through the Redfish interface.
N.2.6.1 Redfish GET: redfishget
The redfishget command carries out an HTTP GET request to a Redfish endpoint. This is used to retrieve information from devices:
Example
N.2.6.2 Redfish POST: redfishpost
The redfishpost command carries out an HTTP POST request to a Redfish endpoint. This is used to create resources or trigger actions. The -f|--filename option specifies a JSON template file, and -p|--parameter option is used for parameter substitutions:
Example
N.2.6.3 Redfish PUT: redfishput
The redfishput command carries out an HTTP PUT request to a Redfish endpoint. This is used to replace an entire resource:
Example
N.2.6.4 Redfish PATCH: redfishpatch
The redfishpatch command carries out an HTTP PATCH request to a Redfish endpoint. This is used to partially update a resource:
Example
N.2.6.5 Redfish DELETE: redfishdelete
The redfishdelete command carries out an HTTP DELETE request to a Redfish endpoint. This is used to remove resources:
Example
All Redfish HTTP commands support filtering by node, category, rack, and other criteria. Details can be seen by running the help command (for example: help redfishget).