Download - Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Transcript
Page 1: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Hosting Virtual Networks on Commodity Hardware

VINI Summer Camp

Page 2: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Decouple Service from Infrastructure

• Service: “slices” of physical infrastructure– Applications and networks that benefit from

• Flexible, custom topologies• Application-specific routing

• Infrastructure: needed to build networks

Page 3: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Fixed Physical Infrastructure

Page 4: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Shared By Many Parties

Page 5: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Network Virtualization: 3 Aspects

• Host: Divide the resources of one physical node into the appearance of multiple distinct hosts

• Network stack: Give each process its own interfaces, routing table, etc.

• Links: Connect two nodes by composing underlying links

Page 6: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Why Virtual Networks

• Sharing amortizes costs– Enterprise network or small ISP does not

have to buy separate routers, switches, etc.– Large ISP can easily expand to new data

center without buying separate equipment

• Programmability and customizability

• Testing in realistic environments

Page 7: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Why Commodity Hardware

• Lower barrier to entry– Servers are inexpensive– Routing (e.g., Quagga), and forwarding (e.g., Click)

software is open source (free)

• No need for specialized hardware– Open-source routing software: Quagga, etc.– Network processors can be hard to program

• Easy adaptation of physical infrastructure– Expansion is easy: buy more servers

Page 8: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Commercial Motivation:Logical Routers

• Consolidation– PoP and Core– Simpler physical topology– Fewer physical interconnection

• Application-Specific Routing– PoP and Core– Simpler physical topology– Fewer physical interconnection

• Wholesale Router Market• Proof-of-Concept Deployment

Page 9: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Other Beneficiaries

• Interactive applications: require application-specific routing protocols– Gaming– VoIP

• Critical services: benefit from custom data plane– Applications that need more debugging info– Applications with stronger security requirements

Page 10: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Requirements

• Speed: Packet forwarding rate that approach that of native, in-kernel

• Flexibility: Support for custom routing protocols and topology

• Isolation: Separation of resource utilization and namespaces

Page 11: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Host Virtualization• Full virtualization: VMWare Server, KVM

– Advantage: No changes to Guest OS, good isolation– Disadvantage: Slow– Paravirtualization: Xen, Viridian

• OS-Level Virtualization: OpenVZ, VServers, Jail– Advantage: Fast– Disadvantage: Requires special kernel, less isolation

Page 12: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Network Stack Virtualization

• Allows each container to have its own – Interfaces– View of IP address space– Routing and ARP tables

• VServer does not provide this function– Solution 1: Patch VServer with NetNS– Solution 2: OpenVZ

• VServer is already used for PlanetLab

Page 13: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Link Virtualization

• Containers need Ethernet connectivity– Routers expect direct Ethernet connections to

neighbors

• Linux GRE tunnels support only IP-in-IP

• Solution: Ethernet GRE (EGRE) tunnel

Page 14: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Synthesis

• Tunnel interface outside of container– Permits traffic shaping outside of container– Easier to create point-to-multipoint topology

• Need to connect tunnel interface to virtual interface

Page 15: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Connecting Interfaces: Bridge

• Linux bridge module: connects virtual interface with the tunnel interface– speed suffers due to bridge table lookup– allows point-to-multipoint topologies

Page 16: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Optimization: ShortBridge

• Kernel module used to join virtual interface inside the container with the tunnel interface

• Achieves high packet forwarding rate

Page 17: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Evaluation

• Forwarding performance– Packets-Per-Second– Source->Node-Under-Test->Sink

• Isolation– Jitter/loss measurements with bursty cross traffic

• Scalability– Forwarding performance as the number of

containers grow• All tests were conducted on Emulab

– 3GHz CPU, 1MB L2 Cache, 800MHz FSB, 2GB 400MHz DDR2 RAM

Page 18: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Forwarding Performance - Click

• Minimal Click configuration– Raw UDP receive->send

• Higher jitter• ~80’000PPS

Page 19: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Forwarding Performance - Bridged

• Allows more flexibility through bridging

• ~250’000PPS

Page 20: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Forwarding Performance – Bridged w/o Tunneling

• Xen: often crashes, ~70’000PPS• OpenVZ: ~300’000PPS• NetNS: ~300’000PPS

Page 21: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Forwarding Performance – Spliced

• Avoids bridging overhead• Point-to-Point topologies only• ~500’000PPS

Page 22: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Forwarding Performance - Direct

• No resource control

• ~580’000PPS

Page 23: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Overall Forwarding Performance

Page 24: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Forwarding for Different Packet Sizes

Page 25: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Isolation

• Setup:– 5 nodes. 2 pairs of source+sink – 2 NetNS containers in spliced mode– pktgen used to generate cross flow– iperf measures jitter on another flow

• Step function– CPU utilization < 99%: no loss, 0.5ms jitter– CPU utilization ~> 100%: loss, 0.5ms jitter for

delivered packets

Page 26: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Scalability Test Setup

Page 27: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Scalability Results

Page 28: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Tradeoffs

• Bridge vs. Shortbridge– Bridge enables point-to-multipoint– Shortbridge is faster

• Data-plane flexibility vs. Performance– Non-IP forwarding requires user-space

processing (Click)

Page 29: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Future Work

• Resource allocation and scheduling– CPU– Interrupts/packet processing

• Long-running deployment on VINI testbed

• Develop applications for the platform

Page 30: Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

Questions

• Other motivations/applications?

• Other aspects to test?

• Design alternatives?