Title: PLuSH
1PLuSH Mesh Tree
- Fast and Robust Wide-Area Remote Execution
Mikhail Afanasyev ? Jose Garcia ? Brian Lum
2Introduction
- PlanetLab is an open platform for developing,
deploying and accessing planetary-scale services - It allows remote execution on nodes around the
world - Extremely useful in developing new network
technologies
Introduction ? Mesh Tree ? Additional
3PlanetLab
- Current distribution of 534 nodes over 253 sites
Introduction ? Mesh Tree ? Additional
4The Motivation
- Performance is abysmal
- Currently, the user must make an SSH connection
to each node - As the number of nodes grows, the overhead of
establishing SSH connections becomes more
significant - Not all nodes can reach one another directly
Introduction ? Mesh Tree ? Additional
5The Motivation
- Flaky Control
- Controlling large sets of remote processes is
difficult - Example C-c will result in remote processes
being killed or straggler processors to remain
Introduction ? Mesh Tree ? Additional
6PLuSH
- Suppose that someone wants to test a new network
application and decides to run the code on 100
machines - First, we must be able to determine a list of
target nodes to run the experience. Nodes can be
picked depending on factors including CPU load,
bandwidth, latency, etc. - Next, the code must be deployed
- The code must be started simultaneously on all
machines. - Once the code is running, we must be able monitor
the progress and collect statistics
Introduction ? Mesh Tree ? Additional
7PLuSH
- One of the core parts of Plush is the Mesh
interface - Mesh abstracts the underlying overlay
- Mesh uses a rough list of hosts to construct an
overlay communication mesh by using the host
directory to query host names and authentication
information.
Introduction ? Mesh Tree ? Additional
8Weaving the Mesh
- SSH authentication forwarding
- Building the tree
- Adding robustness
Mesh Tree SSH Forwarding ? Building the Tree ?
Robustness
9How SSH Works
- Agent listens on agent socket which is a Unix
domain socket. Agent has private key. - SSH (on agents side) makes a connection from
Home PC to SSHd (daemon) on PL1, who has the
public key. - SSHd sends challenge to SSH. SSH connects to
Agent socket, gives challenge to Agent. Agent
uses private key to make response and forwards to
SSH, who forwards to SSHd.
Mesh Tree SSH Forwarding ?Building the Tree ?
Robustness
10Our World with PlanetLab
Home PC
PL1
PL2
Slice 0
Slice UCSD
Agent
private key
Challenge
Response
Challenge
Challenge
SSH
SSHd
SSH
SSHd
public key
public key
Response
The slice breaks up PL1, so SSH cannot forward to
SSHd
Mesh Tree SSH Forwarding ?Building the Tree ?
Robustness
11Our Solution
Home PC
PL1
PL2
Slice 0
Slice UCSD
Agent
private key
Client
Challenge
SSH Mesh Response
SSH Mesh Challenge
Response
Response
Challenge
Challenge
Challenge
SSH
SSHd
SSH
SSHd
public key
public key
Response
Response
Clients STDIN and STDOUT are connected to SSHd
Mesh Tree SSH Forwarding ?Building the Tree ?
Robustness
12Building the Tree
- There is rudimentary support for a tree
- We implemented multiple tree-building algorithms
- Trees can be built using SSH tree and Macedon
Mesh Tree SSH Forwarding? Building the Tree ?
Robustness
13Macedon vs. SSH Mesh
- Macedon
- Advantages
- Support for many protocols
- Does not spend time decrypting and encrypting
- Disadvantages
- Can be easily hijacked
- Heavy program
- SSH Mesh
- Advantages
- Requires minimum client software
- Provides protection against both sniffing and
hijacking - Disadvantages
- Spends time decrypting and encrypting
Mesh Tree SSH Forwarding? Building the Tree ?
Robustness
14Adding Robustness
- The Forwarding mechanism
- Forwards SSH connection
- Allows us to change root so that we can detach
the experiment controller - Allows us to recover from failures in the root
Mesh Tree SSH Forwarding ? Building the Tree ?
Robustness
15Comparing the trees
Introduction ? Mesh Tree ? Additional
16Additional Tools
- Debugging Tool
- Deploys required files to all necessary nodes
- Opens multiple simultaneous connections for very
high speeds - Stops runaway processes
- Macedon Testing Tool
- Shows raw data for underlying Macedon
communication networks - Controls Macedon networks from console
- Uses self-developed Perl Macedon bindings
Introduction ? Mesh Tree ? Additional
17Future Research Work
- Comparison between more Mesh overlay algorithms
- Evaluate the performance difference between SSH
Mesh and Macedon
Introduction ? Mesh Tree ? Additional
18Additional Thanks
- We would like to thank the following people for
their help - Chris Tuttle
- Jeannie Albrecht
- Chip Killian
Introduction ? Mesh Tree ? Additional
19Conclusion
- Remote execution in PlanetLab through basic SSH
connections is neither scalable nor robust - We have implemented a solution that improves both
scalability and robustness - SSH forwarding mechanism
- Building the tree
- Adding robustness
Introduction ? Mesh Tree ? Additional