14
PlanetLab Software Overview Mark Huang [email protected]

PlanetLab Software Overview Mark Huang [email protected]

Embed Size (px)

Citation preview

Page 1: PlanetLab Software Overview Mark Huang mlhuang@cs.princeton.edu

PlanetLab Software Overview

Mark Huang

[email protected]

Page 2: PlanetLab Software Overview Mark Huang mlhuang@cs.princeton.edu

PlanetLab CVS

http://cvs.planet-lab.org/cvs/ :pserver:[email protected]:/cvs CVS_RSH=ssh :ext:cvs.planet-lab.org:/cvs

Page 3: PlanetLab Software Overview Mark Huang mlhuang@cs.princeton.edu

PlanetLab Build

http://build.planet-lab.org/build/ …/nightly/ …/planetlab-3_3-rc1/

Page 4: PlanetLab Software Overview Mark Huang mlhuang@cs.princeton.edu

Node Software Boot

Boot CD Boot Manager

Virtualization Linux kernel VServer VNET

Node Management Node Manager NodeUpdate PlanetLabConf

Slice Management Slice Creation Service Proper

Monitoring PlanetFlow pl_mom

Page 5: PlanetLab Software Overview Mark Huang mlhuang@cs.princeton.edu

PLC Software Database server

pl_db PLCAPI server

plc_api Web server

Website PHP Scripts

Boot server PlanetLabConf scripts

PlanetFlow archive Mail, Support (RT), DNS, Monitor, Build, CVS, QA

Page 6: PlanetLab Software Overview Mark Huang mlhuang@cs.princeton.edu

Boot CD

Version 3 Boot CD bootcd_v3/conf_files/

Hardware, network, system initialization bootcd_v3/configurations/

CD customization Two-stage build

bootcd_v3/prep.sh Prepares basic filesystem

bootcd_v3/build.sh Prepares overlay filesystem which customizes the Boot CD

Page 7: PlanetLab Software Overview Mark Huang mlhuang@cs.princeton.edu

Boot Manager Boot Manager

bootmanager/source/ Main BootManager class, authentication, utility functions,

configuration, etc. bootmanager/source/steps/

Individual “steps” of the install/boot process bootmanager/support-files/

Bootstrap tarball generation Legacy support for old Boot CDs

To Do Get out of the hardware and installation business

(Anaconda?) Support distributed boot and install (signed packages?)

Page 8: PlanetLab Software Overview Mark Huang mlhuang@cs.princeton.edu

Virtualization Linux kernel

linux-2.6/ Fedora Core 4 kernel VServer patch AndySched, VNET, Proper, BCM5700, GRE/PPTP, other

miscellaneous patches VServer

util-vserver/ Userspace VServer management utilities and libraries

VNET Linux kernel module Intercepts bind(), other socket calls Intercepts and marks all IP packets Implements TUN/TAP, proxy socket extensions

Page 9: PlanetLab Software Overview Mark Huang mlhuang@cs.princeton.edu

Node Management Node Manager (pl_nm)

sidewinder/ Thin XML-RPC shim around VServer (or other VMM) syscalls, and other

knobs util-python/

Miscellaneous Python utility functions util-vserver/python/

Python bindings for VServer syscalls Node Update

NodeUpdate/ Wrapper around yum for keeping node RPMs up-to-date

PlanetLabConf PlanetLabConf/

Pull-based configuration file distribution service Most files dynamically generated on a per-node or per-node group basis

Page 10: PlanetLab Software Overview Mark Huang mlhuang@cs.princeton.edu

Slice Management

Slice Creation Service (pl_conf) sidewinder/

Runs in a slice Periodically downloads slices.xml from boot server Local XML-RPC API for delegated slice creation, query

Proper proper/

Simple local interface for executing privileged operations Bind mount(), privileged port bind(), root read()

Page 11: PlanetLab Software Overview Mark Huang mlhuang@cs.princeton.edu

Administration and Monitoring PlanetFlow (pl_netflow)

netflow/ MySQL schema and initialization/maintenance scripts

netflow/html/ PHP frontend

netflow/pfgrep/ Console frontend

ulogd/ Packet header collection, aggregation, and insertion

PlanetLab Monitor (pl_mom) pl_mom/swapmon.py

Swap space monitor and slice reaper pl_mom/bwmon.py

Average daily bandwidth monitor

Page 12: PlanetLab Software Overview Mark Huang mlhuang@cs.princeton.edu

Database and API

Database pl_db/

PostgreSQL schema generated from XML

PLCAPI plc_api/specification/

XML specification of API functions plc_api/PLC/

mod_python implementation

Page 13: PlanetLab Software Overview Mark Huang mlhuang@cs.princeton.edu

Web Server

PHP, Static, Generated plc_www/includes/new_plc_api.php

Auto-generated PHP binding to PLCAPI plc_www/db/

Secure portion of website plc_www/generated/

Generated include files plc/scripts/

Miscellaneous scripts

Page 14: PlanetLab Software Overview Mark Huang mlhuang@cs.princeton.edu

Boot Server

Secure Software Distribution Authenticated, encrypted with SSL /var/www/html/boot/

Default location for Boot Manager /var/www/html/install-rpms/

Default /etc/yum.conf location for RPM updates /var/www/html/PlanetLabConf/

Server-side component Mostly PHP