An Introduction to PlanetLab
Download
Report
Transcript An Introduction to PlanetLab
An
Introduction to
PlanetLab
Prepared By:
Abhishek Agrawal
Presentation Outline
Details about PlanetLab and Slice
Management
PlanetLab Tools
Details about
PlanetLab and
Slice
What is PlanetLab??
PlanetLab is an overlay test bed designed to
allow researchers to experiment with network
applications and services that benefit from
distribution across a wide geographic area.
PlanetLab Consortium is a collection of
academic, industrial, and government
institutions cooperating to support and enhance
the PlanetLab overlay network
For more information visit www.planet-lab.org
How to Join PlanetLab??
Need to donate two machines and host
two PlanetLab nodes locally.
After approval, PI’s can create slices
A slice is a set of allocated resources
distributed across PlanetLab
After being assigned a slice, a user can
add nodes to it.
Getting Started with PlanetLab
Register for a PlanetLab account by
visiting the Account Registration page.
Contact PI for account to be activated
Create an SSH Key
Remote access to PlanetLab nodes is restricted
to SSH login using RSA authentication
To generate an SSH key pair, use the sshkeygen program on a secure UNIX system:
ssh-keygen -t rsa -f ~/.ssh/identity
Ssh-keygen asks for a passphrase. It’s better to
go for password-less access.
Upload the public key file identity.pub to the
PlanetLab website using the Manage My Keys
page.
Getting started with the slice
Initially slice is populated with a minimal Fedora Core 2
Linux installation
To login to a node with SSH, provide your slice name as
the login name (e.g. ufl_ipop), the path to your private
key file (e.g. ~/.ssh/identity), and the node to login to
(e.g. planetlab1.acis.ufl.edu):
ssh -l ufl_ipop -i ~/.ssh/identity planetlab1.acis.ufl.edu
Initially logged in as a regular user with the same name
as your slice name. May su to root, add new users,
control services, install new packages, mount certain
directories, and perform other actions that root is
normally capable of.
Populating the Slice
Additional standard packages in the slice,
can be installed using yum. For example,
to install emacs:
yum install emacs
To bring your slice up-to-date with the
latest versions of all packages:
yum update
Building and Deploying the
application
The most straightforward way of deploying
your application to a single node is with
scp:
scp -l ufl_ipop -i ~/.ssh/identity -r test1 planetlab1.acis.ufl.edu
rsync may be used to copy just those files
that do not exist or have changed since
the last time they were copied:
rsync -a -e "ssh -l ufl_ipop -i ~/.ssh/identity" test1 planetlab1.acis.ufl.edu
PlanetLab
Tools
PlanetLab Tools
Parallel SSH
PlanetLab Slice Deploy Toolkit
vxargs
Nixes Tool Set
A complete list of contributed software
may be found on the Contributed Software
page on the PlanetLab Wiki.
PSSH
Developed at Intel Research, Berkeley
This package provides parallel versions of
the openssh tools. Included in the
distribution:
Parallel ssh (pssh)
Parallel scp (pscp)
Parallel rsync (prsync)
Parallel nuke (pnuke)
Parallel slurp (pslurp)
PSSH Demo
pssh -h ips.txt -l ufl_ipop -o /tmp/foo hostname
pscp -h hosts.txt -l ufl_ipop foo.txt /home/ufl_ipop/foo.txt
pnuke -h ips.txt -l ufl_ipop java
PlanetLab Slice Deploy Toolkit
The PlanetLab Slice Deploy Toolkit
consists of three scripts used to manage
slices:
plslice create and manage a slice
pldeploy manage a collection of cogs deployed in
a slice
pladdnodes example of a script to push a cog to
all nodes
vxargs
It provides the parallel versions of any arbitrary
command, including ssh, rsync, scp, wget, curl,
and whatever
The main features are:
parallelism: run many jobs at the same time
flexibility: arbitrary command with arbitrary options
visualization: monitor the total/per job progress in a cursesbased UI
redirection: stdout and stderr of each individual job are
redirected to files respectively for further analysis.
Nixes Tool Set
plsetup node-list: bootstraps the slice with
yum and gzip
plinstallrpm “rpms” node-list: installs all the
rpms on all the nodes
pldeploy node-list: deploys any file
structure to the nodes
plcmd command node-list: executes any
set of commands on all the nodes.
Additional Resources
For questions regarding application
compilation, deployment, and execution,
try the PlanetLab Users mailing list
For technical difficulty with a node, with
the slice, with the account, or with the
website, contact PlanetLab Support