160 likes | 168 Views
Towards an elastic distributed SDN controller that load balances, grows, and shrinks to avoid single point of failure and performance bottleneck. This requires load estimation at controllers and a switch migration protocol.
E N D
Towards an Elastic Distributed SDN Controller Advait Dixit, Fang Hao, SaritMukherjee, T.V. Lakshman, RamanaKompella
SDN Control Plane • Single point of failure • Performance bottleneck Distributed Control Plane Physical Network Infrastructure
Spatial Partitioning Overload
Goals • Build a distributed control plane which • Load balances • Grows • Shrinks • This requires • Load estimation at controllers • Switch migration protocol
Naïve Switch Migration MASTER SLAVE MASTER SLAVE Role Change to Master
Problem With Naïve Switch Migration MASTER SLAVE MASTER SLAVE Role Change to Master Packet-In Packet-Out Packet-Out from Slave is dropped
Migration Protocol Requirements • Safety: Exactly 1 controller processes every message from the switch • Liveness: For each switch, at least 1 controller is active at all times • Openflow compliant
4-Phase Switch Migration Protocol MASTER SLAVE MASTER SLAVE EQUAL Role Change to Master Role Change to Equal Flow-Removed Barrier Reply Flow-Removed Barrier Request Flow-Add Flow-Delete Phase 3: Flush in-flight message Phase 4: Change from Equal to Master Phase 2: Insert and remove dummy flow Phase 1: Change from Slave to Equal
A MininetTestbed Problem: Cannot generate sufficient traffic for a large distributed control plane OpenvSwitch OpenvSwitch veth Pair OpenvSwitch veth Pair veth Pair Emulation Host
A Multi-Host MininetTestbed GRE Tunnel OpenvSwitch OpenvSwitch OpenvSwitch OpenvSwitch OpenvSwitch OpenvSwitch GRE Tunnel ` OpenvSwitch OpenvSwitch OpenvSwitch Emulation Host Emulation Host GRE Tunnel Emulation Host
Next Step: ElastiCon Load Adaptation Decisions Load Balance Scale Up Scale Down • Actions: • Migrate switch • Remove controller • Add controller Load Measurements Distributed Data Store (e.g., Hazelcast) Distributed SDN Control Plane Application 2 Application 1 Application 2 Application 1 Core Controller Module Core Controller Module Node 1 Node 2 Physical Network Infrastructure