| 1 | |
| 2 | = INSTOOLS Evaluation = |
| 3 | |
| 4 | The INSTOOLS V2.3 software evaluated has been downloaded from http://www.uky.emulab.net/downloads/INSTOOLSv2.3-client_code.tgz. |
| 5 | |
| 6 | Two versions were provided, the version number did not change. Minor changes occurred between the two versions. |
| 7 | |
| 8 | The version of INSTOOLS evaluated required Fedora Core 8 on both the Measurement Controller and Measurement Points for the Utah Testbed. |
| 9 | |
| 10 | Time Frame: This evaluation took place May 20-25, 2010 |
| 11 | |
| 12 | = INSTOOLS Findings = |
| 13 | |
| 14 | The documentation provides an overview of each script, but it does not provide any context for the tools and how they fit |
| 15 | into the overall Integration with Kentucky Measurement Project. Also initially a script (start_rrd2png.sh) |
| 16 | was delivered but not identified as legacy, updates have taken place to clearly identify scope of script. |
| 17 | |
| 18 | Installation instructions are sufficient. |
| 19 | |
| 20 | = INSTOOLS How-to = |
| 21 | |
| 22 | The [http://www.uky.emulab.net/downloads/INSTOOLSv2.3-client_code.tgz INSTOOLSv2.3-client_code.tgz] package delivers a "docs" directory which includes a INSTOOLS-SETUP and a README. |
| 23 | |
| 24 | The INSTOOLS-SETUP captures all required installation steps: |
| 25 | |
| 26 | {{{ |
| 27 | |
| 28 | Protogeni Infrastructure Pre-requisites |
| 29 | ======================================= |
| 30 | |
| 31 | 1. Emulab/Protogeni code from GIT repository with the tag "stable-20100412" or |
| 32 | the current "emulab-devel code" |
| 33 | http://users.emulab.net/trac/emulab/wiki/GitRepository |
| 34 | |
| 35 | 2. Emulab/Protogeni testbed should have a Fedora Core 8 disk image that can be |
| 36 | loaded onto the experimental nodes that are part of the testbed. (The current |
| 37 | version of INSTOOLS only works with Fedora Core 8 images on the experimental |
| 38 | machines). We recommend obtaining the FC8 disk image from UTAH and setting |
| 39 | that as your Default OS for the experimental nodes. |
| 40 | |
| 41 | 3. Experimental machines should be able to connect to servers outside their home |
| 42 | network. (In case the testbed is firewalled) |
| 43 | |
| 44 | 4. Contact the INSTOOLS team (email addresses in CREDITS) and provide them with |
| 45 | the following information: |
| 46 | a) Your Component Manager URN |
| 47 | b) Your Fedora Core 8 Image name |
| 48 | This is required if you plan to use the emulab-devel from |
| 49 | Protogeni source and do not have FC8 as your Default OS |
| 50 | c) Any hardware restrictions for the Measurement controller. (In case |
| 51 | you have better hardware in a node type defined in your Emulab that |
| 52 | you would like to use as the MC ) This step is optional. |
| 53 | |
| 54 | Client/User's Home Machine |
| 55 | ========================== |
| 56 | 1. Should preferably be a linux machine with openssl, ssh, ssh-agent , python |
| 57 | and python crypto libraries installed. |
| 58 | |
| 59 | 2. User should get an Emulab Account as mentioned at |
| 60 | http://www.protogeni.net/trac/protogeni/wiki/Tutorial#GetanEmulabAccount |
| 61 | |
| 62 | 3. Create an SSL Certificate as mentioned at |
| 63 | http://www.protogeni.net/trac/protogeni/wiki/Tutorial#SSLCertificate |
| 64 | save your certificate in $HOME/.ssl/encrypted.pem |
| 65 | After creating the certificate make sure you also create the file |
| 66 | .protogeni-config to avoid running in the problem mentioned at |
| 67 | http://www.protogeni.net/trac/protogeni/wiki/Tutorial#CertificateProblems |
| 68 | |
| 69 | 4. Also save the password you used to create the certificate in cleartext in |
| 70 | $HOME/.ssl/password |
| 71 | |
| 72 | 5. Also create ssh keys as mentioned on |
| 73 | http://www.protogeni.net/trac/protogeni/wiki/Tutorial#UploadingSSHKeys |
| 74 | in order to login to your experiments |
| 75 | |
| 76 | 6. If you use a paraphrase to create your ssh keys, then it is required by the |
| 77 | INSTOOLS code for you to use ssh-agent to manage your private keys. If you |
| 78 | do not do this , you wil end up typing in your paraphrase numerous times just |
| 79 | for a one node experiment. |
| 80 | |
| 81 | }}} |
| 82 | |
| 83 | The README captures run-time instructions: |
| 84 | |
| 85 | {{{ |
| 86 | Instructions to use the Protogeni Aggregate with INSTOOLS |
| 87 | ========================================================= |
| 88 | |
| 89 | PRIOR TO USING THESE INSTRUCTIONS , YOU SHOULD HAVE A PROPER GENI |
| 90 | CREDENTIAL SETUP [THIS SHOULD INCLUDE FILES IN YOUR .ssl directory called as |
| 91 | encrypted.pem , password and a .protogeni-config.py(will be provided in the |
| 92 | install package and explained later) in your INSTOOLS script directory ] |
| 93 | |
| 94 | For a more detailed description of the Pre-requisites, PLEASE READ |
| 95 | INSTOOLS-SETUP |
| 96 | |
| 97 | Creating an experiment with INSTOOLS Measurement Controller |
| 98 | =========================================================== |
| 99 | |
| 100 | Create an rspec xml which in addition to the the regular nodes will |
| 101 | have the below tags within the <rspec></rspec> block |
| 102 | |
| 103 | <needs_measurement/> |
| 104 | |
| 105 | Sample rspecs are provided in the "rspecs" directory. |
| 106 | |
| 107 | Make sure you have the <valid_until>2010-02-28T12:00:00</valid_until> |
| 108 | tag in your rspec. Change the date and time as per your requirement. Acceptable |
| 109 | date and time in 90 days from the date you expect to launch this experiement. |
| 110 | If this tag is not specified, a default time limit of 60 minutes is set for your |
| 111 | experiment. You will receive an email reminder 24 hours in advance informing |
| 112 | you of the time you have remaining before your slice and slivers expire. You can |
| 113 | renew the slice and sliver using the renewslice.py script described later. |
| 114 | |
| 115 | }}} |
| 116 | |
| 117 | The README also captures instructions for each of the scripts that are equivalent to -h output. Rather than capturing the sample script syntax, the rest of this page captures the running of each script and their output to show how the tools work. |
| 118 | |
| 119 | The first example is an experiment created in the Utah Emulab testbed using an rspec provided in the INSTOOLS rpecs directory. |
| 120 | |
| 121 | {{{ |
| 122 | lnevers@riva:~/INSTOOLS$ |
| 123 | ./createExp.py -n final_ln -k /home/lnevers/.ssh/id_rsa -m https://www.emulab.net/protogeni/xmlrpc/cm rspecs/rspec_with_measurement-with_os_loading.xml |
| 124 | CMURI = https://www.emulab.net/protogeni/xmlrpc |
| 125 | Default CM = urn:publicid:IDN+emulab.net+authority+cm |
| 126 | Got my SA credential |
| 127 | No such slice registered here:Creating new slice called final_ln |
| 128 | New slice created |
| 129 | Renewing Slice for a 60 minute duration |
| 130 | Got the renewed slice credential |
| 131 | Asking for a ticket from the local CM |
| 132 | Got a ticket from the CM. Redeeming the ticket ... |
| 133 | Created the sliver |
| 134 | Booting your Slivers |
| 135 | Please be patient... |
| 136 | Hostname : pc215.emulab.net |
| 137 | Virtual ID : geni1 |
| 138 | CM URN : urn:publicid:IDN+emulab.net+authority+cm |
| 139 | Waiting for its status.... |
| 140 | |
| 141 | Hostname : pc214.emulab.net |
| 142 | Virtual ID : geni2 |
| 143 | CM URN : urn:publicid:IDN+emulab.net+authority+cm |
| 144 | Waiting for its status.... |
| 145 | |
| 146 | Hostname : pc222.emulab.net |
| 147 | Virtual ID : geni3 |
| 148 | CM URN : urn:publicid:IDN+emulab.net+authority+cm |
| 149 | Waiting for its status.... |
| 150 | |
| 151 | Hostname : pc109.emulab.net |
| 152 | Virtual ID : MC1 |
| 153 | CM URN : urn:publicid:IDN+emulab.net+authority+cm |
| 154 | This is your Measurement Controller |
| 155 | Waiting for its status.... |
| 156 | |
| 157 | Sliver state is changing Please wait for additional 30 sec... |
| 158 | Sliver state is changing Please wait for additional 30 sec... |
| 159 | Sliver state is changing Please wait for additional 30 sec... |
| 160 | pc109.emulab.net state is changing Please wait for additional 10 sec... |
| 161 | pc215.emulab.net state is notready Please wait for additional 10 sec... |
| 162 | pc214.emulab.net state is notready Please wait for additional 10 sec... |
| 163 | pc222.emulab.net state is changing Please wait for additional 10 sec... |
| 164 | Sliver state is notready Please wait for additional 30 sec... |
| 165 | pc109.emulab.net state is notready Please wait for additional 10 sec... |
| 166 | pc215.emulab.net state is changing Please wait for additional 10 sec... |
| 167 | pc214.emulab.net state is changing Please wait for additional 10 sec... |
| 168 | pc222.emulab.net state is changing Please wait for additional 10 sec... |
| 169 | pc109.emulab.net state is changing Please wait for additional 10 sec... |
| 170 | pc215.emulab.net is booted and ready |
| 171 | pc214.emulab.net is booted and ready |
| 172 | pc222.emulab.net is booted and ready |
| 173 | pc109.emulab.net state is changing Please wait for additional 10 sec... |
| 174 | Sliver is ready. |
| 175 | Please wait a few more minutes while your Measurement Controller is being installed and configured |
| 176 | MC is not yet ready. Will check again after 10 sec |
| 177 | MC is not yet ready. Will check again after 10 sec |
| 178 | MC is not yet ready. Will check again after 10 sec |
| 179 | MC is not yet ready. Will check again after 10 sec |
| 180 | MC is not yet ready. Will check again after 10 sec |
| 181 | MC is not yet ready. Will check again after 10 sec |
| 182 | MC is not yet ready. Will check again after 10 sec |
| 183 | MC is not yet ready. Will check again after 10 sec |
| 184 | MC is not yet ready. Will check again after 10 sec |
| 185 | MC is not yet ready. Will check again after 10 sec |
| 186 | MC is not yet ready. Will check again after 10 sec |
| 187 | MC is not yet ready. Will check again after 10 sec |
| 188 | MC is not yet ready. Will check again after 10 sec |
| 189 | MC is not yet ready. Will check again after 10 sec |
| 190 | MC is not yet ready. Will check again after 10 sec |
| 191 | MC is not yet ready. Will check again after 10 sec |
| 192 | MC is not yet ready. Will check again after 10 sec |
| 193 | MC is not yet ready. Will check again after 10 sec |
| 194 | MC is not yet ready. Will check again after 10 sec |
| 195 | MC is not yet ready. Will check again after 10 sec |
| 196 | MC is not yet ready. Will check again after 10 sec |
| 197 | MC is not yet ready. Will check again after 10 sec |
| 198 | MC is not yet ready. Will check again after 10 sec |
| 199 | MC is not yet ready. Will check again after 10 sec |
| 200 | MC is not yet ready. Will check again after 10 sec |
| 201 | MC is not yet ready. Will check again after 10 sec |
| 202 | MC is not yet ready. Will check again after 10 sec |
| 203 | MC is not yet ready. Will check again after 10 sec |
| 204 | MC is not yet ready. Will check again after 10 sec |
| 205 | MC is not yet ready. Will check again after 10 sec |
| 206 | MC is not yet ready. Will check again after 10 sec |
| 207 | MC is not yet ready. Will check again after 10 sec |
| 208 | MC is not yet ready. Will check again after 10 sec |
| 209 | MC is not yet ready. Will check again after 10 sec |
| 210 | MC is not yet ready. Will check again after 10 sec |
| 211 | MC is not yet ready. Will check again after 10 sec |
| 212 | MC is not yet ready. Will check again after 10 sec |
| 213 | MC is not yet ready. Will check again after 10 sec |
| 214 | MC is not yet ready. Will check again after 10 sec |
| 215 | Running Node Configuration Scripts on pc215.emulab.net |
| 216 | Running Node Configuration Scripts on pc214.emulab.net |
| 217 | Running Node Configuration Scripts on pc222.emulab.net |
| 218 | Do you plan to use the Drupal Interface (Y / N)? [DEFAULT: Y] : y |
| 219 | You are planning to use the Drupal Interface |
| 220 | |
| 221 | Check ./MC.log for Measurement Controller setup details |
| 222 | |
| 223 | Your Measurement controller is accessible from this URL |
| 224 | http://pc109.emulab.net/ |
| 225 | You Experiment is now complete. |
| 226 | You may login to your nodes and begin your experimentation. |
| 227 | }}} |
| 228 | |
| 229 | Once the experiment is started, user may log into the the Measurement Controller (MC) |
| 230 | and access the Dupral interface to monitor all Measurement Points (MPs)at the link |
| 231 | shown http://pc109.emulab.net/. When connecting to the suggested URL shown as the |
| 232 | experiment set up is completed, the user will be presented with the following page: |
| 233 | |
| 234 | [[Image(2010-06-25_Instools-1.jpg)]] |
| 235 | |
| 236 | Once the Dupral link is chosen, the list of nodes that are part of the experiment is shown: |
| 237 | |
| 238 | [[Image(2010-06-25_Instools-2.jpg)]] |
| 239 | |
| 240 | Selecting Graph for the Link details will present a page that shows graphs Link Interface Traffic: |
| 241 | |
| 242 | [[Image(2010-06-25_Instools-3.jpg)]] |
| 243 | |
| 244 | Selecting Graph for the Node details will present a page that shows graphs for all of the following: |
| 245 | * Total CPU Utilization |
| 246 | * ICMP traffic |
| 247 | * IP Traffic |
| 248 | * Memory Usage |
| 249 | * TCP Traffic |
| 250 | * Total Traffic |
| 251 | * UDP Traffic |
| 252 | |
| 253 | [[Image(2010-06-25_Instools-4.jpg)]] |
| 254 | |
| 255 | |
| 256 | Additionally various system table could be monitored including via the Table options: |
| 257 | |
| 258 | [[Image(2010-06-25_Instools-5.jpg)]] |
| 259 | |
| 260 | Here is how a slice is deleted: |
| 261 | {{{ |
| 262 | lnevers@riva:~/INSTOOLS$ ./deleteslice.py -n ln_slice |
| 263 | Got my SA credential. Looking for slice ... |
| 264 | Found the slice, asking for a credential ... |
| 265 | Got the slice credential |
| 266 | Deleting the slice |
| 267 | Slice has been deleted. |
| 268 | |
| 269 | }}} |
| 270 | |
| 271 | Other scripts delivered as part of INSTOOLS Package include: |
| 272 | |
| 273 | * deletesliver.py - Request that all the sliver be stopped. The tickets are still active. |
| 274 | * discover.py - List all available resources at the the Component manager in XML format. |
| 275 | * listcomponents.py - List all component managers that are part of the Protogeni federation |
| 276 | * releaseticket.py - Release a ticket obtained when creating the experiment or updating the sliver. |
| 277 | * renewsliver.py - Request a change of expiration time for an existing sliver extending the |
| 278 | expiration time by <MINUTES>. |
| 279 | |
| 280 | Additional experiments were run with Kentucky Emulab Testbed with the following syntax: |
| 281 | |
| 282 | {{{ |
| 283 | $ ./createExp.py -n ln_slice2 -k ~/.ssh/id_rsa_riva -m https://www.uky.emulab.net/protogeni/xmlrpc/cm rspecs/rspec_with_measurement-without_os_loading.xml |
| 284 | }}} |