Creating a User Account
Using the NETMODE testbed
Example: Getting a slice and reserving resources using the Omni command-line tool
Advertisement of available resources
Create a slice
We have made a reservation. Now what?
The first step you need to do before you can use the NETMODE Wireless Testbed is to register for an account in the Fed4FIRE portal . Fed4FIRE works with X.509 certificates to authenticate and authorize experimenters on testbeds. Click on Sign up now box to request a new account and follow the registration guidelines by filling in the required information. Note that you should use the default Fed4FIRE authority, fed4fire.global. For more information regarding the Fed4Fire procedures, (see http://doc.fed4fire.eu/).
If all goes well, you will receive an email in your mailbox with an activation link to verify your email address. Now, it can take some time to have a Fed4FIRE administrator or project administrator approved your request. You will receive a welcome email when that is done. After that, you can login on the authority portal. At this time, you may continue with the rest of the tutorial.
You now have access to the NETMODE Wireless Testbed resources. All access to the NETMODE resources occurs through the slice abstraction. You can create a new slice (experiment), reserve resources (wireless nodes and channels), get a list of your reservations, delete a slice, etc., by using one of the following provisioning tools that are available for experimenters: i.e.,
Omni is a GENI command line tool for reserving resources. After installing Omni client in your personal machine, you should appropriately configure your installation by manually modifying the configuration file (normally, located at ~/.gcf/omni_config in your machine) towards specifying your Fed4FIRE credentials and the SSH key you want to use for accessing the resources. In the following example, the user alice has an account at Fed4FIRE and modifies her Omni configuration file as follows:
default_cf = fed4fire
users = alice
urn = urn:publicid:IDN+fed4fire:global+user+alice
keys = ~/.ssh/alice_ssh_key.pub
For more information regarding Omni software, see http://trac.gpolab.bbn.com/gcf/wiki/Omni.
To modify accordingly the [fed4fire] section in your Omni configuration file, you should first gather information about your Fed4FIRE account by the Fed4FIRE portal, i.e., your username, your certificate and your private SSH key that corresponds to the public SSH key that is uploaded in the Fed4FIRE portal. Furthermore, in order to login to the compute resources that you allocate, you will need a pair of SSH keys. If you already have a key pair that you want to use, make sure that you have a copy of the public key (e.g., ~/.ssh/alice_ssh_key.pub) on the host where you installed the Omni software and modify accordingly the [username] section. Otherwise, you have to run the following command to create a new SSH key pair:
The AM of the NETMODE is accessible through GENI AM v2: https://vnews.netmode.ntua.gr:8001
The first step in completing a reservation using SFA is to get an advertisement of the available resources. Below we quote a sample advertisement originated from the NETMODE AM. The RSpecs are based on GENI v3 with extensions regarding WiFi channels and reservations.
The Omni client can be used for getting the corresponding advertisement (based on the above omni configuration file) by typing:
omni -V 2 -a netmode listresources
Based on the above advertisement, we can conclude that:
- Two nodes are available (node1 and node20)
- Node1 (hardware type: alix3d2) has one interface with ip 10.0.0.1.
- Node20 (hardware type: Intel Atom) has one interface with ip 10.0.0.20.
- Channels 1 and 2 are also available with frequencies 2.412GHz and 2.417GHz, respectively.
- There is one active lease from client_id=”bob”, that is being referred by node1. Node1 is reserved during the dates that are listed in the corresponding lease.
Select the name of your slice and issue the following omni command
omni -V 2 -a netmode createslice
After inspecting an advertisement, we have all the required information to generate a request for making a new reservation with the available resources. For example, if Alice wants to create a new lease that reserves node20 from "2015-05-21T10:00:00Z" to "2015-05-21T18:00:00Z", she has to generate and send the following RSpec:
The corresponding omni command to request the above reservation, e.g., which is defined in the file request_rspec.xml, follows
omni createsliver -a netmode request_rspec.xml
After a request is sent, a response comes back in the form of a manifest. For instance, the manifest of the above reservation request is:
This informs us that the request has successfully created a lease from "2015-05-21T10:00:00Z" to "2015-05-21T18:00:00Z" for node20. We can also see that the client_id tags, which we have sent with the request RSpec, are now associated with unique IDs assigned by the AM itself.
The manifest of your reservation can be also obtained by using the following omni command
omni -V 2 -a netmode listresources
The next step is to connect to the NETMODE controller server (vnews.netmode.ntua.gr). You can connect to the controller via ssh with the credentials that can be found in the manifest of your reservation. For example,
Thus, the experimenter can accordingly open a secure shell connection to "vnews.netmode.ntua.gr" using "fed4fire.global." as the username and the ssh private key that corresponds to the public SSH key that is being referred in the utilized provisioning tool (e.g., in the omni configuration file) in order to login to the reserved compute resources. For example, if the location of the private key is ~/.ssh/alice_ssh_key.pkey and the name of your slice is alice_experiment, you should type
$ ssh -i ~/.ssh/alice_ssh_key.pkey
Once you have been connected via ssh to the NETMODE Testbed controller, the next step is to load an image on your reserved resources. For this purpose, you have to reboot the reserved nodes in PXE mode issuing the command (e.g., for the node1):
$ /tools/bootramdisk.sh 1
$ /tools/power.sh 1
Then you can load your own image, e.g. image.ndz, or select the existing baseline image, i.e., baseline_image.ndz, by issuing the command
$ omf load -i baseline_image.ndz -t omf.netmode.node1
Especially for nodes 19 and 20, you should use “ubuntu-zabbix_enabled.ndz” as the baseline image.
You can also load an image to many nodes simultaneously using a comma separated list, for example:
$ omf load -i baseline_image.ndz -t omf.netmode.node1, omf.netmode.node5
Once the loading procedure is successfully completed, you can connect via ssh into the reserved nodes. In particular, for the baseline image, you should connect via ssh as root with password “voyage”. For instance, in order to connect to node1, you should type
$ ssh root@node1
For security reasons and in order to ensure that no other user has access to your resources during your reservation, you should add a root password. This can done with the command: $ passwd
Since you have root privileges, you can further configure the image as you wish.
In order to save the image from one of your nodes and maintain the changes you have made – thus, you don’t have to follow the above steps again – you can issue the commands (e.g., for the node1) from the NETMODE controller (vnews.netmode.ntua.gr):
$ /tools/bootramdisk.sh 1
$ /tools/power.sh 1
Now that your node is in PXE mode you can save the image with the command:
$ omf save -n omf.netmode.node1
The image is saved in the directory /var/lib/omf-images-5.4 with extension .ndz and a name containing your slice name, the node name and the date & time when you issued the omf save command. You can then rename the image into something more meaningful to you, but don’t forget to put the .ndz extension.
You are now ready to run your experiments.