270 likes | 278 Views
Explore the essential requirements, services, challenges, and goals of a modern testbed ecosystem supporting virtualization, federation, and user programmability.
E N D
Tom Anderson Jeff Chase Doug Comer Brett Fleisch Frans Kaashoek Jay Lepreau Hank Levy Larry Peterson Mothy Roscoe Mehul Shah Ion Stoica Joe Touch Amin Vahdat Testbeds Breakout
GENI Requirements • Virtualizable • So users can share infrastructure • Programmable • So users can provide arbitrary functionality • Supports painless user opt-in and opt-out • So we can get real workload • Federation • So new devices, clusters, edge networks can be plugged in • Software development support • So we can make our stuff real and available to each other • So we can build on each other's work; this includes (especially) management software
Questions • What do we need? • How can we contribute to substrate? • What basic services can we provide?
What do we need? (1) • Significant storage and computation infrastructure make it possible to deploy Google and Yahoo like services • 20-30 clusters • > 256 node per cluster • > 256 TB per site • Many smaller clusters with heterogeneous connectivity make it possible to deploy Akamai like services • Others: 1000s of hosts, sensor nodes, mobile devices, embedded devices
What do we need? (2) • Allow users to easily opt-in and opt-out with their resources to/from the testbed • Enable testbed to organically grow to include • Wireless networks • Sensor networks • Community Networks • …
How can we contribute to substrate? (1) • Provide a “virtual network system” abstraction: • Virtualize all resources: CPU. Memory, storage, network • Virtualization within constraints (e.g., 20 ms delay, 2 Mbps links) • Challenge: Map virtual system networks onto physical resources while meeting time and resource constraints
How can we contribute to substrate? (2) • Resource management & allocation • How to allocate resources (virtual network systems) when testbed is oversubscribed? • Challenge: Develop flexible policies and mechanisms • E.g., reservation in both time and space, market-based allocation, …
How can we contribute to substrate? (3) • Support for auditing, debugging • How to discover users with malicious intend, misconfigurations, bugs? • Challenges: • Efficient and scalable infrastructure that at limit would allow all nodes to log all messages, virtual machine checkpoints, etc • Extensible monitoring infrastructure; provide hooks for users to add their own monitoring or logging code
What services can we provide? (1) • PKI infrastructure • Certification authority • Auditing services • Name server (DNS++) • Resource location and discovery
What service can we provide? (2) • Citeseer • Source forge • Usenet news • arXiv.org • Conference submission • Fastlane • Data distribution service • Spam filters • Distributed firewalls • Open search engine (Open Google?)
Goals • Flexibility/Control • Isolation • Realism • Fairness • Security • Support for tracing, replaying
What should a Testbed Include? • PlanetLab++ • Large number of node (1000s), heterogeneous connectivity • Optical networks • Sensor nodes • Mobile hosts (PDAs, Phones, etc) • Data centers (Google, Yahoo, part of the Internet fabric)
Soft-radios • Four classes of wireless • All things for all people is difficult • Configurable testbeds • Heterogeneous separate testbed • What’s it at this site? • Storage to do management • Contribute with software, maintain and support • Operational and manage this
What we need? • Sensornodes • Open environment • Organically evolve testbeds • Distribution, heterogeneity, scale
What else we need (Software)? • Databases
How can we contribute? • Management?
Flexibility • Need to be have complete control on infrastructure node • Run various OSes • Port numbers • Real-time • Root privileges
Isolation • One user shouldn’t be able to interfere with the experiments of other users • At multiple levels • CPU • Memory • Disk • Bandwidth (both outgoing and ingoing)
Realism • Real users, real applications • Negotiate with ISPs to send traffic across testbed • How to guarantee that ISPs traffic won’t be screwed • Recreate catastrophic failures, attacks
Security • Prevent using testbed to initiate attacks • Malicious users • Misconfigurations • Challenge: minimal impact on flexibility, performance
Management • How to allocate resources to users in a fair and easy to understand (predictable?) way • Flexible polices and mechanisms • Reservation in both time and space • Biding, trading resources • Economic-based allocation
Support for tracing, replaying • Ideally, log everything: • Traffic • Virtual machine checkpoints • Enable replaying, forensic • Hard
Virtualized testbeds • Network and edge devices network • Virtual machine and virtual network • Virtualization within constraints (20ms) • Abstract away heterogeneous software • Specify requirements map on real resources
Auditing/logging • Flexible monitoring • Secure hooks for monitoring
Extensible testbeds • Flexible routing infrastructure • Integrate everything • Community networks • Useful control system
Resource allocation • Model for incentives • Incentives to X add resources • PKI infrastructure • Certified authority • Auditing services • Name servers • Resource location and discovery