System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for...

62
Split / Merge System Support for Elastic Execution in Virtual Middleboxes Shriram RAJAGOPALAN Dan WILLIAMS Hani JAMJOOM Andrew WARFIELD IBM Research & UBC IBM Research IBM Research UBC

Transcript of System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for...

Page 1: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Split / Merge !System Support for Elastic Execution !in Virtual Middleboxes!

Shriram RAJAGOPALAN Dan WILLIAMS

Hani JAMJOOM Andrew WARFIELD

IBM Research & UBC IBM Research IBM Research UBC

Page 2: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

2

The Problem

Page 3: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Elastic Applications Need Elastic Middleboxes

3

Clients

Elastic Application Tier

Edge Switch

Software Defined Network!

...

IDS/IPS Firewall LB VPN Accelerator

Flows

Virtual Middleboxes

Page 4: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Hotspots Cannot be Alleviated Quickly

4

Apps

M2 M1

When M1 is overloaded, provision more middleboxes to serve new flows

Virtual Middleboxes

Page 5: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Scaling Inefficiencies Lead to Poor Utilization

5

Apps

In the worst case, active flows in each instance delay scale-in

M1 M3 M4 M2 Virtual Middleboxes

Page 6: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

6

The Insight

Page 7: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Flow State is Naturally Partitioned

7

Apps

M1 FlowTable Virtual

Middleboxes

Page 8: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Enabling Elasticity in Virtual Middleboxes

8

M FlowTable

Dynamic partitioning of flow states among “replicas” enables elastic execution

Apps

M FlowTable Virtual

Middleboxes

Page 9: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Understanding the State Inside a Middlebox

9

Middlebox VM

Appl

icat

ion

Logi

c

Input!( Flows )!

Output!

Page 10: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Understanding the State Inside a Middlebox

10

Middlebox VM

Appl

icat

ion

Logi

c

Flow Table!Key! Value!

5-tuple! [Flow State]! Partitionable among replicas!

Input!( Flows )!

Output!

Page 11: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Understanding the State Inside a Middlebox

11

Middlebox VM

Appl

icat

ion

Logi

c

Flow Table!Key! Value!

5-tuple! [Flow State]! Partitionable among replicas!

Threshold counters!

Non-critical statistics!

May be shared among replicas (coherent)!

Input!( Flows )!

Output!

Page 12: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Understanding the State Inside a Middlebox

12

Middlebox VM

Appl

icat

ion

Logi

c

Flow Table!Key! Value!

5-tuple! [Flow State]! Partitionable among replicas!

Threshold counters!

Non-critical statistics!

May be shared among replicas (coherent)!

Caches! Other!processes! ...!

Input!( Flows )!

Output!

Internal to a replica (ephemeral)!

Page 13: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

13

Our Contribution

Page 14: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Split/Merge: A State-Centric Approach to Elasticity

14

Ephemeral!VM!Coherent!

Partitionable !(Flow States)!

Virtual Network Interface!

Page 15: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Split/Merge: A State-Centric Approach to Elasticity

15

Split!

VM! 1! VM! 2! VM! 3!

Replica 1! Replica 2! Replica 3!

Ephemeral!VM!Coherent!

Partitionable !(Flow States)!

Virtual Network Interface!

Page 16: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Split/Merge: A State-Centric Approach to Elasticity

16

Split!

VM! 1! VM! 2! VM! 3!Unchanged Interfaces!

Merge!

VM! 1! VM! 2!

Replica 1! Replica 2! Replica 3!

Replica 1! Replica 2+3!

Coherency is maintained!

Ephemeral!VM!Coherent!

Partitionable !(Flow States)!

Virtual Network Interface!

Page 17: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

17

Implementation

Page 18: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

FreeFlow

�  A VMM based runtime that provides Split/Merge abstraction to applications!

�  Developers modify application code to annotate flow state!

�  FreeFlow takes care of the rest!!

18

Page 19: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

19

FreeFlow: A Split/Merge Implementation

VMM!VMM!

VM!Replica 1!

VM!Replica 2!

Traffic to Middlebox!

...!

Flow 2!Flow 1!

1

Ephemeral!Coherent!

Partitionable !(Flow States)!

2

Page 20: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

�  Need to manage application state!

VMM!VMM!

VM!Replica 1!

VM!Replica 2!

Traffic to Middlebox!

...!

Flow 2!Flow 1!

20

FreeFlow: A Split/Merge Implementation

Free

Flow

Li

brar

y!

Free

Flow

Li

brar

y!

1 2

Page 21: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

�  Need to manage application state!

�  Need to ensure flows are routed to the correct replica!

21

FreeFlow: A Split/Merge Implementation

VMM!VMM!

VM!Replica 1!

VM!Replica 2!

Controller!

Traffic to Middlebox!

Flow 1! Flow 2!

...!

FreeFlow Module!

Free

Flow

Li

brar

y!

Free

Flow

Li

brar

y!

1 2

Page 22: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

�  Need to manage application state!

�  Need to ensure flows are routed to the correct replica!

�  Need to decide when to split or merge a replica!

22

FreeFlow: A Split/Merge Implementation

VMM!VMM!

VM!Replica 1!

VM!Replica 2!

Controller!

Traffic to Middlebox!

Flow 1! Flow 2!

...!

FreeFlow Module!

Orchestrator !

Free

Flow

Li

brar

y!

Free

Flow

Li

brar

y!

1 2

Page 23: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Annotating State using FreeFlow API

23

create_flow(flow_key, size)!delete_flow(flow_key)!!flow_state get_flow(flow_key)!

put_flow(flow_key)!!

flow_timer(flow_key, timeout, callback)!

create_shared(key, size, cb) !delete_shared(key)!!

state get_shared(key, flags) // synch | pull |local!put_shared(key, flags) // synch | push |local!

Partitioned State API

Coherent State API

Page 24: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Forwarding Flows Correctly using OpenFlow

24

OpenFlow Switch!

OpenFlow Table!

<a>! port 1!

<b>! port 2!

<c>! port 2!

...!

port 1! Virtual Switch!

OpenFlow Table!

<a>! port 1!

...!

port 1!

Middlebox Replica 1!

Flow Table!<a>!

...!

port 2!

Virtual Switch!

OpenFlow Table!

<b>! port 1!

<c>! port 1!

...!

port 1!

Middlebox Replica 2!

Flow Table!

<b>!

<c>!

...!

1.1.1.1 (de:ad:be:ef:ca:fe)

1.1.1.1 (de:ad:be:ef:ca:fe)

Page 25: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Flow Migration

25

OpenFlow Switch!

OpenFlow Table!

<a>! port 1!

<b>! port 2!

<c>! port 2!

...!

port 1! Virtual Switch!

OpenFlow Table!

<a>! port 1!

...!

port 1!

Middlebox Replica 1!

Flow Table!<a>!

...!

port 2!

Virtual Switch!

OpenFlow Table!

<b>! port 1!

<c>! port 1!

...!

port 1!

Middlebox Replica 2!

Flow Table!

<b>!

<c>!

...!

Migrating <b> from replica 2 to replica 1

1.1.1.1 (de:ad:be:ef:ca:fe)

1.1.1.1 (de:ad:be:ef:ca:fe)

Page 26: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Flow Migration

26

OpenFlow Switch!

OpenFlow Table!

<a>! port 1!

<b>! controller!

<c>! port 2!

...!

port 1! Virtual Switch!

OpenFlow Table!

<a>! port 1!

...!

port 1!

Middlebox Replica 1!

Flow Table!<a>!

...!

port 2!

Virtual Switch!

OpenFlow Table!

<c>! port 1!

…!

port 1!

Middlebox Replica 2!

Flow Table!

<b>!

<c>!

...!

Suspend flow & buffer packets

1.1.1.1 (de:ad:be:ef:ca:fe)

1.1.1.1 (de:ad:be:ef:ca:fe)

Page 27: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Flow Migration

27

OpenFlow Switch!

OpenFlow Table!

<a>! port 1!

<b>! controller!

<c>! port 2!

...!

port 1! Virtual Switch!

OpenFlow Table!

<a>! port 1!

...!

port 1!

Middlebox Replica 1!

Flow Table!<a>!

<b>!

...!

port 2!

Virtual Switch!

OpenFlow Table!

<c>! port 1!

…!

port 1!

Middlebox Replica 2!

Flow Table!

<c>!

...!

Move flow state to target

1.1.1.1 (de:ad:be:ef:ca:fe)

1.1.1.1 (de:ad:be:ef:ca:fe)

Page 28: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Flow Migration

28

OpenFlow Switch!

OpenFlow Table!

<a>! port 1!

<b>! port 1!

<c>! port 2!

...!

port 1! Virtual Switch!

OpenFlow Table!

<a>! port 1!

<b>! port 1!

…!

port 1!

Middlebox Replica 1!

Flow Table!<a>!

<b>!

...!

port 2!

Virtual Switch!

OpenFlow Table!

<c>! port 1!

…!

port 1!

Middlebox Replica 2!

Flow Table!

<c>!

...!

Release buffer & resume flow

1.1.1.1 (de:ad:be:ef:ca:fe)

1.1.1.1 (de:ad:be:ef:ca:fe)

Page 29: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Managing Coherent State

29

create_shared(key, size, cb) !delete_shared(key)!!

state get_shared(key, flags) // synch | pull |local!put_shared(key, flags) // synch | push |local!

Page 30: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Managing Coherent State

30

create_shared(“foo”, 4, NULL)!

while (1)!

!process_packet()!

!p_foo = get_shared(“foo”, synch)!

!val = (*p_foo)++!

!put_shared(“foo”, synch)!

!

!if (val > threshold)!

! !bar()!

Strong Consistency

Middlebox applications rarely need strong consistency!

Distributed lock for every update

Page 31: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Managing Coherent State

31

create_shared(“foo”, 4, merge_fn)!

while (1)!

!process_packet()!

!p_foo = get_shared(“foo”, local)!

!val = (*p_foo)++!

!put_shared(“foo”, local)!

!

!if (val > threshold)!

! bar()!

! put_shared(“foo”, push)!

Eventual Consistency

Hi frequency local updates

Periodic global updates

Page 32: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

32

Evaluation

Page 33: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Evaluation Overview

�  Eliminating hotspots during scale-out!

�  Fast and efficient scale-in!

�  Split/Merge Bro during a load burst!

33

Page 34: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Hotspots Cannot be Alleviated Quickly

34

Apps

Virtual Middleboxes M2 M1

When M1 is overloaded, provision more middleboxes to serve new flows

Page 35: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Eliminating Hotspots by Shedding Load

35

0

20

40

60

80

100

Max

Lat

ency

(ms) w/ FreeFlow

0 20 40 60 80

100

0 20 40 60 80 100

Max

Lat

ency

(ms)

Time (s)

w/o FreeFlow

Page 36: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

11.6

12

12.4

12.8

13.2Av

g La

tenc

y (m

s) w/ FreeFlow

11.6

12

12.4

12.8

13.2

50 55 60 65 70 75 80 85 90

Avg

Late

ncy

(ms)

Time (s)

w/o FreeFlow

Eliminating Hotspots by Shedding Load

36

Page 37: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Scaling-In a Deployment : Best Case Scenario

37

Apps

Virtual Middleboxes M1 M3 M4 M2

Page 38: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Scaling-In a Deployment : Best Case Scenario

38

Apps

M1 M3 M2 Virtual Middleboxes

Page 39: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

0

20

40

60

80

100

20 40 60 80 100 120 140 160 180 200

Avg

Syst

em U

tiliz

atio

n (%

)

Time (s)

Best Case

Scaling-In: Best Case Scenario

39

Page 40: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Scaling-In using kill : Worst Case Scenario

40

Apps

M1 M3 M4 M2 Virtual Middleboxes

Page 41: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Scaling-In using kill : Worst Case Scenario

41

Apps

M1 M3 M4 M2 Virtual Middleboxes

Page 42: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Scaling-In using kill : Worst Case Scenario

42

Apps

In the worst case, active flows in each instance delay scale-in

M1 M3 M4 M2 Virtual Middleboxes

Page 43: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

0

20

40

60

80

100

20 40 60 80 100 120 140 160 180 200

Avg

Syst

em U

tiliz

atio

n (%

)

Time (s)

Best CaseWorst Case (No FreeFlow)

Scaling-In using kill : Slow & Inefficient

43

Page 44: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Scaling-In using merge : Worst Case Scenario

44

Apps

M M M M Virtual Middleboxes

FreeFlow

Page 45: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Scaling-In using merge : Worst Case Scenario

45

Apps

M M M M

FreeFlow

Virtual Middleboxes

Page 46: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Scaling-In using merge : Worst Case Scenario

46

Apps

M M M Virtual Middleboxes

FreeFlow

Page 47: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Scaling-In using merge : Worst Case Scenario

47

Apps

FreeFlow consolidates state and flows from multiple replicas into one

M 1+2+3+4

Virtual Middleboxes

FreeFlow

Page 48: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

0

20

40

60

80

100

20 40 60 80 100 120 140 160 180 200

Avg

Syst

em U

tiliz

atio

n (%

)

Time (s)

Best CaseWorst Case (No FreeFlow)

Worst Case w/ FreeFlow

Scaling-In using merge : Fast & Efficient

48

Merge

Page 49: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

�  Ported the Event Engine to FreeFlow!

�  Support for UDP, TCP/HTTP protocols!

�  SQL Injection Detection plugin!

49

Splitting & Merging Bro IDS

Web Servers

M

SQL Injection Attacks

Bro

FreeFlow

Page 50: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Web Servers

M

SQL Injection Attacks

Bro

50

Handling a Load Burst

0

20

40

60

80

100

0 10 20 30 40 50 60 70 80 90 100 110

Atta

cks

Det

ecte

d (%

)

Time (s)

Load Burst

Page 51: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Web Servers

M

SQL Injection Attacks

Bro

51

Handling a Load Burst : No Scaling

0

20

40

60

80

100

0 10 20 30 40 50 60 70 80 90 100 110

Atta

cks

Det

ecte

d (%

)

Time (s)

Load Burst

Unscaled

Without enough capacity to handle the load burst, the system performance degrades severely

Page 52: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

52

Handling a Load Burst : Pre-Scaled

0

20

40

60

80

100

0 10 20 30 40 50 60 70 80 90 100 110

Atta

cks

Det

ecte

d (%

)

Time (s)

Load Burst

Unscaled

Pre-scaled

Web Servers

M1

SQL Injection Attacks

Bro

Pre-scaled

M2

Two instances are provisioned apriori, enough to handle a load burst, if any

Page 53: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Web Servers

M1

SQL Injection Attacks

Bro M2

53

Handling a Load Burst : Pre-Scaled

0

20

40

60

80

100

0 10 20 30 40 50 60 70 80 90 100 110

Atta

cks

Det

ecte

d (%

)

Time (s)

Load Burst

Unscaled

Pre-scaled

Load burst has no impact on system performance, as there is enough capacity to handle the load

Pre-scaled

Page 54: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Web Servers

M

SQL Injection Attacks

Bro

54

Handling a Load Burst : Split/Merge

0

20

40

60

80

100

0 10 20 30 40 50 60 70 80 90 100 110

Atta

cks

Det

ecte

d (%

)

Time (s)

Load Burst

Unscaled

Pre-scaled

Dynamically scaledwith FreeFlow

FreeFlow

One replica handles the load well, before the load burst

Page 55: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

55

Handling a Load Burst : Split/Merge

0

20

40

60

80

100

0 10 20 30 40 50 60 70 80 90 100 110

Atta

cks

Det

ecte

d (%

)

Time (s)

Load Burst

Unscaled

Pre-scaled

Dynamically scaledwith FreeFlow

Web Servers

M

SQL Injection Attacks

Bro

FreeFlow

Split

When load burst starts, the Orchestrator splits the replica and rebalances the load

Page 56: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Web Servers

M

SQL Injection Attacks

Bro

FreeFlow

M

56

Handling a Load Burst : Split/Merge

0

20

40

60

80

100

0 10 20 30 40 50 60 70 80 90 100 110

Atta

cks

Det

ecte

d (%

)

Time (s)

Load Burst

Unscaled

Pre-scaled

Dynamically scaledwith FreeFlow

With the load rebalanced, performance returns to normal

Page 57: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Web Servers

M

SQL Injection Attacks

Bro

FreeFlow

M

57

Handling a Load Burst : Split/Merge

0

20

40

60

80

100

0 10 20 30 40 50 60 70 80 90 100 110

Atta

cks

Det

ecte

d (%

)

Time (s)

Load Burst

Unscaled

Pre-scaled

Dynamically scaledwith FreeFlow

Merge

When system utilization drops after the load burst, the Orchestrator merges the two replicas

Page 58: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

58

Handling a Load Burst : Split/Merge

0

20

40

60

80

100

0 10 20 30 40 50 60 70 80 90 100 110

Atta

cks

Det

ecte

d (%

)

Time (s)

Load Burst

Unscaled

Pre-scaled

Dynamically scaledwith FreeFlow

Web Servers

M

SQL Injection Attacks

Bro

FreeFlow

Page 59: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Summary

59

Page 60: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

60

Page 61: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Flow Migration Overhead - TCP

61

0

100

200

300

400

0 10 20 30 40 50 60

Thro

ughp

ut (M

bits

/s)

Time (s)

BaselineFreeFlow

Flow Migration

Page 62: System Support for Elastic Execution in Virtual Middleboxes · Split / Merge ! System Support for Elastic Execution ! in Virtual Middleboxes! Shriram RAJAGOPALAN Dan WILLIAMS Hani

Flow Migration Overhead - UDP

62

0 0.5

1 1.5

2 2.5

3

0 1 2 3 4 5 6 7 8 9 10

Pack

et L

aten

cy (m

s)

Time (s)

150Mbps200Mbps250Mbps

0 2 4 6 8

10 12 14

0 1 2 3 4 5 6 7 8 9 10

Thro

ughp

ut (M

bits

)[5

0ms

win

dow

]

Time (s)

150Mbps200Mbps250Mbps