FBOSS: Building Switch Software at Scale Sean Choi, Sean Choi, - - PowerPoint PPT Presentation

fboss building switch software at scale
SMART_READER_LITE
LIVE PREVIEW

FBOSS: Building Switch Software at Scale Sean Choi, Sean Choi, - - PowerPoint PPT Presentation

FBOSS: Building Switch Software at Scale Sean Choi, Sean Choi, Boris Burkov, Alex Eckert, Tian Fang, Saman Kazemkhani, Rob Sherwood, Ying Zhang, James Zeng Motivation Scale of Facebook Community 2.23B Monthly 1.3B Monthly 1B Monthly 1.5B


slide-1
SLIDE 1

FBOSS: Building Switch Software at Scale

Sean Choi, Sean Choi, Boris Burkov, Alex Eckert, Tian Fang, Saman Kazemkhani,

Rob Sherwood, Ying Zhang, James Zeng

slide-2
SLIDE 2

Motivation

slide-3
SLIDE 3

2.23B Monthly Active Users

Scale of Facebook Community

1.3B Monthly Active Users 1B Monthly Active Users 1.5B Monthly Active Users 2.5B people use at least one of these products

slide-4
SLIDE 4

Our DC Network is Growing FAST!

1x 5x 10x 15x 20x

30x

3 6 9 12 15 18 21 24

FBOSS Deployments → Months →

Growth of FBOSS Deployments

slide-5
SLIDE 5
  • Vendor switch software is built for all of their user needs
  • Most users have to deal with software with a lot of unused features
  • Complexity in managing excess networking features
  • Increased downtime, operational complexity, and security holes
  • Slower rate of change to validate a large range of features

Challenges in Scaling the Network

Issues with Extraneous Features

slide-6
SLIDE 6
  • Customized hardware
  • Pick the minimal

software needed for the specific network

  • Powerful CPU to run

more complex software

Arrival of the White Box Switch

Customizable switch hardware and software

Power Supply Fan Temperature Sensor x86 CPU SSD BMC Switch ASIC CPLD QSFP Ports

slide-7
SLIDE 7
  • Facebook has an infrastructure already in place for…
  • Monitoring and Data Analytics
  • Logging
  • Service Management and etc.
  • Vendors generally do not have full access to these tools

Existing Software Services

Reusing Existing Infrastructure

slide-8
SLIDE 8

FBOSS: Facebook Open Switching System

slide-9
SLIDE 9

we can run switch software in a similar way we run our software services FBOSS: Facebook Open Switching System

is an experiment to discover if…

slide-10
SLIDE 10
  • Switch-as-a-Server
  • Continuous integration and staged deployment
  • Integrate closely with existing software services
  • Open-source software
  • Deploy-Early-and-Iterate
  • Focus on developing and deploying minimal set of features
  • Quickly iterate with smaller “diffs”

FBOSS Design Principles

slide-11
SLIDE 11
  • Scuba: Real-time monitoring and data analysis (VLDB 2013)
  • Gorilla: In-memory time-series database (VLDB 2015)
  • Robotron: Network Management (SIGCOMM 2016)

Facebook Software Infrastructure

Some example of Existing Software Services

slide-12
SLIDE 12

FBOSS Overview

FBOSS

Switch ASIC

Switch Software Switch Hardware

Protocols (BGP, ECMP) Network Configurator Monitoring Service

External Software

slide-13
SLIDE 13

FBOSS Architecture

BMC

x86 Microserver

Switch ASIC Switch Software Switch Hardware Front Panel Ports and Modules Console and OOB Management Ports Linux Kernel Standard System Tools & Libraries Monitor Configuration Manager Routing Daemon FBOSS (Agent, QSFP Service, CLI) OpenBMC Switch SDK Power Supply Fans

slide-14
SLIDE 14

FBOSS Architecture

  • Switch SDK: Vendor provided

software for ASIC interaction

  • Hardware Abstraction:

Hardware specific implementation

  • HwSwitch: Generic interface for

switch hardware, e.g., port control

  • SwSwitch: Hardware independent

switching logic, e.g., L2, L3 and ACL

Link Status Handler Slow Path Packet Handler Switch ASIC APIs Switch Feature Implementation (L2, L3, ACL, LAG) Event Handler Callback

Hardware Abstraction

Generic Switch Hardware Abstraction

HwSwitch

Hardware Independent Routing Logic Switch State Manager Thrift Handler

SwSwitch SDK FBOSS Agent

slide-15
SLIDE 15

FBOSS Architecture

  • State Observers: Manage changes

in the states within SwSwitch

  • Local Config Generator: Generates

local configuration from externally generated configuration

  • Thrift Management Interface:

Receives external commands via Thrift interface

  • QSFP Service: Manages QSFP Ports

Link Status Handler Slow Path Packet Handler Switch ASIC APIs Switch Feature Implementation (L2, L3, ACL, LAG) Event Handler Callback

Hardware Abstraction

Generic Switch Hardware Abstraction

HwSwitch

Hardware Independent Routing Logic Switch State Manager Thrift Handler

SwSwitch SDK FBOSS Agent

Thrift Management Interface State Observers

QSFP Service

Local Config Generator

slide-16
SLIDE 16

FBOSS State Management

SwitchState Ports VLANs Routes Port1

… …

Porti VLAN1

VLANj Route1 Routek ARP1 ARPj SwitchState’ VLANs’ VLAN’j

ARP’j

Copy-on-write Tree

SwitchState Ports VLANs Port1

Porti VLAN1

VLANj ARP1

ARPj

Routes Route1

Routek

slide-17
SLIDE 17

FBOSS State Management

SwitchState Ports VLANs Routes Port1 … … Porti VLAN1 … VLANj Route1 Routek ARP1 ARPj SwitchState’ VLANs’ VLAN’j ARP’j

Copy-on-write Tree

  • No Read Locks
  • Easy Debugging
  • Easy Restarts
  • Complex Implementation
  • More processing per update
slide-18
SLIDE 18

Testing, Deployment & Management

slide-19
SLIDE 19

FBOSS Testing and Deployment

Sources of switch outages

28% 24% 8% 7% 14% 11% 5% 2% 1%

  • Misc. Sofware Issues

Microserver Reboot Kernel Panic Microserver Unresponsive Loss of Power Bus Degradation SSD Issue PCI-E Timeout

  • Misc. Hardware Issues

Software (60%) Hardware (40%)

slide-20
SLIDE 20
  • Continuous Canary
  • Deploy all commits continuously to 1~2 switches for each type
  • Daily Canary
  • Deploy all of single day’s commits to 10~20 switches for each type
  • Staged Deployment
  • Final stage to push all the commits to all the switches in the DC
  • Performed once every two weeks for reliability

FBOSS Testing and Deployment

3 Stage Deployment via fbossdeploy

slide-21
SLIDE 21

FBOSS Management

How FBOSS interacts with network management system

  • Configurations are generated by the

network management system

  • Configurations are staged locally
  • Operational and Monitoring queries

are passed through the Thrift interface

Centralized Config Database Operation Manager Monitor

Robotron

FBOSS Agent Thrift Interface Local Config Generator Active config Staged config_1 Generate Stage Re-use Revert Use config_x Config Data Query/Receive Device States Configuration Operation Monitoring

slide-22
SLIDE 22

Experiences

slide-23
SLIDE 23

Lessons from Deployment Experiences

  • Side effect of infrastructure reuse
  • Side effect of rapid deployments
  • Resolving interoperability issues
slide-24
SLIDE 24

Lessons from Deployment Experiences

  • Side effect of infrastructure reuse
  • Side effect of rapid deployments
  • Resolving interoperability issues
slide-25
SLIDE 25

Side Effect of Infrastructure Reuse

Issues with combining applications with different SLAs

  • Switch software must be more reliable than most software services
  • Warm boot: Retain ASIC tables and configurations at restart
  • BGP graceful restart: Restores BGP states after warm boot
  • New library caused warm boot to take longer than expected

=> Random BGP restart failures => Random network outages

  • Lesson Learned : Be careful when using software with different SLAs
slide-26
SLIDE 26

Conclusion

slide-27
SLIDE 27

Conclusion

  • Scaling massive DC networks requires leaner software with rapid updates
  • FBOSS started 5 years ago as an experiment to see if we can build and

deploy switch software as if we are running a generic software service

  • Our experiences show that the experiment is quite successful
  • FBOSS is capable of quickly iterating, deploying and scaling switch software
slide-28
SLIDE 28

Questions?

https://github.com/facebook/fboss