Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane - Slides
-
Upload
daniel-gheorghita -
Category
Documents
-
view
220 -
download
0
Transcript of Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane - Slides
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
Supervisor: Prof. Francesco Delli PriscoliTutor: Letterio Zuccaro
Candidate: Daniel Gheorghita
• Co-funded by the European Commission under the Seventh Framework Programme for Research(FP7)
• It promotes and supports Network Functions Virtualization(NFV)
• Partners: – Universities: Rome, Milan, Zurich– Companies: Intel, HP
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
2
3
Software Defined Networking
SDN• Decoupled control logic and forwarding logic• Logically centralized control• Network devices programmability using
APIs
OpenFlow• The most used standard and southbound API• Install flow entries in all network devices
– What to do when a specific packet arrives
OVSDB• Management and configuration of network
devices
Control Plane
Data Plane
Application Plane
API(e.g. OpenFlow)
API(e.g. REST)
OtherNetworkDevice
Application 1
Basic functionalities – Abstraction layer
Application 2
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
4
Software Defined Network: Example
Control Plane
Data Plane
Network Control Applications
Packet-in OpenFlow
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
Problem:Asynchronous messages
5
Software Defined Network: ExampleNetwork Control Applications
OpenFlow
Inconvenience: • overprovisioning
Control Plane
Data Plane
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
Load Balancing Algorithm. Dynamic Assignment
6
• Compute average CPU load of the entire cluster (AVG)• Divide controllers in overloaded and non overloaded• Divide the switches connected to the overloaded
controllers in classes of load• “Fill” every non overloaded controller up to AVG
– Best fit switches
• One cluster controller collects statistics from all controllers about the last interval of time(e.g. 4 sec) – Average CPU load – Number of messages received from every switch
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
The main steps:
Pagina 7
Load balancing algorithm: Running example
Sw8(15)
Sw6(30) Sw9(2
0)Sw10(1
0)
30: Sw3, Sw625: Sw715: Sw1, Sw2, Sw510: Sw4
46.25
Sw11(10)Sw1(1
5)
Sw2(15)
Sw5(15)
11.25 26.25
Sw3(30)
Sw7(25)
Sw4(10)
C1
Output:
{(Sw4, C1, C3)
, (Sw7, C2, C4)}
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
C2 C3 C4
Pagina 8
Migration for OpenFlow 1.0 and successive versions
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
Goal:• Avoid losing messages• Avoid duplicated responses
Problem:• In OF 1.0 the switch X sends
the packet-in messages to both controllers
X : A
X
BA
The main steps of the migration algorithm:
• Connect X to B and install a migration signaling entry in X
• Freeze roles(do not use the distributed cache content for X)• Change cache entry for X
• A removes the migration signaling entry from switch X
• Both controllers receive the notification and resume the use of the distributed cache
• Disconnect X from A
Do not reply
Do reply
X : B
9
Why OpenDaylight controller:• Open platform• Developed under the Linux Foundation. • Supported by 44 members. Some of them: Brocade, Cisco, Dell,
HP, IBM, Intel, Juniper, Microsoft, Redhat, NEC, vmware, Oracle • Promising future. It aims to support multiple vendor southbound
interfaces– In the industry there is not fully agreement about the southbound protocol
• Supports clustering and has a distributed cache
My contribution in OpenDaylight:• Fairness in the initial (switch : controller) mapping• Dynamic load balancing service• Extended OVSDB
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
Implementation details
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
10
Testing environment
Mininet
S1 S2 Sn-1 Sn
H1 H2 Hn-1 Hn
A B
Open vSwitch
Network Control Application
Gigabit Switch
A B
Mininet
11
The benefits of load balancing
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
Packet-in/s (104)
w/o load balancingwith load balancing
95-p
erc
resp
onse
tim
e(m
s)
6 - 2 imbalance
12
Conclusion and future works
Conclusion: • Designed, implemented(in OpenDaylight) a load balancing
and switch migration algorithms• Developed support tools:
– a traffic generator application– a network control application– test scripts that measure the performances
Future works: • Deal with the failure of switches and controllers
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
13
Thank you for your attention!
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
Pagina 14
The benefits of multiple controller. Test scenarios
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
S1
H1
S1
3
H13
S2
H2
S1
2
H12
S1
4
H14
S2
6
H26
S1
5
H15
S2
5
H25
C1C2
S1
H1
S1
3
H13
S2
H2
S1
2
H12
S1
4
H14
S2
6
H26
S1
5
H15
S2
5
H25
C1 C2
S1
H1
S1
3
H13
S2
H2
S1
2
H12
S1
4
H14
S2
6
H26
S1
5
H15
S2
5
H25
C1
Single:
All:
Selective:
Pagina 15
The benefits of multiple controller. Results
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
Packet-in/s (104)
95-p
erc
resp
onse
tim
e(1
04 ) m
s SingleAll
Selective
Pagina 16
Tests: Migration timing
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
Aver
age
mig
ratio
n tim
e(m
s) AllSelective
Packet-in/s (104)
Pagina 17
Migration for OF 1.0 and successive versions
Design and Implementation of a Load Balancing Algorithm for a Clustered SDN Control Plane
X’s Master Contr.
Controller B
Controller A
Connect
Switch X
X : A X : {A}
X : {A,B}Connect Ack
Start Migration & X-do not process
X : BChange map
Start Migration & X-do not process Ack
Install and Remove dummy-flowAdd dummy-flow
Barrier Request
Barrier Request
Remove dummy flowDummy-flow removeDummy-flow
remove
DisconnectDisconnect
Ack
End migration
X : {B}
X’s controllersMigrate X to B
Migration completed
Barrier Replay
Barrier Replay