API, English, Hardware, LCM, Technology

Redfish Support in Nutanix

With the release of the more recent 7.1x BMC (baseboard management controller) Nutanix NX appliances now support Redfish. Redfish is the successor to IPMI and is used to programmatically monitor and control single entities or complete farms of servers and other infrastructure. It is used for out of band management (OOB) of servers.

Redfish has been in development since 2014 as an industry wide initiative. It aims to be a contentious developing standard that is back-wards compatible. Meaning new servers can have newer features but continue to support the previous features. Redfish is considered more secure and more modern providing a RESTful API.

Redfish provides this API to allow for management tasks like firmware upgrades, monitoring the servers sensors, including fan speed, power consumption, errors, etc. The specific features are dependent of the implementation of the hardware vendor and the options this hardware has.

If you want to read more about Redfish, please take a look at this C’T Magazine article (in Dutch) or the official specification from DMTF. DMTF stands for Distributed Management Task Force. And is a nonprofit industry standards organization which manages the Redfish standard.

Nutanix LCM and Redfish

Nutanix LCM is the Life Cycle Management tool of Nutanix. This single tool is used for rolling upgrades of Nutanix hardware, software and optional 3rd party components. For upgrading firmware using the previous method, multiple reboots where required. That by itself it not a bad thing, but it does require quite some time. Resulting in long maintenance cycles for larger clusters. Redfish integration allows LCM to upgrade certain components of the hardware without the operating system requiring a reboot. Like the BMC controller, or just a single reboot for the BIOS. Which previously required three reboots. In most cases this results in a reduction of the time required for updates of roughly 50%.

For the Redfish method to work there are certain requirements to be met:

  • Nutanix NX G6 or G7 nodes
  • LCM Version 2.4 or higher
  • BMC version 7.10 or higher
  • AOS 5.15.4 or higher (when on AHV) or a recent ESX version (patched late 2020)

When met, Redfish will be used, otherwise the now legacy method will be used. For Hyper-V nodes the legacy IPMI method will remain the default for now. Other hardware platforms will follow in the future.

To check for the versions and compatibility you can check LCM “Inventory” page. If your system meets the requirements, LCM shows “Redfish” in the UI behind the BIOS and BMC’s columns.

Redfish API access

As mentioned before, Redfish can be accessed via the RESTful interface it provides. Nutanix LCM uses this, but we can also use this from other tools or self developed scripts.

One thing that recently came up at a customer site was power consumption. I did a quick dig into how you can get power consumption information from the Redfish API. You can use this example to collect and store this information to your exact needs.

I used Postman to connect to the API, just because it is convenient and quick to use, but for long term logging or monitoring of multiple servers you might want to write a script for this. 🙂 . The first query we perform is a GET to the URL https://<LOM_IP_ADDRESS>/redfish/v1.

When you start you will need to connect to the Lights Out Management IP address over HTTPS. Since there is no officially signed cert on the host we need to accept the warning in Postman about this. Next you need to add Basic auth credentials that are the same as your username (ADMIN is default) with your password used to access the web GUI.

If all is well, the response should be something like;

{
    "@odata.context": "/redfish/v1/$metadata#ServiceRoot.ServiceRoot",
    "@odata.type": "#ServiceRoot.v1_1_0.ServiceRoot",
    "@odata.id": "/redfish/v1/",
    "Id": "RootService",
    "Name": "Root Service",
    "RedfishVersion": "1.0.1",
    "UUID": "00000000-0000-0000-0000-0000000000",
    "Systems": {
        "@odata.id": "/redfish/v1/Systems"
    },
    "Chassis": {
        "@odata.id": "/redfish/v1/Chassis"
    },
    "Managers": {
        "@odata.id": "/redfish/v1/Managers"
    },
    "Tasks": {
        "@odata.id": "/redfish/v1/TaskService"
    },
    "SessionService": {
        "@odata.id": "/redfish/v1/SessionService"
    },
    "AccountService": {
        "@odata.id": "/redfish/v1/AccountService"
    },
    "EventService": {
        "@odata.id": "/redfish/v1/EventService"
    },
    "UpdateService": {
        "@odata.id": "/redfish/v1/UpdateService"
    },
    "Registries": {
        "@odata.id": "/redfish/v1/Registries"
    },
    "JsonSchemas": {
        "@odata.id": "/redfish/v1/JsonSchemas"
    },
    "Links": {
        "Sessions": {
            "@odata.id": "/redfish/v1/SessionService/Sessions"
        }
    },
    "Oem": {}
}

You can click the URLs in postman to start a new tab to that specific URL to see the details about that topic.

When we want to lookup the power consumption of the server we can connect to https://<LOM_IP_ADDRESS>/redfish/v1/Chassis/1/Power. That will show you:

You can see that this specific server consumes 575 Watts on average.

Reference Documentation

You can learn more about RedFish for Supermicro and Nutanix in some of the following references;

We'r using cookies to see how many people read our blogs

We're interested in how many people view our blogs, please accept the cookies if you're okay with that.