Archive forUncategorized

Automating the Simple Experiment: Loading rspec and running the experiment

(I) At this point you should have the following

1) A Request Rspec that contains information on what to execute and install on nodes. (see example)

2) Scripts that will automate the installation and execution process. (See previous blog post)

3) You will need to place the scripts on some webserver accessible from the GENI resources.

 

(II) Next you need to load the rspec into your slice. See the screenshot below:

Loading Rspec from file

Loading Rspec from file

 

Graph loaded from Rspec

Graph loaded from Rspec

(III) Submit your rpec for resource allocation and  then follow the steps that I showed earlier to log on to the nodes and see if everything was fine. You can also download your results from the nodes  you saved them in.

Comments off

Request rspec after removing the history state tag

<rspec type=”request” generated_by=”Flack” generated=”2013-08-20T14:46:15Z” xsi:schemaLocation=”http://www.geni.net/resources/rspec/3 http://www.geni.net/resources/rspec/3/request.xsd ” xmlns:flack=”http://www.protogeni.net/resources/rspec/ext/flack/1″ xmlns:client=”http://www.protogeni.net/resources/rspec/ext/client/1″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://www.geni.net/resources/rspec/3″>

<node client_id=”VM” component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<interface client_id=”VM:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<interface client_id=”VM:if1″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<interface client_id=”VM:if2″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”181″ y=”191″ unbound=”true”/>
</node>
<node client_id=”VM-0″ component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<interface client_id=”VM-0:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”308″ y=”132″ unbound=”true”/>
</node>
<node client_id=”VM-1″ component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<interface client_id=”VM-1:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”108″ y=”297″ unbound=”true”/>
</node>
<node client_id=”VM-2″ component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<interface client_id=”VM-2:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<interface client_id=”VM-2:if1″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<interface client_id=”VM-2:if2″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”118″ y=”287″ unbound=”true”/>
</node>
<node client_id=”VM-3″ component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<interface client_id=”VM-3:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”108″ y=”297″ unbound=”true”/>
</node>
<node client_id=”VM-4″ component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<interface client_id=”VM-4:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”108″ y=”297″ unbound=”true”/>
</node>
<link client_id=”lan0″>
<component_manager name=”urn:publicid:IDN+emulab.net+authority+cm”/>
<interface_ref client_id=”VM-0:if0″/>
<interface_ref client_id=”VM:if0″/>
<property source_id=”VM-0:if0″ dest_id=”VM:if0″/>
<property source_id=”VM:if0″ dest_id=”VM-0:if0″/>
<link_type name=”lan”/>
<flack:link_info x=”-1″ y=”-1″ unboundVlantag=”true”/>
</link>
<link client_id=”lan1″>
<component_manager name=”urn:publicid:IDN+emulab.net+authority+cm”/>
<interface_ref client_id=”VM:if1″/>
<interface_ref client_id=”VM-1:if0″/>
<property source_id=”VM:if1″ dest_id=”VM-1:if0″/>
<property source_id=”VM-1:if0″ dest_id=”VM:if1″/>
<link_type name=”lan”/>
<flack:link_info x=”-1″ y=”-1″ unboundVlantag=”true”/>
</link>
<link client_id=”lan2″>
<component_manager name=”urn:publicid:IDN+emulab.net+authority+cm”/>
<interface_ref client_id=”VM:if2″/>
<interface_ref client_id=”VM-2:if0″/>
<property source_id=”VM:if2″ dest_id=”VM-2:if0″/>
<property source_id=”VM-2:if0″ dest_id=”VM:if2″/>
<link_type name=”lan”/>
<flack:link_info x=”-1″ y=”-1″ unboundVlantag=”true”/>
</link>
<link client_id=”lan3″>
<component_manager name=”urn:publicid:IDN+emulab.net+authority+cm”/>
<interface_ref client_id=”VM-2:if1″/>
<interface_ref client_id=”VM-3:if0″/>
<property source_id=”VM-2:if1″ dest_id=”VM-3:if0″/>
<property source_id=”VM-3:if0″ dest_id=”VM-2:if1″/>
<link_type name=”lan”/>
<flack:link_info x=”-1″ y=”-1″ unboundVlantag=”true”/>
</link>
<link client_id=”lan4″>
<component_manager name=”urn:publicid:IDN+emulab.net+authority+cm”/>
<interface_ref client_id=”VM-2:if2″/>
<interface_ref client_id=”VM-4:if0″/>
<property source_id=”VM-2:if2″ dest_id=”VM-4:if0″/>
<property source_id=”VM-4:if0″ dest_id=”VM-2:if2″/>
<link_type name=”lan”/>
<flack:link_info x=”-1″ y=”-1″ unboundVlantag=”true”/>
</link>
<client:client_info name=”Flack” environment=”Flash Version: LNX 11,5,31,137, OS: Linux, Arch: x86, Screen: 1024×600 @ 72 DPI with touchscreen type none” version=”v14.100″ url=”https://www.emulab.net/protogeni/flack2/flack.swf”/>
<flack:slice_info view=”graph”/>
</rspec>

Comments off

Request Rspec — Downloaded (needs editing)

 

<rspec type=”request” generated_by=”Flack” generated=”2013-08-20T14:46:15Z” xsi:schemaLocation=”http://www.geni.net/resources/rspec/3 http://www.geni.net/resources/rspec/3/request.xsd ” xmlns:flack=”http://www.protogeni.net/resources/rspec/ext/flack/1″ xmlns:client=”http://www.protogeni.net/resources/rspec/ext/client/1″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://www.geni.net/resources/rspec/3″>
<node client_id=”VM” component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<interface client_id=”VM:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<interface client_id=”VM:if1″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<interface client_id=”VM:if2″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”181″ y=”191″ unbound=”true”/>
</node>
<node client_id=”VM-0″ component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<interface client_id=”VM-0:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”308″ y=”132″ unbound=”true”/>
</node>
<node client_id=”VM-1″ component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<interface client_id=”VM-1:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”108″ y=”297″ unbound=”true”/>
</node>
<node client_id=”VM-2″ component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<interface client_id=”VM-2:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<interface client_id=”VM-2:if1″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<interface client_id=”VM-2:if2″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”118″ y=”287″ unbound=”true”/>
</node>
<node client_id=”VM-3″ component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<interface client_id=”VM-3:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”108″ y=”297″ unbound=”true”/>
</node>
<node client_id=”VM-4″ component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<interface client_id=”VM-4:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”108″ y=”297″ unbound=”true”/>
</node>
<link client_id=”lan0″>
<component_manager name=”urn:publicid:IDN+emulab.net+authority+cm”/>
<interface_ref client_id=”VM-0:if0″/>
<interface_ref client_id=”VM:if0″/>
<property source_id=”VM-0:if0″ dest_id=”VM:if0″/>
<property source_id=”VM:if0″ dest_id=”VM-0:if0″/>
<link_type name=”lan”/>
<flack:link_info x=”-1″ y=”-1″ unboundVlantag=”true”/>
</link>
<link client_id=”lan1″>
<component_manager name=”urn:publicid:IDN+emulab.net+authority+cm”/>
<interface_ref client_id=”VM:if1″/>
<interface_ref client_id=”VM-1:if0″/>
<property source_id=”VM:if1″ dest_id=”VM-1:if0″/>
<property source_id=”VM-1:if0″ dest_id=”VM:if1″/>
<link_type name=”lan”/>
<flack:link_info x=”-1″ y=”-1″ unboundVlantag=”true”/>
</link>
<link client_id=”lan2″>
<component_manager name=”urn:publicid:IDN+emulab.net+authority+cm”/>
<interface_ref client_id=”VM:if2″/>
<interface_ref client_id=”VM-2:if0″/>
<property source_id=”VM:if2″ dest_id=”VM-2:if0″/>
<property source_id=”VM-2:if0″ dest_id=”VM:if2″/>
<link_type name=”lan”/>
<flack:link_info x=”-1″ y=”-1″ unboundVlantag=”true”/>
</link>
<link client_id=”lan3″>
<component_manager name=”urn:publicid:IDN+emulab.net+authority+cm”/>
<interface_ref client_id=”VM-2:if1″/>
<interface_ref client_id=”VM-3:if0″/>
<property source_id=”VM-2:if1″ dest_id=”VM-3:if0″/>
<property source_id=”VM-3:if0″ dest_id=”VM-2:if1″/>
<link_type name=”lan”/>
<flack:link_info x=”-1″ y=”-1″ unboundVlantag=”true”/>
</link>
<link client_id=”lan4″>
<component_manager name=”urn:publicid:IDN+emulab.net+authority+cm”/>
<interface_ref client_id=”VM-2:if2″/>
<interface_ref client_id=”VM-4:if0″/>
<property source_id=”VM-2:if2″ dest_id=”VM-4:if0″/>
<property source_id=”VM-4:if0″ dest_id=”VM-2:if2″/>
<link_type name=”lan”/>
<flack:link_info x=”-1″ y=”-1″ unboundVlantag=”true”/>
</link>
<client:client_info name=”Flack” environment=”Flash Version: LNX 11,5,31,137, OS: Linux, Arch: x86, Screen: 1024×600 @ 72 DPI with touchscreen type none” version=”v14.100″ url=”https://www.emulab.net/protogeni/flack2/flack.swf”/>
<history:slice_history backIndex=”3″ note=”Established lan0″ xmlns:history=”http://www.protogeni.net/resources/rspec/ext/history/1″>
<history:state>eNqVUl1r20AQfO+vWO7Vsk8nOU4QVmghFAJOWnAJoS/mfF5bR6U79T4sub++J53SNA+F9Elib3dm
d2bWxrYowF1aLInBnx6tI3BChYY7POz2l5J8rrn48VexJFnK8nl6M8/Sb2xZLK+KPP1OoLeysKLC
hm+04E5qVZLKubagtOu6RZiXC4WOGrTaG4GWjuQ0h3d10Wm9RW8PENiaWtniOOz2hqY12ul/omDv
6DhD2QuEqCUq958YcegVJNz+BqHLF9qcaJamjD4/bLajLHOprONK4DT1TnnI7QeAtdIHhEi7k8GD
pwcCQjetVkOl4Yqf0Iwv3qii9ftaCnko7u8eZ9j4mu8H8Bn3rtJGustMNASwF7W38hy8P/La4sgU
uGwdamY3pAIUb8JzhJjrFtX5F6FT36hkMWy2k+qooQ/RWKYEQmjYKmjj1V57FVZyxmOcWtOhffyL
xxQvNw0AkWwKXKCSRqtmdCfUbAVPaGzIVQGbx2dgLLlKcpaw/DqBL9tQlMr3CXwyoiqgv1klsBUG
MbSzNFv2qzSFj3Cdwd3Xe+ikq8BpLyo79kA8NqhJ4BxZSnJmywVLw0He1NEsO7n1Kin9E5YYrCx+
FrY7ThdHlYKmYpLpLLErycnwthpa1tHo298e6TTp</history:state>
<history:state>eNrNU01r20AQvfdXDHu1rNVKTmKEFVoIhYCTFhxC6MXI67G1VNpV98OS++u70ipNcwhNbz0JRjPv
zXv7ZqVNixzsucWCaPzh0FgCR5SoS4v77e5ckM91yb//USxImrBsniznafLAFvniIs/YNwK9Ebnh
FTblWvHSCiULUlnb5pR2XRf7eRFLtFSjUU5zNHQkpxm8q4tO68W92YNna2pp8sOw2yuaViur3kTB
3tJxhrJnCF4LlPYfMcLQC4jX/gqhy2KljzRNEkaf7tab0Za5kMaWkuM09U57yPUHgJVUe4RAuxX+
DR7vCHDVtEoOlaaU5RH1+MdpmbduVwsu9vntzf0MG1eXuwF8VjpbKS3secYbAtjz2hlx8m9/KGuD
I5PnMrWv6e2QCpBl438HiLlqUZ5+Ejr1jU7mw2ZbIQ8Keh+NRULAh4Zdem+c3Ckn/UpWOwxTKzq0
v6FonvyXmrJkGTRl6d80BTn5s6oBIJBNR+SphFayGRPna6aCR9TG30oO6/snYCy6iDIWUu0RAu1W
+Du4uyHAVd0o2UfqQhZH1MOJ0zJr3K4SXOyz66vbCdauKnY9+KRwtlRa2IcJrwlgxytnxMnf/aGo
DA5MnstUPqa3/asAWdT+OEBMVYPy9IvQMW9wMus72wp5UNDlhC29J/7RsAu/O7lTTvqWrHYYqla0
T39F0TR+l5rSeBk0pcl/aGLv855GTcnF4m+agpzsSVUPEMjGj8FTCa1kPUyRj5kS7lAbP/8ZrG/v
gbHoLEpZxNJFBF82Piik6yL4pHmZQbc8j2DDNaJPZ3Ey787jGD7CIoGrr9fQCluCVY6XZsiBINa7
SeAUWHJyYvMZi/3jcboKQ2XGqXq2lP4e6vABJGGbmfYwKg4ueU/5aNNJYJuToy6ask9ZhYG8fATR
ScEj</history:state>
<history:state>eNrNVV1vmzAUfd+vuOK1IcaQtikK1TZVkyq13aROVbWXyDEmWAWb2SaQ/foZDG3SDy3bw7Yn4HLu
uT7n2tcLpStGwWwrlniKfa+ZNh6smWCKGJYuV9vE+1QQ+rATTLwwwJEfzP0w+Ipn8ew4np1986DV
7zNSaNZXsrV0YWNq2e0KEKS0vx2FLysmNj88NOC4MExlhD5bWMyzYKCyoN7u+BG65CKTQNLU6tQf
ZS3SsTisdr/GGugxcwg4vs4OR9UmHp7bRtidis/ssxYDj1H1QLNAHfwNG/3gvzXSD/66lVEwd1ZG
4R9Yif+9la9tj0FTeHb6K00FFw+7mgoiRv8XL5QN6zhY24tuLxXLXu34Acg9nB1YFVNmC2507JNB
aqfm4Vkvcp6tqbNotw3Womfm94jRfN8dTf/pZN7ZDEPW+x3ocvo3JzIetXYsrs5wDdlmcyVF2c9s
sybx1opUeQdZuPF//hMbJYah</history:state>
</history:slice_history>
<flack:slice_info view=”graph”/>
</rspec>

 

Comments off

Automating the Simple Experiment: Editing Rspecs

The first part of this second step is to understand the rspecs, specifically the request rspec. The GENI wiki talks about various types of Rspecs and points to resources that may be used to create your own (see link). Honestly, I did not find them useful as yet because it has too much information to be useful at this point. May be when I become a power user, I can make more sense out of those. I think, the best way to write and learn to write a Request Rspec is to actually read one that can be downloaded from your flack interface after you create your network graph. Take a look at the rspec that I got from the simple experiment along with the explanation of how I got it.

Now we need to see how to modify it. First, lets see how we can modify the Rspec so that the execution of our scripts on VM and VM-0 happens automatically on system boot up.

All we need to do is to add a “services” tag with three other tags in it to execute a chmod command to make our script executable, then to execute the script and finally to download the script on to the nodes. This is done by adding the following within the  tags for VM and VM-0

<services>
<execute command=”sudo chmod +x /local/client_script.sh” shell=”sh”/>
<execute command=”sudo /local/client_script.sh” shell=”sh”/>
<install install_path=”/local” url=”http:///theurl.com/client_install.tar.gz”/>
</services>

<services>
<execute command=”sudo chmod +x /local/server_script.sh” shell=”sh”/>
<execute command=”sudo /local/server_script.sh” shell=”sh”/>
<install install_path=”/local” url=”http:///theurl.com/server_install.tar.gz”/>
</services>

If you read the services tag carefully, you will see that I need a client_script.sh and a server_script.sh that I am going to execute on the nodes. These files are contained in client_install.tar.gz and server_install.tar.gz respectively. The only way to get them on the nodes on GENI is to download from a web server. This means you need to have a webserver where you can freely keep your files so that GENI resources can see them.

The final Request rspec can be found here.

 

 

 

Comments off

Modified Request Rspec for Automated Simple Experiment

Here is the Request Rspec that was modified so that it contains the execute and installation commands.

___________________________________________________________________

<rspec type=”request” generated_by=”Flack” generated=”2013-08-20T14:46:15Z” xsi:schemaLocation=”http://www.geni.net/resources/rspec/3 http://www.geni.net/resources/rspec/3/request.xsd ” xmlns:flack=”http://www.protogeni.net/resources/rspec/ext/flack/1″ xmlns:client=”http://www.protogeni.net/resources/rspec/ext/client/1″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://www.geni.net/resources/rspec/3″>
<node client_id=”VM” component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<services>
<execute command=”sudo chmod +x /local/client_script.sh” shell=”sh”/>
<execute command=”sudo /local/client_script.sh” shell=”sh”/>
<install install_path=”/local” url=”http://www.myweb.com/client_install.tar.gz”/>
</services>
<interface client_id=”VM:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<interface client_id=”VM:if1″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<interface client_id=”VM:if2″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”181″ y=”191″ unbound=”true”/>
</node>
<node client_id=”VM-0″ component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<services>
<execute command=”sudo chmod +x /local/server_script.sh” shell=”sh”/>
<execute command=”sudo /local/server_script.sh” shell=”sh”/>
<install install_path=”/local” url=”http://www.myweb.com/server_install.tar.gz”/>
</services>
<interface client_id=”VM-0:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”308″ y=”132″ unbound=”true”/>
</node>
<node client_id=”VM-1″ component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<interface client_id=”VM-1:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”108″ y=”297″ unbound=”true”/>
</node>
<node client_id=”VM-2″ component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<interface client_id=”VM-2:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<interface client_id=”VM-2:if1″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<interface client_id=”VM-2:if2″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”118″ y=”287″ unbound=”true”/>
</node>
<node client_id=”VM-3″ component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<interface client_id=”VM-3:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”108″ y=”297″ unbound=”true”/>
</node>
<node client_id=”VM-4″ component_manager_id=”urn:publicid:IDN+emulab.net+authority+cm” exclusive=”false”>
<sliver_type name=”emulab-openvz”/>
<interface client_id=”VM-4:if0″>
<flack:interface_info addressBound=”false” bound=”false”/>
</interface>
<flack:node_info x=”108″ y=”297″ unbound=”true”/>
</node>
<link client_id=”lan0″>
<component_manager name=”urn:publicid:IDN+emulab.net+authority+cm”/>
<interface_ref client_id=”VM-0:if0″/>
<interface_ref client_id=”VM:if0″/>
<property source_id=”VM-0:if0″ dest_id=”VM:if0″/>
<property source_id=”VM:if0″ dest_id=”VM-0:if0″/>
<link_type name=”lan”/>
<flack:link_info x=”-1″ y=”-1″ unboundVlantag=”true”/>
</link>
<link client_id=”lan1″>
<component_manager name=”urn:publicid:IDN+emulab.net+authority+cm”/>
<interface_ref client_id=”VM:if1″/>
<interface_ref client_id=”VM-1:if0″/>
<property source_id=”VM:if1″ dest_id=”VM-1:if0″/>
<property source_id=”VM-1:if0″ dest_id=”VM:if1″/>
<link_type name=”lan”/>
<flack:link_info x=”-1″ y=”-1″ unboundVlantag=”true”/>
</link>
<link client_id=”lan2″>
<component_manager name=”urn:publicid:IDN+emulab.net+authority+cm”/>
<interface_ref client_id=”VM:if2″/>
<interface_ref client_id=”VM-2:if0″/>
<property source_id=”VM:if2″ dest_id=”VM-2:if0″/>
<property source_id=”VM-2:if0″ dest_id=”VM:if2″/>
<link_type name=”lan”/>
<flack:link_info x=”-1″ y=”-1″ unboundVlantag=”true”/>
</link>
<link client_id=”lan3″>
<component_manager name=”urn:publicid:IDN+emulab.net+authority+cm”/>
<interface_ref client_id=”VM-2:if1″/>
<interface_ref client_id=”VM-3:if0″/>
<property source_id=”VM-2:if1″ dest_id=”VM-3:if0″/>
<property source_id=”VM-3:if0″ dest_id=”VM-2:if1″/>
<link_type name=”lan”/>
<flack:link_info x=”-1″ y=”-1″ unboundVlantag=”true”/>
</link>
<link client_id=”lan4″>
<component_manager name=”urn:publicid:IDN+emulab.net+authority+cm”/>
<interface_ref client_id=”VM-2:if2″/>
<interface_ref client_id=”VM-4:if0″/>
<property source_id=”VM-2:if2″ dest_id=”VM-4:if0″/>
<property source_id=”VM-4:if0″ dest_id=”VM-2:if2″/>
<link_type name=”lan”/>
<flack:link_info x=”-1″ y=”-1″ unboundVlantag=”true”/>
</link>
<client:client_info name=”Flack” environment=”Flash Version: LNX 11,5,31,137, OS: Linux, Arch: x86, Screen: 1024×600 @ 72 DPI with touchscreen type none” version=”v14.100″ url=”https://www.emulab.net/protogeni/flack2/flack.swf”/>
<flack:slice_info view=”graph”/>
</rspec>

___________________________________________________________________

Comments off

Experiments using flack

Now you are ready for your first experiment!!

The next steps are to design the network and reserve resources…

1) Select the sites from where you want to get resources. You will see something like this

list_resources

As a beginner, I used only one site to start with, it can be any site you like. Once you make that selection. click continue at the bottom of the popup window. This will take you to the next screen where you will see that the site is “discovering resources”. See screenshot below.

discovering

 

You might have to wait for sometime, just stare at the screen or get a warm beverage to distract yourself and resist the urge to back or refresh buttons on your browser. Eventually, the wait will be over and you will see the following screen with a message on the top “Get user: Finished”

wait_is_over

2) Now you can add a new slice, by clicking  the button near the top of the left bar. Give your slice a meaningful name to reflect the kind of work you will be doing. I am calling mine testscenario. You will see the following screen: create_slice

3) Add some resources to your slice. You can add a PC or a VM. You can also add a lan. You just need to click on the resource you want to add like this:

add_resource

CAUTION: If you ever make a mistake on this page or any other point, do NOT hit the back button on your browser. If you do, then you have to start all over again!! I have made this mistake a countless number of times. 

Try not to add a bare metal PC in your experiment although that is what I show in this example. Bare PCs are used only if there is a special need for it in an experiment. Most experiments can work just as well with VMs.

4) After adding resources to your slice, you need to connect them. Simply click near (no on) one of the objects you want to connect. You will see a black line. Drag the mouse to the object you want to connect to. A green line will appear and your objects will be connected.

Note that this is a logical connection not a physical one. So the two objects may physically be separated from each other but are logically connected. Here is my sample network.

sample_network

 

5) Now click the submit button, click yes on the pop-up message to confirm the creation of a new sliver and wait for the request and response to complete. The background of your scenario will turn yellow and then finally green when the sliver is created and ready for you.

Sliver resources being reserved

Sliver resources being reserved 

Sliver resources reserved, ready to start experiments

Sliver resources reserved, ready to start experiments

Next we will see how to log on to individual reserved resources…..

 

Comments off

Logging on to GENI

Once you have your GENI credentials, you will need to generate your ssl and ssh keys and then you can go on to the main tutorial and start exercising your fingers while straining your eyes and  neck….

This is how you will logon to the site and start your first experiment. After speaking with experts in the field, I came to the conclusion to use flack rather than OMNI for my experiment needs. Therefore, I am going to show how to use flack (If you did not take my advise from the previous post, you don’t know what flack is :D)

LOGIN STEPS

1) Go to https://portal.geni.net/ and click on USE GENI button

2) If you are affiliated with one of the partners, select that school otherwise type GENI Project Office in the textbox and allow auto complete

3) If this is the first time you logged in, you will need to wither create a project or join a project. If you have the project lead privilege, you can create a project yourself. Otherwise, you can either request a lead privilege or ask someone else to create a project for you.

4) Once you have created or joined a project, you can see the project when you scroll down. You should click on “Create  Slice”, provide a slice name and description. Remember that slice names should contain only letters and numbers.

5) If this is your first time on GENI, before you can do anything meaningful, the ssh keys should be uploaded. This process needs to be done only once.

6) GENERATING SSH KEYS: You can follow the instructions on the next few screens to generate and download a private key. You must save the private key somewhere so that you have access to it when you connect to the GENI resources from different computers.

7) Now you can go back to the slice from the GENI portal home page and click on “Launch Flack”

8) Next time you login on GENI portal, you can go straight to your slice (or create a new one) and launch flack

 

Great!! You are now seeing flack on your screen (except if you don’t have adobe flash player installed.. if this is you then go ahead and install flash first)

 

 

 

Comments off

Getting to know GENI

While waiting to get your account, a serious experimenter will start getting used to the GENI terminology. Best place for that would be a GENI summer school or a GENI engineering conference. But one may not have time or money to go to these events. Therefore, we awaken the self-learner within ourselves and decide to learn by staring at a computer screen. If you are going to take this route, then spend a good 2 hours staring at these sites: http://groups.geni.net/geni/wiki/GeniNewcomersWelcome  ,   http://groups.geni.net/geni/wiki/GENIConcepts and take notes because there is a lot to read and remember……

 

Comments off

GENI: First step

Before starting to get the feel of GENI, one needs to get a GENI account. I requested one from https://portal.geni.net/idp/request.html.  Once you fill out all the details, it can take a few days to get a response from the project office at BBN. Once your request is approved, you will receive a bunch of emails, encouraging you to seek help if you need and getting you all excited about GENI and its potentials. Sure it is exciting but you will be the true judge of that……

Comments off

GENI: Introduction

I am about to spend the last part of my summer writing about my experience with the GENI portal and explaining how to get started with this large federation of networking testbeds. This blog is meant to be highly technical and is being written with the hope that systems researchers working in  the networking area at CUNY will benefit from the information.

First, an overview of GENI. The best way to fond out what GENI is all about is to go on its website. http://www.geni.net/ and read the “ABOUT GENI” page. In short, GENI is a platform that connects various networking testbeds around the globe so that researchers can perform at-scale experiments to test their bright, futuristic networking ideas. GENI is a work in progress and is being managed by BBN. BBN is refered to as the “Geni-GPO” throughout the GENI literature.

Now that we know what is GENI, lets start working……

 

Comments off

Skip to toolbar