PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson,...

41
PlanetLab: An Overlay Testbed for Broad- Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle

Transcript of PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson,...

Page 1: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

PlanetLab: An Overlay Testbed for Broad-Coverage

ServicesBavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak

Presented by Jason Waddle

Page 2: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Overview

1. What is PlanetLab?2. Architecture

1. Local: Nodes2. Global: Network

3. Details1. Virtual Machines2. Maintenance

Page 3: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

What Is PlanetLab?

• Geographically distributed overlay network

• Testbed for broad-coverage network services

Page 4: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

PlanetLab Goal

“…to support seamless migration of an application from an early

prototype,through multiple design iterations,to a popular service that continues

to evolve.”

Page 5: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Priorities

• Diversity of Network– Geographic– Links

• Edge-sites, co-location and routing centers, homes (DSL, cable-modem)

• Flexibility– Allow experimenters maximal control

over PlanetLab nodes– Securely and fairly

Page 6: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

PlanetLab Architecture

• Node-level– Several virtual machines on each

node, each running a different service• Resources distributed fairly• Services are isolated from each other

• Network-level– Node managers, agents, brokers, and

service managers provide interface and maintain PlanetLab

Page 7: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Services Run in Slices

PlanetLab Nodes

Page 8: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Services Run in Slices

PlanetLab Nodes

Virtual Machines

Service / Slice A

Page 9: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Services Run in Slices

PlanetLab Nodes

Virtual Machines

Service / Slice A

Service / Slice B

Page 10: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Services Run in Slices

PlanetLab Nodes

Virtual Machines

Service / Slice A

Service / Slice B

Service / Slice C

Page 11: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Node Architecture Goals

• Provide a virtual machine for each service running on a node

• Isolate virtual machines• Allow maximal control over virtual

machines• Fair allocation of resources

– Network, CPU, memory, disk

Page 12: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

One Extreme: Software Runtime (e.g., Java Virtual Machine)

• High level API• Depend on OS to provide

protection and resource allocation• Not flexible

Page 13: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Other Extreme: Complete Virtual Machine (e.g., VMware)

• Low level API (hardware)– Maximum flexibility

• Excellent protection• High CPU/Memory overhead

– Cannot share common resources among virtual machines• OS, common filesystem

Page 14: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Mainstream Operating System

• API and protection at same level (system calls)

• Simple implementation (e.g., Slice = process group)

• Efficient use of resources (shared memory, common OS)

• Bad protection and isolation• Maximum Control and Security?

Page 15: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

PlanetLab Virtualization: VServers

• Kernel patch to mainstream OS (Linux)

• Gives appearance of separate kernel for each virtual machine– Root privileges restricted to activities

that do not affect other vservers

• Some modification: resource control (e.g., File handles, port numbers) and protection facilities added

Page 16: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

PlanetLab Network Architecture

• Node manger (one per node)– Create slices for service managers

• When service managers provide valid tickets

– Allocate resources for vservers

• Resource Monitor (one per node)– Track node’s available resources– Tell agents about available resources

Page 17: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

PlanetLab Network Architecture

• Agents (centralized)– Track nodes’ free resources– Advertise resources to resource

brokers– Issue tickets to resource brokers

• Tickets may be redeemed with node managers to obtain the resource

Page 18: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

PlanetLab Network Architecture

• Resource Broker (per service)– Obtain tickets from agents on behalf of

service managers

• Service Managers (per service)– Obtain tickets from broker– Redeem tickets with node managers to

acquire resources– If resources can be acquired, start

service

Page 19: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Obtaining a Slice

Agent

Service Manager

Broker

Page 20: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Obtaining a Slice

Agent

Service Manager

BrokerResource Monitor

Page 21: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Obtaining a Slice

Agent

Service Manager

BrokerResource Monitor

Page 22: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Obtaining a Slice

Agent

Service Manager

BrokerResource Monitor

ticket

Page 23: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Obtaining a Slice

Agent

Service Manager

Broker

ticket

Resource Monitor

Resource Monitor

Page 24: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Obtaining a Slice

Agent

Service Manager

Broker

ticket

Resource Monitor

Resource Monitor

ticket

ticket

Page 25: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Obtaining a Slice

Agent

Service Manager

Broker

ticket

ticket

ticket

Page 26: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Obtaining a Slice

Agent

Service Manager

Broker

ticket

ticket

ticket

Page 27: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Obtaining a Slice

Agent

Service Manager

Broker

ticket

ticket

ticket

Page 28: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Obtaining a Slice

Agent

Service Manager

Broker

ticket

ticket

ticket

Page 29: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Obtaining a Slice

Agent

Service Manager

Broker

ticket

ticket

ticketNode Manager

Node Manager

Page 30: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Obtaining a Slice

Agent

Service Manager

Broker

ticket

Page 31: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Obtaining a Slice

Agent

Service Manager

Broker

ticket

Page 32: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

PlanetLab Virtual Machines: VServers

• Extend the idea of chroot(2)– New vserver created by system call– Descendent processes inherit vserver– Unique filesystem, SYSV IPC, UID/GID

space– Limited root privilege

• Can’t control host node

– Irreversible

Page 33: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Scalability

• Reduce disk footprint using copy-on-write– Immutable flag provides file-level CoW– Vservers share 508MB basic filesystem

• Each additional vserver takes 29MB

• Increase limits on kernel resources (e.g., file descriptors)– Is the kernel designed to handle this?

(inefficient data structures?)

Page 34: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Protected Raw Sockets• Services may need low-level network

access– Cannot allow them access to other services’

packets

• Provide “protected” raw sockets– TCP/UDP bound to local port– Incoming packets delivered only to service with

corresponding port registered– Outgoing packets scanned to prevent spoofing

• ICMP also supported– 16-bit identifier placed in ICMP header

Page 35: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Resource Limits

• Node-wide cap on outgoing network bandwidth– Protect the world from PlanetLab services

• Isolation between vservers: two approaches– Fairness: each of N vservers gets 1/N of the

resources during contention– Guarantees: each slice reserves certain amount

of resources (e.g., 1Mbps bandwidth, 10Mcps CPU)

• Left-over resources distributed fairly

Page 36: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Linux and CPU Resource Management

• The scheduler in Linux provides fairness by process, not by vserver– Vserver with many processes hogs

CPU

• No current way for scheduler to provide guaranteed slices of CPU time

Page 37: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

PlanetLab Network Management1. PlanetLab Nodes boot a small Linux OS

from CD, run on RAM disk2. Contacts a bootserver3. Bootserver sends a (signed) startup

script• Boot normally or• Write new filesystem or• Start sshd for remote PlanetLab Admin login

• Nodes can be remotely power-cycled

Page 38: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

Dynamic Slice Creation

1. Node Manager verifies tickets from service manager

2. Creates a new vserver3. Creates an account on the node

and on the vserver

Page 39: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

User Logs in to PlanetLab Node• /bin/vsh immediately:

1. Switches to the account’s associated vserver2. Chroot()s to the associated root directory3. Relinquishes true root privileges4. Switch UID/GID to account on vserver

– Transition to vserver is transparent: it appears the user just logged into the PlanetLab node directly

Page 40: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

PlanetLab Today

• More than 220 nodes• Over 100 sites• More than 200 research projects

have used PlanetLab• Goal: over 1000 geographically

diverse nodes

Page 41: PlanetLab: An Overlay Testbed for Broad-Coverage Services Bavier, Bowman, Chun, Culler, Peterson, Roscoe, Wawrzoniak Presented by Jason Waddle.

PlanetLab Today

www.planet-lab.org