fboss building switch software at scale
play

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


  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

  2. Motivation

  3. Scale of Facebook Community 2.23B Monthly 1.3B Monthly 1B Monthly 1.5B Monthly Active Users Active Users Active Users Active Users 2.5B people use at least one of these products

  4. Our DC Network is Growing FAST! 30x FBOSS Deployments → Growth of FBOSS Deployments 20x 15x 10x 5x 1x Months → 0 3 6 9 12 15 18 21 24

  5. Challenges in Scaling the Network Issues with Extraneous Features • 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

  6. Arrival of the White Box Switch Customizable switch hardware and software Power Supply • Customized hardware Fan Temperature • Pick the minimal Sensor x86 CPU software needed for the SSD specific network BMC • Powerful CPU to run Switch ASIC CPLD more complex software QSFP Ports

  7. Existing Software Services Reusing Existing Infrastructure • 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

  8. FBOSS: Facebook Open Switching System

  9. FBOSS: Facebook Open Switching System is an experiment to discover if… we can run switch software in a similar way we run our software services

  10. FBOSS Design Principles • 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”

  11. Facebook Software Infrastructure Some example of Existing Software Services • Scuba: Real-time monitoring and data analysis ( VLDB 2013 ) • Gorilla: In-memory time-series database ( VLDB 2015 ) • Robotron: Network Management ( SIGCOMM 2016 )

  12. FBOSS Overview External Software Protocols Monitoring Network (BGP, ECMP) Service Configurator Switch Software FBOSS Switch Hardware Switch ASIC

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

  14. FBOSS Architecture • Switch SDK : Vendor provided FBOSS Agent software for ASIC interaction SwSwitch • Hardware Abstraction : Thrift Switch Hardware Independent Handler State Manager Routing Logic Hardware specific implementation HwSwitch • HwSwitch : Generic interface for Generic Switch Hardware Abstraction switch hardware, e.g., port control Hardware Abstraction • SwSwitch : Hardware independent Event Handler Switch Feature Implementation Callback (L2, L3, ACL, LAG) switching logic, e.g., L2, L3 and ACL SDK Slow Path Switch ASIC Link Status Packet Handler APIs Handler

  15. FBOSS Architecture • State Observers : Manage changes FBOSS Agent Local Config Thrift Management State Generator Interface Observers in the states within SwSwitch SwSwitch • Local Config Generator : Generates Thrift Switch Hardware Independent Handler State Manager Routing Logic local configuration from externally HwSwitch generated configuration Generic Switch Hardware Abstraction • Thrift Management Interface : Hardware Abstraction Receives external commands via Event Handler Switch Feature Implementation Callback (L2, L3, ACL, LAG) Thrift interface SDK • QSFP Service : Manages QSFP Ports QSFP Slow Path Switch ASIC Link Status Service Packet Handler APIs Handler

  16. FBOSS State Management Copy-on-write Tree SwitchState SwitchState SwitchState’ Routes VLANs ’ Routes Ports Ports VLANs VLANs … … … … … … Route 1 VLAN 1 VLAN 1 VLAN j VLAN j Route 1 Port i Port i VLAN’ j Port 1 Port 1 Route k Route k ARP’ j ARP j ARP 1 ARP 1 ARP j

  17. FBOSS State Management Copy-on-write Tree • No Read Locks • Easy Debugging SwitchState SwitchState’ • Easy Restarts VLANs ’ Routes Ports VLANs … VLAN 1 … VLAN j … Route 1 Port i VLAN’ j Port 1 Route k • Complex Implementation ARP’ j ARP 1 ARP j • More processing per update

  18. Testing, Deployment & Management

  19. FBOSS Testing and Deployment Sources of switch outages Software (60%) Misc. Sofware Issues 28% 24% Microserver Reboot Kernel Panic Microserver Unresponsive 1% Loss of Power Hardware (40%) 2% Bus Degradation 5% 8% SSD Issue PCI-E Timeout 11% 7% Misc. Hardware Issues 14%

  20. FBOSS Testing and Deployment 3 Stage Deployment via fbossdeploy • 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

  21. FBOSS Management How FBOSS interacts with network management system Robotron • Configurations are generated by the Centralized Operation Monitor Config Database Manager network management system Use Query/Receive Config Data config_x Device States • Configurations are staged locally FBOSS Agent • Operational and Monitoring queries Local Config Thrift Generator Interface are passed through the Thrift interface Revert Generate Stage Staged Active config_1 config Re-use Configuration Operation Monitoring

  22. Experiences

  23. Lessons from Deployment Experiences • Side effect of infrastructure reuse • Side effect of rapid deployments • Resolving interoperability issues

  24. Lessons from Deployment Experiences • Side effect of infrastructure reuse • Side effect of rapid deployments • Resolving interoperability issues

  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

  26. Conclusion

  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

  28. Questions? https://github.com/facebook/fboss

Recommend


More recommend