Open-‐Source Distributed SDN OS Pankaj Berde, Umesh Krishnaswamy, Jonathan Hart, Masayoshi Kobayashi, Pavlin Radoslavov, Pingping Lin, Sean Corcoran, Tim Lindberg, Rachel Sverdlov, Suibin Zhang, William Snow, Guru Parulkar
§ ONOS • Architecture • Scale-‐out and high availability • Network graph as north-‐bound abstracOon • DEMO • Consistency models • Development and test environment • Performance • Next steps
Winners Fellow of IEEE and ACM Entrepreneurs Impact on pracOce of networking/cloud Nick Mckeown KP, Mayfield, Sequoia Professor, Stanford Larry Peterson Bob Kahn Professor Princeton Chief Architect, ON.LAB ScoY Shenker Professor, UC Berkeley Chief ScienOst, ICSI
2011 2008 2009 2010 Ethane Demo Deployment Pla`orm Development OpenFlow Spec v0.8.9 v1.0 v1.1 Reference Switch NetFPGA Soaware Network OS NOX SNAC Beacon VirtualizaOon FlowVisor FlowVisor (Java) Tools Test Suite oarace Mininet Measurement tools GENI soaware suite Expedient/Opt-‐in Manager/FOAM Stanford University ~45 switch/APs ~25user In McKeown Group CIS/EE Building ProducOon Network US R&E Community GENI: 8 UniversiOes + Internet2 + NLR Many other campuses Other countries Over 68 countries (Europe, Japan, China, Korea, Brazil, etc.) VM MigraOon (Best Demo) Trans-‐Pacific VM MigraOon Baby GENI NaOon Wide GENI “The OpenFlow Show” – IT World SDN Concept (Best Demo) SIGCOMM08 GEC3 SIGCOMM09 GEC6 GEC9 Interop 2011 +Broadcom
SDN ~100 Members from all parts of the industry Bring best SDN content; facilitate high quality dialogue 3 successive sold out events; parOcipaOon of ecosys Build strong intellectual foundaOon Bring open source SDN tools/pla`orms to community SDN Academy Bring best SDN training to companies to accelerate SDN development and adopOon
Lab Exec Director: Guru Parulkar VP Eng: Bill Snow Chief Architect: Larry Peterson 16-19 Engineers/Tech Leads (includes PlanetLab team) Tools/Platforms for SDN community OpenCloud demonstration of XaaS and SDN PhD/Postdocs Research Stanford Nick McKeown Guru Parulkar Sachin Katti
OS Apps Apps Network OS Apps Apps Open Interfaces Open Interfaces Network Hypervisor Forwarding FlowVisor, OpenVirteX MININET, Cluster Edi.on ONOS SDN-‐IP Peering TestON with debugging support NetSight
Scale-‐out and high availability § Network graph as north-‐bound abstracOon § DEMO § Consistency models § Development and test environment § Performance § Next steps
OS Network Graph Northbound Abstrac.on Horizontally Scalable Highly Available Built using open source components Version 0.1 -‐ Flow API, Shortest Path computa.on, Sample applica.on -‐ Build & QA ( Jenkins, Sanity Tests, Perf/Scale Tests, CHO) -‐ Deployment in progress at REANNZ (SDN-‐IP peering) Next Exploring performance & reac.ve computa.on frameworks Expand graph abstrac.on for more types of network state Control func.ons: intra-‐domain & inter-‐domain rou.ng Example use cases: traffic engineering, dynamic virtual networks on demand, …
Packet Forwarding Packet Forwarding Mobility Programmable Base StaOon Openflow Scale-‐out Design Fault Tolerance Global network view Open Network OS Focus (Started in Summer 2012) Global Network View
Focus on reliability, scalability, and generality Scale-‐out NOS focused on network virtualiza.on in data centers State distribu.on primi.ves, global network view, ONIX API ONIX Other Work Helios (NEC), Midonet (Midokura), Hyperflow, Maestro, Kandoo NOX, POX, Beacon, Floodlight, Trema controllers Community needs an open source distributed SDN OS
Instance 3 Instance 1 Network Graph Global network view An instance is responsible for maintaining a part of network graph Control capacity can grow with network size or applicaOon need Data plane
port port link switch on device host host Ø Network state is naturally represented as a graph Ø Graph has basic network objects like switch, port, device and links Ø Applica.on writes to this graph & programs the data plane
switch port device Flow path Flow entry port on port port port link switch inport on Flow entry device outport switch switch host host flow flow • Applica.on computes path by traversing the links from source to des.na.on • Applica.on writes each flow entry for the path Thus path computa.on app does not need to worry about topology maintenance
Logical Crossbar port switch port device Edge Port port on port port port link switch physical on Edge Port device physical host host • App or service on top of ONOS • Maintains mapping from simpler to complex Thus makes applica.ons even simpler and enables new abstrac.ons Virtual network objects Real network objects
flow flow Vertex with 10 properOes Vertex with 11 properOes Vertex represented as Cassandra row Property (e.g. dpid) Property (e.g. state) Property … Edge Edge Edge represented as Cassandra column Column Value Label id + direcOon Primary key Edge id Vertex id Signature properOes Other properOes Switch Vertex with 3 properOes Row indices for fast vertex centric queries
the network state by an instance, all subsequent reads by any instance returns the last updated value. • Strong consistency adds complexity and latency to distributed data management. • Eventual consistency is slight relaxaOon – allowing readers to be behind for a short period of Ome.
§ Weaker consistency might mean Master elecOon on instance 1 will not be available on other instances. § That can lead to having mulOple masters for a switch. § MulOple Masters will break our semanOc of control isolaOon. § Strong locking semanOc is needed for Master ElecOon
Instance 2 Instance 3 Network Graph Instance 1 SWITCH A STATE= INACTIVE Switch A State = INACTIVE Switch A STATE = INACTIVE All instances Switch A STATE = ACTIVE Instance 1 Switch A = ACTIVE Instance 2 Switch A = INACTIVE Instance 3 Switch A = INACTIVE DHT Switch Connected to ONOS Switch A State = ACTIVE Switch A State = ACTIVE Switch A STATE = ACTIVE Timeline All instances Switch A STATE = INACTIVE Delay of Eventual Consensus
the switch A state is not ACTIVE on some ONOS instances in previous example. § ApplicaOons on one instance will compute flow through the switch A while other instances will not use the switch A for path computaOon. § Eventual consistency becomes more visible during control plane network congesOon.
§ Physical network state changes asynchronously § Strong consistency across data and control plane is too hard § Control apps know how to deal with eventual consistency § In the current distributed control plane, each router makes its own decision based on old info from other parts of the network and it works fine § Strong Consistency is more likely to lead to inaccuracy of network state as network congesOons are real.
github § Agile: 3-‐4 week sprints § Mostly Java and many uOlity scripts § CI: Maven, Jenkins, JUnit, Coverage, TestON § Vagrant-‐based development VM § Daily 4 hour of ConOnuous Hours of OperaOons (CHO) tests as part of build § Several CHO cycles simulaOng rapid churns in network & failures on ONOS instances
aspects of automated tests • ONOS Unit Tests (70% coverage) • ONOS System Tests for FuncOonality, Scale, Performance and Resiliency test (85% coverage) • White Box Network Graph Performance Measurements § All tests are executed nightly in Jenkins ConOnuous IntegraOon environment.
does not perform § Ultra low-‐latency requirements are unique § Need to apply distributed/parallel programming techniques to scale control applicaOons § ReacOve control applicaOons need event-‐driven framework which scale 46
Network Graph Northbound Abstrac.on Horizontally Scalable Highly Available Built using open source components Version 0.1 -‐ Flow API, Shortest Path computa.on, Sample applica.on -‐ Build & QA ( Jenkins, Sanity Tests, Perf/Scale Tests, CHO) -‐ Deployment in progress at REANNZ (SDN-‐IP peering) Next Exploring performance & reac.ve computa.on frameworks Expand graph abstrac.on for more types of network state Control func.ons: intra-‐domain & inter-‐domain rou.ng Example use cases: traffic engineering, dynamic virtual networks on demand, …