Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

30
Hosting Virtual Networks on Commodity Hardware VINI Summer Camp

Transcript of Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.

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?