...
Create an SSH Public/Private Key Pair
Do not reserve resources before you have your public key generated/uploaded to GENI. You will be unable to access your resources if you omit this step. |
---|
Access to resources we reserve in GENI is granted through registered public keys only. We must use our public key's private counterpart when logging into GENI resources. After we reserve resources, such as a VM, our public keys will have already been uploaded to these resources, which serves as a whitelist. The real advantage is not having to enter any passwords when logging in. If you are prompted for a password when attempting to access a GENI resource you have reserved, (1) either the resource is not yours or your resource has not been fully initialized yet (i.e. your public key hasn't been copied to it yet) or (2) you are using the wrong private key when attempting to login.
...
Jacks is a JavaScript-based GUI where you can define your slices in graphical way without the need to actually write an rspec by hand. There are some types of exotic slices that still require "massaging" an rspec manually in order to get the exact topology needed. However, for this course, everything we do will be straightforward enough to use Jacks.
Reserve your Resources
At this point, we have defined our topology by means of a slice; however, it's only on paper and doesn't exist anywhere. To reserve the resources we've asked for, simply click the "Reserve Resources" button underneath Jacks. This will prompt a new page to load in which you can view the reservation's status. Do not leave this page until the timer has stopped and indicates "Finished". This page will tell us if there is an error in our reservation, so it is important that we wait to verify everything checked out okay.
Since GENI racks are shared by many users all over the country, there might be a time when the rack you choose cannot handle any more reservations. To view the current status of the GENI racks, you can use this page. If you find that the rack is being heavily used, try to pick another that will suit your experiment. A simple Google search for rack names (e.g. Clemson InstaGENI) will tell you where they are in the country.
Wait
After you reserve your resources, depending on the load of the aggregates where they're being requested, it might take a few moments to them to become available to you.For our demo topology, we'll create a linear LAN consisting of a switch and two end hosts. Each end host will be connected to the switch via a point-to-point link.
To create a slice with Jacks, from the GENI dashboard, perform the following steps:
- Select "New Slice".
- Then, under our course project, give the slice a name, optionally a description, and click "Create Slice".
- Next, we'll want to add resources to the slice by selecting "Add Resources" on the slice's page.
- At this point, Jacks has been launched, and we can drag and drop VMs, physical servers, links, and aggregates/sites to create our topology.
- Start by choosing an aggregate for your site. Select "Site 1", and choose some XXX InstaGENI aggregate from the list. Note that GPO InstaGENI and other racks close to the top of the list are typically used more often, as they are the low-hanging fruit. I will use Clemson InstaGENI for an example, but you should use either what has been assigned or what looks to be available based on the XEN server load for each aggregate.
- Next, drag three XEN VMs to the canvas. Because we do not have more than one site in this demo, the VMs can be dropped anywhere and they will be a part of Site 1.
- The VMs we've added to our slice have default names; however, it's recommended they be renamed to something more meaningful. For this demo, we'll have two end hosts and a switch interconnecting them. Thus, let's name "node-0" "host-1" and "node-2" "host-2". Likewise, we can name "node-1" "switch" instead. It is important the names be unique in your slice. To edit any property of a VM, simply select the VM and a panel will appear with a list of options to scroll through, one of which is the "Name" of the VM.
- At this point, we've named our VMs, but we haven't specified the operating system (OS). A good general-purpose OS is "Ubuntu 14 with OVS by Niky". It includes everything necessary to make a VM function as either a switch or an end host. As such, we'll use it in this demo and throughout the course. The OS can be selected for each VM by modifying the "Disk Image" parameter using the same technique we used to modify the VM names.
- The next step after creating the VMs is to link them up. For us, we want the two end host VMs to be linked together via the switch VM. Thus, we'll create two links by hovering over a VM and slowly moving the cursor away. A black line will appear, at which point we can click and drag to the VM where we want then link to terminate. For our demo topology, we'll create a link between "host-1" and "switch" and between "host-2" and "switch".
- The final topology appears as follows.
It's a good idea to back up our topologies so that we can reuse them without having to draw them over again. Underneath the Jacks canvas are ways to export and import existing rspecs. To download the rspec representing the topology we've drawn, select "Download".
Note that if you want to scroll in the webpage, you must first move the cursor to outside the Jacks canvas.
If in the future, we wish to reference the downloaded rspec in a new slice, we can select the "File" radio button, and select "Choose File". Browse to the rpsec, select it, and Jacks will render it on the canvas where we can then add to it, remove from it, or simply reserve it as-is.
Reserve your Resources
At this point, we have defined our topology by means of a slice; however, it's only on paper and doesn't exist anywhere. To reserve the resources we've asked for, simply follow these steps:
- Click the "Reserve Resources" button underneath the Jacks canvas at the bottom of the webpage.
- This will prompt a new page to load in which you can view the reservation's status.
- Do not leave this page until the timer has stopped and indicates "Finished". This page will tell us if there is an error in our reservation, so it is important that we wait to verify everything checked out okay. If we were to see an error, it's likely due to rack oversubscription or maintenance. Go back to Jacks, and try a different aggregate. Upon success, we should see a list of all the resources per aggregate along with SSH login information for each machine.
- Go back to your slice by selecting your slice in the path (i.e. Home->Project ece-4400-6400->Slice do-not-name-test->Add Resources to do-not-name-test) at the top of the screen. Here, my slice name is "do-not-name-test" (which is a name you should never give your slice, as it has the word "test" in it).
- This will take us back to the main page for the slice, where we must wait for our resources to be allocated and booted. Depending on how busy the aggregate is and how complex your slice is, this may take a few minutes. Go get some coffee.
- The VMs will turn green when they are ready.
- If you need the SSH login information, select a VM and copy-and-paste your username's login info to the terminal or Putty. Note that the SSH port is denoted by the colon after the domain name.
Above, you'll see that my browser displayed the pane on the left such that the SSH port is cut off. If this happens to you, to make sure you copy the entire port, double-click the port, then press and hold shift and repeatedly press the left arrow key until you've selected the entire string to the beginning of your username. Then, copy it.
Alternatively, you can select "View Rspec" and see your SSH info in raw form. This is also a good way to feel appreciation for Jacks and be thankful that you don't have to write this by hand