fine-grained failover using connection migration

20
Fine-Grained Failover Using Connection Migration Alex C. Snoeren, David G. Andersen, Hari Balakrishnan MIT Laboratory for Computer Science

Upload: zoltan

Post on 07-Jan-2016

32 views

Category:

Documents


3 download

DESCRIPTION

Fine-Grained Failover Using Connection Migration. Alex C. Snoeren, David G. Andersen, Hari Balakrishnan MIT Laboratory for Computer Science. Servers Fail. The Problem. Client. Content server. More often than users want to know…. Solution: Server Redundancy. Use a healthy one at all - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Fine-Grained Failover Using  Connection Migration

Fine-Grained FailoverUsing Connection Migration

Alex C. Snoeren,

David G. Andersen, Hari Balakrishnan

MIT Laboratory for Computer Science

Page 2: Fine-Grained Failover Using  Connection Migration

The Problem

Servers Fail.More often than users want to know…

Client Content server

Page 3: Fine-Grained Failover Using  Connection Migration

Solution: Server Redundancy

Use a healthyone at alltimes.

Page 4: Fine-Grained Failover Using  Connection Migration

1. Health Monitoring

2. Server Selection

3. Connection Resumption

Failover Components

Page 5: Fine-Grained Failover Using  Connection Migration

Today’s Replication Technology

• DNS/Content RoutingWide-area replication Need client awareness

• Layer 4/Web SwitchesTransparent, possibly

mid-stream failover Requires co-location

DNS

We

b S

witc

h

Page 6: Fine-Grained Failover Using  Connection Migration

• Wide area replication Yet somehow synchronize

replica servers

• Transparent failover Enable other servers to

continue connections

Ideal Technology

Page 7: Fine-Grained Failover Using  Connection Migration

• Stream Mapping Infer application state from

transport layer information

• Connection Migration Transparently hand off

sessions between servers

Migrate Architecture

Str

eam

Map

per

Str

eam

Map

per

Str

eam

Map

per

Page 8: Fine-Grained Failover Using  Connection Migration

Stream Mapping

HTTP 1.1 200 OK Content-Length: 328987 ...Content-Type: video/mpeg

GET /StreamingContent.mpg HTTP/1.1Client:

Server Response:

Stream Map: TCP SeqNo 083346

TCP ISS 083521

Client Object (URL) Offset (TCP SeqNo)

128.89.3.24:4234 /StreamingContent.mpg 083346

Page 9: Fine-Grained Failover Using  Connection Migration

Anatomy of Failover

Client

Support Group

Initial Connection

Migrated Connection

Page 10: Fine-Grained Failover Using  Connection Migration

Support Groups

• Set of partially mirrored servers All servers able to provide same content Can be topologically diverse

• Synchronize on per-connection basis Servers need not be complete mirrors Connections from a failed server can be

handled by a different support server Connections may have distinct support

groups

Page 11: Fine-Grained Failover Using  Connection Migration

Soft State Synchronization

• Synchronize within support groups Periodic advertisements Advertise client application object requests Communicate initial transport layer state

• Only initial state need be communicated Current info inferred from transport layer Clients will reject redundant migrates from

stale support servers

Page 12: Fine-Grained Failover Using  Connection Migration

TCP ConnectionMigration

1. Initial SYN

2. SYN/ACK

3. ACK (with data)

4. Normal data transfer

5. Migrate SYN

6. Migrate SYN/ACK

7. ACK (with data)

client server

Page 13: Fine-Grained Failover Using  Connection Migration

TCP ConnectionMigration

1. Initial SYN

2. SYN/ACK

3. ACK (with data)

4. Normal data transfer

5. Migrate SYN

6. Migrate SYN/ACK

7. ACK (with data)

client server

Page 14: Fine-Grained Failover Using  Connection Migration

TCP ConnectionMigration

1. Initial SYN

2. SYN/ACK

3. ACK (with data)

4. Normal data transfer

5. Migrate SYN

6. Migrate SYN/ACK

7. ACK (with data)

client server

failover server

545968:546414(536)

ack 533526

SYN 533525:533525(0)ack 545968

current

SYN 083521:083521(0)

(migrate T, R)

stale

Page 15: Fine-Grained Failover Using  Connection Migration

Implementation

Server App

Server AppClient

Stream Mapping Wedges

• Software “Wedge” Stream Mapping Synchronization

We

dg

eW

ed

ge

Page 16: Fine-Grained Failover Using  Connection Migration

Wedge Overhead

1000

10000

100000

1e+06

1e+07

1 10 100 1000 10000

Mic

ros

ec

on

ds

pe

r re

qu

es

t

Request size (Kbytes)

Wedge

Direct

Page 17: Fine-Grained Failover Using  Connection Migration

Experimental Topology

Client initiates a transfer to A…

Linux/Apache 1.3

Linux/Apache 1.3

then migrates to B…

and back to A…

128Kbs links

Page 18: Fine-Grained Failover Using  Connection Migration

Varying Oscillation Rates

0

100000

200000

300000

400000

500000

600000

700000

800000

900000

1e+06

0 10 20 30 40 50 60

Go

od

pu

t (b

yte

s)

Time (secs)

No Oscillations10 sec12 sec

2 sec5 sec

Page 19: Fine-Grained Failover Using  Connection Migration

Benefits & Limitations

• Enable wide area server replication Low server synchronization overhead Infer current state from transport layer

• Robust even under adverse loads Health monitors can be overly reactive Gracefully handle cascaded failures

• Leverages connection migration Requires modern transport stack

Page 20: Fine-Grained Failover Using  Connection Migration

Software available on the web:

http://nms.lcs.mit.edu/software/migrate

Networks and Mobile Systems