platinum sponsor - files.opencompute.org

30

Upload: others

Post on 20-Jan-2022

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Platinum Sponsor - files.opencompute.org
Page 2: Platinum Sponsor - files.opencompute.org

Platinum Sponsor

Page 3: Platinum Sponsor - files.opencompute.org

OpenBMC Updates

Tian Fang, Jubin Mehta, Sai Dasari FACEBOOK INC.

Page 4: Platinum Sponsor - files.opencompute.org

Agenda

History

Current Status

Deployment

Storage Enclosure Management

Multi Node Server Management

User Interface – SSH Utilities, REST API

What’s next

Q & A

Page 5: Platinum Sponsor - files.opencompute.org

OpenBMC history

Started in Facebook in 2014 Jun

Page 6: Platinum Sponsor - files.opencompute.org

OpenBMC history

Started in Facebook in 2014 Jun

Developed for Facebook TOR, Wedge

• AST1250, 256M DDR3, 32M SPI Flash

• I2C, PMbus, SMbus

• UART, GPIO, PWM/TACHO

• MAC

• USB Gadget

• SPI, EEPROM

• Temperature sensor, voltage sensor

• ADC, PSU

Page 7: Platinum Sponsor - files.opencompute.org

OpenBMC history

Started in Facebook in 2014 Jun

Developed for Facebook TOR, Wedge

Used Yocto 1.6.1

• Aspeed SDK 0.64

• U-boot 2013.07

• Kernel 2.6.28.9

• Busybox

• OpenSSH

• Python 2.7

Page 8: Platinum Sponsor - files.opencompute.org

OpenBMC history

Started in Facebook in 2014 Jun

Developed for Facebook TOR, Wedge

Used Yocto 1.6.1

Open sourced through github

• https://github.com//facebook/openbmc

Page 9: Platinum Sponsor - files.opencompute.org

OpenBMC history

Started in Facebook in 2014 Jun

Developed for Facebook TOR, Wedge

Used Yocto 1.6.1

Open sourced through github

Presented in 2015 OCP

Page 10: Platinum Sponsor - files.opencompute.org

3rd-party BMC vs. OpenBMC

3rd Party BMC OpenBMC

Source Code • Proprietary, Closed • Designed by Facebook

• Open Source @ Github

User Interface • ipmitool - Raw Bytes • SSH to BMC Linux Shell

• REST API - JSON objects

Security • RMCP+ over UDP

• Known vulnerabilities

• Secure Shell (ssh)

• http(s)

Authentication/Authorization

• BMC-centric

username/password

database

• Centralized certificate based

Multi-Node Management • Need to virtualize BMC with

multiple IP addresses

• Supported Natively with

node/slot number

Page 11: Platinum Sponsor - files.opencompute.org

OpenBMC architecture

Kernel

Upstream

HW

u-boot

Sensors

EEPROM

Kernel

App

busybox openssh

i2c-tools lm-sensors Board Abastraction Layer

ipmi RESTful

Board X …

config x config x config x

… … Board X

config x

SoC BSP

i2c

SPI MAC

UART

Watchdog

timer RTC

GPIO USB

PWM ADC

BMC SoC

i2c

SPI MAC

UART

Watchdog

timer RTC

GPIO USB

PWM ADC

Board X Board X

Board X Board X

Board X Board X

Board X Board X

SoC BSP SoC

BSP SoC BSP

Page 12: Platinum Sponsor - files.opencompute.org

Migrated to Yocto 1.8.1

Support 5 different boards

Thousands of boards running OpenBMC deployed in production

OpenBMC now

Page 13: Platinum Sponsor - files.opencompute.org

Manage OpenBMC as server

Push OpenBMC as SW

Spatula framework to sync configuration

Use ssh certs to manage access permission

Use RESTful to access FRU and sensors

OpenBMC deployment

Page 14: Platinum Sponsor - files.opencompute.org

OpenBMC on Lightning

NVMe-based OCP Open Vault Storage “knox”

Supports upto

▪30 (x4) SSDs

▪60 (x2) SSDs

Page 15: Platinum Sponsor - files.opencompute.org

Enclosure Management

Chassis Management

Multi-host support

Why OpenBMC on Lightning?

Page 16: Platinum Sponsor - files.opencompute.org

No NIC on Lightning

Storage and Hosts mapping issue

BMC compute core too weak for Infrastructure tools.

No sideband network

Network (OOB)

Lightning BMC

(OpenBMC)

Page 17: Platinum Sponsor - files.opencompute.org

OpenBMC Interfaces

USB bus from Host to Lightning BMC (In-band only)

Lightning

Host

BMC Network

(OOB)

PCIe x16 Gen3

USB

OpenBMC

IPv6 over

USB

SSH

Client

REST API Client

PCIe

Switch

I2C

PCIe x1 Gen1

I2C

I2C bus from Host BMC to Lightning BMC

PCIe x1 (Gen1) from Host to Lightning BMC (In-band only)

Page 18: Platinum Sponsor - files.opencompute.org

BMC

OCP V2

Mezz Card

4x10G

40G

50G

Slot4

Slot3

Slot2

Slot1

1S Server

SideBand

QSFP28 DAC

12V_STBY PCIe or 10G-KR

Ma

na

ge

me

nt

12V_RACK Hot-Swap

Controller

Yosemite platform architecture

Page 19: Platinum Sponsor - files.opencompute.org

OpenBMC user interface

OpenBMC

Network

ssh

1S Server

In-Band

- IPMB (4x)

Out-of-Band

- SSH

- Rest API

SSH Client REST API

Client

http(s)

Yosemite System

1S Server

1S Server

1S Server

Page 20: Platinum Sponsor - files.opencompute.org

User Interface

SSH • Linux Shell Access

• Utilities

REST API • http/https

• RESTful Resource End Points

Page 21: Platinum Sponsor - files.opencompute.org

Utilities

FRU Information • fruid-util [all, slot#, spb, nic] [--dump | --write ] <file>

Power Control/Status • power-util [ slot# ] [ status, graceful-shutdown, off, on, cycle, 12V-off, 12V-on, 12V-cycle ]

• power-util sled-cycle

Serial-Over-Lan • sol-util <slot#> <--force | --history>

• Ctrl-x to close the session

Sensor Readings • sensor-util [ all, slot#, spb, nic ] <--threshold> <sensor num>

Page 22: Platinum Sponsor - files.opencompute.org

Utilities (contd.)

Error Logs • log-util [ all | slot# | spb | nic ] <--clear|--print>

Firmware Information/Update • fw-util <slot#> --version

• fw-util <slot#> --update <--cpld|bios|bicbl>

Front Panel Control • fpc-util <slot#> --usb

• fpc-util <slot#|sled> --identify <on|off>

Configuration • cfg-util <dump-all|key> <value>

Page 23: Platinum Sponsor - files.opencompute.org

Utilities (contd.)

Fan Control • fan-util <–get|--set> <fan#> <pwm%>

Communication with Intel ME • me-util <slot#> <[0..n]data_bytes_to_send>

BMC firmware update • flaschcp –v <kernel> /dev/mtd2

• flaschcp –v <rfs> /dev/mtd3

• Reboot

Page 24: Platinum Sponsor - files.opencompute.org

REST API design

Resource Model • Simple, Consistent, Discoverable

• Reflect hardware topology

Resource Node Attributes • Information: { Key1: Value1, key2: value2, … }

• Actions: [action1, action2, action3, …]

• Resources: [node1, node2, node3, …]

Page 25: Platinum Sponsor - files.opencompute.org

(Yosemite)

System resource model

fruid sensors logs

fruid sensors logs bmc fruid sensors logs

api

spb mezz server1 … server4

Page 26: Platinum Sponsor - files.opencompute.org

RESTful resource endpoints

Root Node: • /api

Side Plane Board: • /api/spb, /api/spb/bmc, /api/spb/fruid, /api/spb/sensors, /api/spb/logs

Server Board: • /api/server3, /api/server3/fruid, /api/server3/sensors, /api/server3/logs

NIC Mezzanine Card: • /api/mezz, /api/mezz/fruid, /api/mezz/sensors, /api/mezz/logs

Page 27: Platinum Sponsor - files.opencompute.org

REST API usage examples

curl http://<bmc-ip-addr>:8080/api

curl http://<bmc-ip-addr>:8080/api/spb/bmc

curl http://<bmc-ip-addr>:8080/api/server2/fruid

curl http://<bmc-ip-addr>:8080/api/mezz/sensors

curl -H "Content-Type: application/json" -X POST -d '{"action": "power-on"}' http://<bmc-ip-addr>:8080/api/server3

Page 28: Platinum Sponsor - files.opencompute.org

Summary

What did we learn • OpenBMC architecture is flexible to support different HW

• Easy to bringup a new board

• Most work focus on board specific changes

On-going • Porting Drivers to Linux Kernel 4.1.x

• New Aspeed BMC chip (AST2500) support

Page 29: Platinum Sponsor - files.opencompute.org

Next steps

Challenges • Driver stability issue

• Better Tooling: Development, provisioning, maintenance

• BMC Vendor's EVK: Limited to evaluation or bring-up

• Full Server h/w: Limited to few firms/engineers

OpenBMC Developer Platform

• Base board with AST2500 BMC: similar to EVK

• COM Express connectivity: Choose and plugin Host CPU

• Portwell COMe OpenBMC Carrier Board (Model: PCOM-C660-OCP, PN: 21-F91411-000)

• Enable and Accelerate Open Source innovation

Page 30: Platinum Sponsor - files.opencompute.org