PLuSH-Mesh Tree

PLuSH – Mesh Tree
Fast and Robust Wide-Area
Remote Execution
Mikhail Afanasyev ‧ Jose Garcia ‧ Brian Lum
1
Introduction



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
2
PlanetLab
Current distribution of 534 nodes over 253 sites
Introduction ‧ Mesh Tree ‧ Additional
3
The 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
4
The 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
5
PLuSH





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
6
PLuSH

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
7
Weaving the Mesh
1.
2.
3.
SSH authentication
forwarding
Building the tree
Adding robustness
Mesh Tree: SSH Forwarding ‧ Building the Tree ‧ Robustness
8
How SSH Works


Response
Agent listens on “agent socket”
which is a Unix domain socket.
Agent has private key.
SSH (on agent’s side) makes a
connection from Home PC to
SSHd (daemon) on PL1, who
has the public key.
Challenge

Challenge
Response
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
9
Our World with PlanetLab
Response
Challenge
Challenge
Response
Challenge
public key
public key
The slice breaks up PL1, so SSH cannot forward to SSHd
Mesh Tree: SSH Forwarding ‧Building the Tree ‧ Robustness
10
Our Solution
Challenge
SSH Mesh:
Response
SSH Mesh:
Challenge
Response
Response
Challenge
Response
Challenge
Challenge
public key
Response
public key
Client’s STDIN and STDOUT are connected to SSHd
Mesh Tree: SSH Forwarding ‧Building the Tree ‧ Robustness
11
Building 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
12
Macedon 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
13
Adding 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
14
Comparing the trees
Mesh Latency
100%
SSH-flat
SSH-tree
80%
60%
40%
20%
0%
0 sec
1 sec
2 sec
3 sec
4 sec
5 sec
6 sec
7 sec
8 sec
Latency
Introduction ‧ Mesh Tree ‧ Additional
15
Additional 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
16
Future Research Work


Comparison between more Mesh
overlay algorithms
Evaluate the performance difference
between SSH Mesh and Macedon
Introduction ‧ Mesh Tree ‧ Additional
17
Additional Thanks

We would like to thank the following
people for their help



Chris Tuttle
Jeannie Albrecht
Chip Killian
Introduction ‧ Mesh Tree ‧ Additional
18
Conclusion


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
19