Gestión de servidores Power Systems utilizando las API DMTF Redfish

Los servidores Power Systems basados en FSP se pueden gestionar utilizando las API DMTF Redfish.

Visión general

Redfish es una API REST que se utiliza para gestionar plataformas y la ha estandarizado Distributed Management Task Force, Inc. (http://www.dmtf.org/standards/redfish).

Redfish permite controlar las tareas de gestión de plataformas mediante scripts de cliente que se desarrollan utilizando paradigmas de programación seguros y modernos.

La API Redfish habilita el suministro de parámetros ajustables para una mejor utilización de la alimentación.

Los servidores IBM® Power Systems admiten la API DMTF Redfish (DSP0266, versión 1.0.3, publicado el 17 de junio de 2016) para la gestión de sistemas.

DMTF (http://redfish.dmtf.org/schemas/v1/) publica una copia de los archivos de esquema Redfish que se hallan en formato JSON y los empaqueta en la imagen del firmware.

Los archivos de esquema que se distribuyen en el chip permiten la funcionalidad de las API en despliegues que no tienen conectividad de red de área amplia (WAN).

Nota: La API Redfish está habilitada de forma predeterminada y el usuario no puede habilitar o inhabilitar el servicio Redfish.

Niveles de firmware

Las API Redfish reciben soporte en el nivel de firmware FSP (Flexible Service Processor - procesador de servicio flexible) FW860.20 y posteriores.

Requisitos previos de comunicación para Redfish en servidores Power Systems

Dependiendo del nivel de firmware actual y del despliegue de red, lleve a cabo las siguientes tareas de requisito previo:
  • Actualice el nivel de firmware de servidor a FW860.20.
  • Identifique la dirección IP del FSP (por ejemplo, esta información se puede descifrar desde la HMC conectada).
  • Configure el túnel SSH en el FSP a través de la HMC.
  • Instale y ejecute cURL (https://curl.haxx.se/) con el método URI (Uniform Resource Indicator) y el cuerpo de solicitud como parámetros para comunicarse con el servicio Redfish.
  • Instale Python en el sistema cliente (suele ser un host Linux).
  • De manera opcional, instale y ejecute DMTF Redfishtool (https://github.com/DMTF/Redfishtool).

Configuración del túnel SSH

En el ejemplo siguiente se muestran los mandatos que se utilizan para configurar el túnel SSH (reenvío del puerto local) desde un cliente (dirección IP 9.193.126.186) en el FSP (dirección IP 9.3.19.141) a través de la HMC (dirección IP 9.126.138.108):
Argus$ ssh -L 9000:9.3.19.141:443 hscpe@9.126.138.108
hscpe@9.126.138.108's password: 
Last login: Wed Feb 08 11:29:20 2017 from 9.193.126.186

Para obtener más información sobre los mandatos de creación de scripts a través de un túnel SSH, consulte Apertura y cierre del pestillo de un túnel SSH en un script de shell, la forma inteligente.

En lugar de enviar las solicitudes Redfish a la dirección IP del FSP, configure el túnel SSH tal como se describe en este tema y envíe la solicitud al puerto correlacionado (9000) en el cliente (dirección IP 9.193.126.186). El dominio del URI para las solicitudes Redfish debe ser 9.193.126.186:9000 para este ejemplo.

Interactuación con el servicio Redfish

Para interactuar con el servicio Redfish, lleve a cabo estos pasos.
  1. Cree una sesión de inicio de sesión autenticada (método POST en el recurso /redfish/v1/SessionService/Sessions.
  2. Extraiga y guarde los detalles siguientes:
    • Señal de autenticación (se halla en la cabecera X-Auth-Token de la respuesta)
    • URI de sesión (se halla en la cabeceraUbicación de la respuesta)
  3. Para leer las propiedades de una respuesta, envíe una solicitud GET con la cabecera X-Auth-Token para el URI del recurso.
  4. Para establecer una propiedad de un recurso, envíe una solicitud PATCH con la cabecera X-Auth-Token para el URI del recurso, el nombre de propiedad, el tipo y el valor codificado como un cuerpo JSON.
  5. Extraiga y analice la respuesta desde el servicio Redfish que contiene el cuerpo JSON.

URI de la página de inicio del servicio Redfish

Es posible acceder al URI de la página de inicio del servicio Redfish (también conocido como servicio ROOT) recuperando el URI: https://<ip:puerto>/redfish/v1. La respuesta a este URI es un mapa del sitio de alto nivel que permite un recorrido a través del servicio Redfish utilizando un paradigma de la API hipermedia.

Interpretación de los datos que ha devuelto el servicio Redfish

El formato y la estructura de los datos se define en los archivos de esquema. Los archivos de esquema son archivos JSON que describen los datos enviados por el servicio Redfish. Puede utilizar los archivos de esquema para entender los datos que envía el servicio Redfish y para validar la respuesta enviada por el servicio Redfish.

Ubicación de los archivos de esquema

DMTF publica los archivos de esquema para los datos estándar que se utilizan en Redfish.

Los archivos de esquema Redfish en formato JSON se alojan en el repositorio de esquemas DMTF en http://redfish.dmtf.org/schemas/v1/

IBM publica los archivos de esquemas para las extensiones del fabricante de equipo original (OEM) en el esquema de Redfish (por ejemplo, la extensión EnergyScale para una mejor utilización de la energía).

Los archivos de esquema de OEM que publica IBM se identifican mediante el prefijo de nombre de archivo IBMEnterprise en el espacio de nombres del esquema. Por ejemplo, IBMEnterpriseEnergyScale.v1_0_0.json.

Los archivos de esquema de OEM que publica IBM se pueden descargar del repositorio de esquemas de IBM en http://public.dhe.ibm.com/systems/power/redfish/schemas/v1/.

Validación de la respuesta (cuerpo JSON) devuelta por el servicio Redfish

La respuesta que devuelve el servicio Redfish contiene la propiedad @odata.type. El valor de la propiedad @odata.type en la respuesta es una cadena del formato *#<espacio_nombres>.<tipo>, donde <espacio_nombres> tiene el formato <nombre>.<ver>.

Cuando el espacio de nombres contiene el prefijo IBMEnterprise, el espacio de nombres es un tipo de OEM identificado por IBM y su archivo de esquemas se puede descargar del repositorio de esquemas de IBM.

Cuando el espacio de nombres no contiene el prefijo IBMEnterprise, el espacio de nombres es un tipo estándar definido por DMTF y su archivo de esquemas se puede descargar desde el repositorio de esquemas de DMTF.

Recursos admitidos por el servicio Redfish

En el nivel de firmware FW860.30, los recursos siguientes se modelan en la implementación de Redfish:
  • Servicio
    • Service Root: https://<ip:puerto>/redfish/v1
    • Session Service: https://<ip:puerto>/redfish/v1/SessionService
    • Session Collection: https://<ip:puerto>/redfish/v1/SessionService/Sessions
    • Session Resource: https://<ip:puerto>/redfish/v1/SessionService/Sessions/<id>
    • System Collection: https://<ip:puerto>/redfish/v1/Systems
    • System Resource: https://<ip:puerto>/redfish/v1/Systems/<ID_servidor>
    • EnergyScale : https://<ip:puerto>/redfish/v1/Systems/<ID_servidor>/EnergyScale
      Nota: Donde:
      • ip es la dirección IP del FSP o la dirección IP del host local del túnel SSH
      • puerto es el puerto HTTPS predeterminado (443) o el puerto local del túnel SSH
      • id es el identificador de sesión
      • ID_servidor es el nombre de servidor que devuelve el servicio Redfish. El nombre de servidor forma parte del valor de parámetro @odata.id que se incluye en la respuesta a la solicitud para Systems Collection. En el ejemplo siguiente, el nombre de servidor es Server-8408-E8E-1067A9V en el parámetro @odata.id: "@odata.id": "/redfish/v1/Systems/Server-8408-E8E-1067A9V"
      • ID_chasis es el número de serie del alojamiento CEC
  • Chasis
    • Chassis Collection: https://<ip:puerto>/redfish/v1/Chassis
    • Chassis Resource: https://<ip:puerto>/redfish/v1/Chassis/<ID_chasis>
    • Thermal Resource: https://<ip:puerto>/redfish/v1/Chassis/<ID_chasis>/Thermal
      Nota: El estado del ventilador está disponible en Thermal Resource.
    • Power Resource: https://<ip:puerto>/redfish/v1/Chassis/<ID_chasis>/Power
      Nota: El estado de la fuente de alimentación está disponible en Power Resource.
    Nota: Donde:
    • ip es la dirección IP del FSP o la dirección IP del host local del túnel SSH
    • puerto es el puerto HTTPS predeterminado (443) o el puerto local del túnel SSH
    • ID_chasis es el número de serie del alojamiento CEC
  • Procesador
    • Processor Collection: https://<ip:puerto>/redfish/v1/Systems/<ID_servidor>/Processors
    • Processor Resource: https://<ip:puerto>/redfish/v1/Systems/<ID_servidor>/Processors/<ID_proc>
    • Core Resource: https://<ip:puerto>/redfish/v1/Systems/<ID_servidor>/Processors/<ID_proc>/Cores/<ID_núcleo>
      Nota: Donde:
      • ip es la dirección IP del FSP o la dirección IP del host local del túnel SSH
      • puerto es el puerto HTTPS predeterminado (443) o el puerto local del túnel SSH
      • ID_servidor es el nombre de servidor que devuelve el servicio Redfish. El nombre de servidor forma parte del valor de parámetro @odata.id que se incluye en la respuesta a la solicitud para Systems Collection. En el ejemplo siguiente, el nombre de servidor es Server-8408-E8E-1067A9V en el parámetro @odata.id: "@odata.id": "/redfish/v1/Systems/Server-8408-E8E-1067A9V"
      • ID_proc es el identificador exclusivo del procesador
      • ID_núcleo es el identificador exclusivo del núcleo en el procesador específico
  • Manager Collection: https://<ip:puerto>/redfish/v1/Managers
  • FSP Resource: https://<ip:puerto>/redfish/v1/Managers/BMC
  • FSP eth0 Interface: https://<ip:puerto>/redfish/v1/Managers/BMC/EthernetInterfaces/ETH_0

Acceso a las funciones comunes de gestión sistema en el servicio Redfish utilizando el mandato cURL

En los ejemplos siguientes se muestran los mandatos cURL que se pueden utilizar para acceder a las funciones comunes admitidas por FSP.
  • Para iniciar sesión y crear una conexión segura con el servicio Redfish, ejecute el mandato siguiente:
    curl -X POST -D headers.txt https://<ip:puerto>/redfish/v1/SessionService/Sessions
     -d ‘{"UserName":"admin", "Password":"admin"}’

    Donde ip es la dirección IP del FSP y puerto es el puerto predeterminado de la ASMI. Tras el inicio de sesión del usuario, el valor de la cabecera X-Auth-Token se debe guardar para las solicitudes que pudieran requerir autenticación y el valor de la cabecera Ubicación se debe guardar porque es el URI exclusivo para la sesión y estos valores son necesarios para finalizar la sesión.

  • Para leer el documento de Service Root, ejecute el mandato siguiente:
    curl -k -H "X-Auth-Token: <authtoken>" -X GET https://<ip:puerto>/redfish/v1/
  • Para leer la recopilación de ID de sistemas en esta instancia, ejecute el mandato siguiente:
    curl -k -H "X-Auth-Token: <authtoken>" -X GET https://<ip:puerto>/redfish/v1/Systems
  • Para leer la información del sistema, ejecute el mandato siguiente:
    curl -k -H "X-Auth-Token: <authtoken>" -X GET https://<ip:puerto>/redfish/v1/Systems/<ID_sistema>

    Donde ID_sistema es el tipo y modelo de máquina (MTM) del sistema y el número de serie. El formato del ID_sistema es Server-MTM-SerialNumber. Para obtener el ID_sistema, lleve a cabo la operación GET en el recurso de recopilación del sistema.

  • Para modificar el número de ranuras que se han habilitado para la E/S de la capacidad aumentada en el nodo o en el chasis, ejecute el mandato siguiente:
    curl -k -H "X-Auth-Token: <authtoken>" -X PATCH https://<ip:puerto>/redfish/v1/Chassis/
    <ID_chasis>; -d '{"Oem" : {"IBMEnterpriseChassis" : {"HugeDynamicDMAWindowSlotCount" : "9"}}}'
  • Para modificar los parámetros del ahorro de alimentación para la CPU que se halla en estado desocupado, ejecute el mandato siguiente:
    curl -k -H "X-Auth-Token: <authtoken>" -X PATCH https://<ip>/redfish/v1/Systems/
    <ID_sistema>/EnergyScale -d '{
       "CPUIdlePowerSaver": {
            "DelayTimeEnter": 150,
            "DelayTimeExit": 5,
            "State": "Enabled",
            "UtilizationThresholdEnter": 22,
            "UtilizationThresholdExit": 30
        }}'

    Donde ID_chasis es el número de serie del alojamiento CEC. Para obtener el ID_chasis, lleve a cabo la operación GET en el recursos de recopilación de chasis.

  • Para encender el sistema, ejecute el mandato siguiente:
    curl -k -H "X-Auth-Token: <authtoken>" -X POST https://<ip:puerto>/redfish/v1/Systems/
    <ID_sistema>/Actions/Reset -d '{"ResetType":"On"}'
  • Para apagar el sistema, ejecute el mandato siguiente:
    curl -k -H "X-Auth-Token: <authtoken>" -X POST https://<ip:puerto>/redfish/v1/Systems/
    <ID_sistema>/Actions/Reset -d '{"ResetType":"ForceOff"}'
  • Para cerrar la sesión o finalizar Redfish, ejecute el mandato siguiente:
    curl -k -H "X-Auth-Token: <authtoken>" -X DELETE https://<ip:puerto>/redfish/v1/SessionService/
    Sessions/<id>;

Esquema EnergyScale

El esquema EnergyScale es una extensión de OEM en el esquema Redfish que permite la configuración de parámetros ajustables para una mejor utilización de la energía en servidores IBM Power Systems.




Última actualización: julio de 2017