Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _...

64
Hello Redfish, Goodbye IPMI The Future of System Management in the Data Center (or) Manage Servers using HTTPS, REST, JSON & ODATA @wefinet – Werner Fischer, Thomas-Krenn.AG

Transcript of Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _...

Page 1: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Hello Redfish, Goodbye IPMIThe Future of System Management in the Data Center(or)

Manage Servers using HTTPS, REST, JSON & ODATA

@wefinet – Werner Fischer, Thomas-Krenn.AG

Page 2: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Using Server Remote Management?

Page 3: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Using Server Remote Management?

Page 4: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Using ipmitool, freeipmi, ...?

Page 5: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Using Redfish?

Page 6: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Took a Coffee?

Page 7: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

_ Why Remote Management?

_ What's already here? (IPMI)

_ Why Redfish?

_ Data Model

_ Operations

_ Authentication

_ Servers

_ Clients

_ Python Coding Example

_ So what's next?

Today's Agenda

Page 8: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Why RemoteManagement?

Page 9: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Data Centers:are cold & loud,have no daylight

Page 10: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Sysadminswant to work

from anywhere

Page 11: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

What'salready here?

Page 12: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session
Page 13: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

BMC(IPMI Baseboard

Management Controller)

Page 14: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Chassis board

Motherboard

Processorboard

Memoryboard

BaseboardManagement

Controller(BMC)

System bus

NVS StorageSDRSELFRU

Chassismgmt.

(SatelliteController)

Sensors & ControlsFan sensor

Temp. sensorPower controlReset control

FRU

Temp. s.

FRU

private mgmt. busses

IPMB

M/BSerial

Controller

SerialPort

Sharing

BMCSerial

Controller

Serial/Modeminterface

LANinterface

SerialConnector

LANConnector

PCI mgmt. bus

Network(LAN)

Controller

Remote Mmgt. Card(KVM over IP, ...)

AuxillaryIPMB Connector

ICMB

ICMBbridge

System interface

Redundant Powerboard

FRU Temp.sensor

FRU

Accessas root

user

Access withusername & password

(UDP port 623)

Page 15: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

IPMI AuthenticationType “None”

IPMI Cipher 0

IPMI RAKP+Dump Hashes

Page 17: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Why me?(Why Refish?)

Page 18: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Redfish Initiative started Sep., 2014

Page 19: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

The scope of this specification is to define the protocols, data model, and behaviors [...] for an inter-operable, cross-vendor, remote and out-of-band capable interface that meets the expectations of Cloud and Web-based IT professionals [...]

Page 20: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Goals:

_ API for System Management

_ Usable by both client applications and browser-based GUIs

_ Secure, multi-node capable replacement for IPMI-over-LAN

Page 21: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Goals (cont.):

_ Schema-backed but human-readable output

_ Covers popular use cases

_ Intended to meet OCP Open Compute Project Machine Mgmt. requirements

Page 22: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Design:

_ TLS-secured HTTP (HTTPS)

_ REST

_ JSON

_ ODATA / schema-backed data model_ for developers / users should not need it

_ data model separated from the protocol

_ BMC: implementable on existing firmware

Page 23: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Why DMTF?(Distributed Management Task Force)

Page 24: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Redfish Initiative → Standard Body: DMTF

Scalable Platforms Management Forum (SPMF)

Currently 12 Promoting Members, 14 Supporting Members

Page 25: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Open Virtualization Format (OVF)System Management BIOS (SMBIOS)

Common Interface Model (CIM)

Other DMTF Standards

Page 26: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

„Openness“ - dmtf.org/join/spmfPromoter Supporter

DMTF Level min. Leadership$12,000 p.a.

min. Participation$6,000 p.a.

SPMF Level $25.000 for 1st 2 years,$4,500 p.a.

$4,500 p.a.

Page 27: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session
Page 28: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session
Page 29: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

but at least you can download the standard,

mockup, schemas, free of charge and build OSS on it ;-)

Page 30: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Data Model

Page 31: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

/redfish/v1Root + Version

/redfish/v1/Systems“Logical” view

/redfish/v1/Chassis“Physical” view

/redfish/v1/ManagersBMC functionality

Collections

Page 32: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

/redfish/v1 /redfish/v1/Systems

/redfish/v1/Chassis

/redfish/v1/Managers

/redfish/v1/TaskService

/redfish/v1/SessionService

/redfish/v1/AccountService

/redfish/v1/EventService

/redfish/v1/Registries

/redfish/v1/JsonSchemas

Collections

/Thermal

/Power

/Processor

/BootOrder

/...

/...

Page 33: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

https://<BMC-IP>/redfish/v1/Systems/1/Processors/1

/redfish /v1 /Systems /1 /Processors /1

Root Version Collection ID Sub-item 1 Sub-item n

Page 34: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Operations

Page 35: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Redfish Client Managed Servers

GET https://<BMC-IP>/redfish/v1/...

JSON Response

POST https://<BMC-IP>/redfish/v1/...

JSON Response

Page 36: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Create POST Create a resource / Use actions Read GET View data Update PATCH Change properties of a res. PUT Replace a res. Delete DELETE Remove a res.

Redfish Operations - CRUD

Page 37: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

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

GET https://<BMC-IP>/redfish/v1

Page 38: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

{  "@odata.context": "/redfish/v1/$metadata#ComputerSystem.ComputerSystem",  "@odata.type": "#ComputerSystem.ComputerSystem",  "@odata.id": "/redfish/v1/Systems/1",  "Id": "1",  "Name": "System",  "Description": "Description of server",  "Status": {    "State": "Enabled",    "Health": "OK"  },  "SerialNumber": "2590D4DEB2",  "PartNumber": "",  "SystemType": "Physical",  "BiosVersion": "3.0",  "Manufacturer": "Supermicro",  "Model": "X10SLH­F/X10SLM+­F",[...]

GET https://<BMC-IP>/redfish/v1/systems/1

Page 39: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

… replace disk #1 of hostsrv4711.server-farm.com ...

Page 40: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

PATCHhttps://MGMTIP/redfish/v1/Systems/1

{"IndicatorLED": "Lit"}

Page 41: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session
Page 42: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session
Page 43: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Authentication& Roles

Page 44: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Redfish Authentication_ HTTP Basic Auth

_ RFC2617

_ username & password sent with each request

_ Session Based Authentication_ Session login is initiated by accessing the Create session URI

_ Sesponse includes an “X-Auth-Token” header with a session token

_ Session logout is done by issuing a DELETE of the Session resource

Page 45: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Roles → Administrator Operator ReadOnly

Login x x x

ConfigureSelf x x x

ConfigureComponents x x

ConfigureManager x

ConfigureUsers x

Page 46: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Servers

Page 47: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Thomas-Krennbased on Supermicro X10

BMC Firmware >= 3.0OOB License

HPEbased Gen9 with iLO 4BMC Firmware >= 2.30

check licensing requirements

Dellusing iDRAC7 / iDRAC8

BMC Firmware >= 2.30.30.30check licensing requirements

Page 48: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Clients

Page 49: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Redfish Clients

_ Chrome:_ Postman

_ Advanced REST Client

_ Firefox_ RESTClient

_ REST Easy

Page 50: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Python CodingExample

Page 51: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

import json, requestsurl='https://10.1.102.120/redfish/v1/Systems/1'userid='redfishuser'password='Lc9AcnLcQq2'r = requests.get(url, auth=(userid, password), verify=False)jsonData = r.json()print "Manufacturer:", (jsonData['Manufacturer'])print "Model:", (jsonData['Model'])print "PowerState:", (jsonData['PowerState'])print "BiosVersion:", (jsonData['BiosVersion'])print "Description:", (jsonData['Description'])

redfish-example.py Source

Page 52: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

$ python redfish­example.py Manufacturer: SupermicroModel: X10SLH­F/X10SLM+­FPowerState: OnBiosVersion: 3.0Description: Description of server

redfish-example.py executed

Page 53: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session
Page 54: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session
Page 55: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

_ In-band Redfish from within the OS

_ Firmware-update

_ Broader storage support

_ Security: allow more granularity

_ AMI Announces Out-of-Band BIOS Configuration through Redfish

Source: Jeff Autor, SPMF Forum Chair, OCP US Summit 2016youtube.com/watch?v=qF5XI1geKbQ

Redfish Future Plans

Page 56: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

So what's next?

Page 57: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Reach for the Sky

Page 58: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

X10-based Thomas-Krenn-Servers?

Page 59: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

X10-based Thomas-Krenn-Servers?

Update BMC firmwareto version >= 3.27

andactivate OOB license

Page 60: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

HPE Gen9 Servers with iLO4?

Update BMC firmwareto version >= v2.30and check licensing

requirements

Page 61: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

Dell Servers with iDRAC7 / iDRAC8?

Update BMC firmwareto version >= 2.30.30.30and read iDRAC's usersguide to check licensing

Page 62: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

other Servers?

replace with X10-basedThomas-Krenn-Servers

;-)

Page 63: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session
Page 64: Hello Redfish, Goodbye IPMI - Thomas-Krenn.AG · 2016. 5. 18. · _ HTTP Basic Auth _ RFC2617 _ username & password sent with each request _ Session Based Authentication _ Session

TombolaWin 1 of 3 Intel SSDsJoin Thomas-Krenn-BoothDrawing 04/28 at 16.30