Difference between revisions of "Private:pCDN:Demo"

From NMSL
(New page: Scenario Setup Scripts Media Files PlanetLab machines)
 
 
Line 1: Line 1:
 +
== Scenario ==
  
Scenario
+
In the demo we would have several [http://www.planet-lab.org PlanetLab] nodes as well as a couple more machines within NSL connected to the pCDN server that is running on nsl-win machine. We run a script that will start download several content files on the PlanetLab nodes. The downloaded content includes both audio (MP3) as well as video (AVI) files. The pCDN server monitor/manager application is shown through remote desktop on the screen. And each client at NSL has the Session Information window opened to show the progress of downloads and the sources from which the client downloads. We then use a Podcatcher software (e.g. [http://www.apple.com/itunes/download/ iTunes] on Windows or [http://amarok.kde.org/wiki/Download AmaroK] on Linux) to access an RSS feed on the nsl-win machine and stream one of the MP3 files. Streaming video is performed through [http://www.videolan.org/vlc/ VLC Media Player]. The modified URL (pointing to the localhost) found in the feed file for AVI content is copied to the Open dialog of the VLC player. This performs a progressive download by which the content is downloaded and played at the same time.
  
Setup
 
  
Scripts
+
== Assumptions ==
  
Media Files
+
We are assuming the PlanetLab slice name is '''sfu_pCDN''' and that the text file containing the nodes to be used is ''usable_nodes_1.txt'' (in case the nodes within the slice have been changed, a corresponding change to this file may be necessary). It is also assumed that the nodes already have a suitable JRE version (>= 1.6.0_14) installed on them, and that the pCDN-client contains the client files on those nodes. Finally, necessary shell scripts have been copied
 +
to the home directory.
  
PlanetLab machines
+
 
 +
== PlanetLab Nodes List ==
 +
 
 +
The nodes list file ([http://nsl.cs.sfu.ca/wiki/upload/3/38/usable_nodes_1.txt usable_nodes_1.txt]) can be found under /nsl/students/hamza/pCDN_Demo.
 +
 
 +
 
 +
== Scripts ==
 +
 
 +
The shell scripts that need to be present on the PlanetLab nodes for the demo are listed below. These can be found under /nsl/students/hamza/pCDN_Demo.
 +
 
 +
<pre>
 +
server_load.sh
 +
server_load_wget.sh
 +
</pre>
 +
 
 +
 
 +
== Media Files ==
 +
 
 +
The script that will be invoked on the PlanetLab nodes will download the following contents in a random order.
 +
 
 +
<pre>
 +
http://localhost:54321/579166DC2A20CF6E728588D2368B5920.avi
 +
http://localhost:54321/46642720C5E0E8C5D113FBA5BEA36FD5.avi
 +
http://localhost:54321/10DEB03C4AA1187551D9319457F865FD.avi
 +
http://localhost:54321/47557324E4E5BB9ADE2009D715CAF5B3.avi
 +
http://localhost:54321/6F6195E381882414E769285C4B5A13B5.mp3
 +
http://localhost:54321/14921F5CA4AC90111D80661A7F84A29A.mp3
 +
http://localhost:54321/B255411DCC161C65F1B74C437180F669.mp3
 +
http://localhost:54321/403FA66670B794F4DBF1540F9B4B5375.mp3
 +
http://localhost:54321/93C2B997A035835F415FBF6621F9F399.mp3
 +
http://localhost:54321/752DF84ACAE5D294C1F005F6A5836242.mp3
 +
</pre>
 +
 
 +
To simplify the download of any of these content using a Podcatcher (e.g. iTunes or AmaroK), we created an RSS feed containing them and made it accessible from nsl-win.
 +
 
 +
 
 +
== Steps ==
 +
 
 +
'''1.''' You need to have the private key that will authenticate you on PlanetLab nodes on the machine from which the nodes will be administered. You can use this private key by copying it to your ~/.ssh/ directory (corresponding public key has been imported to PlanetLab slice sfu_pCDN).
 +
 
 +
'''2.''' In the shell, we start the ssh-agent, and add the private key to its list of managed keys. (We assume the private key file is named '''id_rsa''')
 +
 
 +
<pre>
 +
eval `ssh-agent`
 +
ssh-add ~/.ssh/id_rsa
 +
</pre>
 +
 
 +
'''3.''' Now, we make sure that the '''media''' directory within the pCDN-client directory does not exist on the PlanetLab nodes by issuing the following command
 +
 
 +
<pre>
 +
parallel-ssh -h usable_nodes.txt -l sfu_pCDN -p 50 -t 60 -o /tmp/test1.out "sudo rm -R /home/sfu_pCDN/pCDN-client/media"
 +
</pre>
 +
 
 +
'''4.''' Run the client on the PlanetLab nodes and let them start downloading some content
 +
 
 +
<pre>
 +
parallel-ssh -h usable_nodes_1.txt -l sfu_pCDN -p 50 -t 180 -o /tmp/test1.out "sudo nohup ./server_load.sh start"
 +
</pre>
 +
 
 +
'''5.''' Start a Podcatcher on one of the clients running in NSL and add a subscription to the following feed. Then pick one of the MP3 file in the feed and start playing it. The file should start downloading while being played at the same time. You can monitor the download progress using the Session Information window of the pCDN client.
 +
 
 +
<pre>
 +
http://nsl-win.cs.surrey.sfu.ca/nsl.xml
 +
</pre>
 +
 
 +
'''6.''' Start VLC on another client and use one of the following URLs to progressively download video content.
 +
 
 +
<pre>
 +
http://localhost:54321/579166DC2A20CF6E728588D2368B5920.avi
 +
http://localhost:54321/46642720C5E0E8C5D113FBA5BEA36FD5.avi
 +
</pre>

Latest revision as of 18:54, 4 January 2010

Scenario

In the demo we would have several PlanetLab nodes as well as a couple more machines within NSL connected to the pCDN server that is running on nsl-win machine. We run a script that will start download several content files on the PlanetLab nodes. The downloaded content includes both audio (MP3) as well as video (AVI) files. The pCDN server monitor/manager application is shown through remote desktop on the screen. And each client at NSL has the Session Information window opened to show the progress of downloads and the sources from which the client downloads. We then use a Podcatcher software (e.g. iTunes on Windows or AmaroK on Linux) to access an RSS feed on the nsl-win machine and stream one of the MP3 files. Streaming video is performed through VLC Media Player. The modified URL (pointing to the localhost) found in the feed file for AVI content is copied to the Open dialog of the VLC player. This performs a progressive download by which the content is downloaded and played at the same time.


Assumptions

We are assuming the PlanetLab slice name is sfu_pCDN and that the text file containing the nodes to be used is usable_nodes_1.txt (in case the nodes within the slice have been changed, a corresponding change to this file may be necessary). It is also assumed that the nodes already have a suitable JRE version (>= 1.6.0_14) installed on them, and that the pCDN-client contains the client files on those nodes. Finally, necessary shell scripts have been copied to the home directory.


PlanetLab Nodes List

The nodes list file (usable_nodes_1.txt) can be found under /nsl/students/hamza/pCDN_Demo.


Scripts

The shell scripts that need to be present on the PlanetLab nodes for the demo are listed below. These can be found under /nsl/students/hamza/pCDN_Demo.

server_load.sh
server_load_wget.sh


Media Files

The script that will be invoked on the PlanetLab nodes will download the following contents in a random order.

http://localhost:54321/579166DC2A20CF6E728588D2368B5920.avi
http://localhost:54321/46642720C5E0E8C5D113FBA5BEA36FD5.avi
http://localhost:54321/10DEB03C4AA1187551D9319457F865FD.avi
http://localhost:54321/47557324E4E5BB9ADE2009D715CAF5B3.avi
http://localhost:54321/6F6195E381882414E769285C4B5A13B5.mp3
http://localhost:54321/14921F5CA4AC90111D80661A7F84A29A.mp3
http://localhost:54321/B255411DCC161C65F1B74C437180F669.mp3
http://localhost:54321/403FA66670B794F4DBF1540F9B4B5375.mp3
http://localhost:54321/93C2B997A035835F415FBF6621F9F399.mp3
http://localhost:54321/752DF84ACAE5D294C1F005F6A5836242.mp3

To simplify the download of any of these content using a Podcatcher (e.g. iTunes or AmaroK), we created an RSS feed containing them and made it accessible from nsl-win.


Steps

1. You need to have the private key that will authenticate you on PlanetLab nodes on the machine from which the nodes will be administered. You can use this private key by copying it to your ~/.ssh/ directory (corresponding public key has been imported to PlanetLab slice sfu_pCDN).

2. In the shell, we start the ssh-agent, and add the private key to its list of managed keys. (We assume the private key file is named id_rsa)

eval `ssh-agent`
ssh-add ~/.ssh/id_rsa

3. Now, we make sure that the media directory within the pCDN-client directory does not exist on the PlanetLab nodes by issuing the following command

parallel-ssh -h usable_nodes.txt -l sfu_pCDN -p 50 -t 60 -o /tmp/test1.out "sudo rm -R /home/sfu_pCDN/pCDN-client/media"

4. Run the client on the PlanetLab nodes and let them start downloading some content

parallel-ssh -h usable_nodes_1.txt -l sfu_pCDN -p 50 -t 180 -o /tmp/test1.out "sudo nohup ./server_load.sh start"

5. Start a Podcatcher on one of the clients running in NSL and add a subscription to the following feed. Then pick one of the MP3 file in the feed and start playing it. The file should start downloading while being played at the same time. You can monitor the download progress using the Session Information window of the pCDN client.

http://nsl-win.cs.surrey.sfu.ca/nsl.xml

6. Start VLC on another client and use one of the following URLs to progressively download video content.

http://localhost:54321/579166DC2A20CF6E728588D2368B5920.avi
http://localhost:54321/46642720C5E0E8C5D113FBA5BEA36FD5.avi