wiki:GIR3.2_DiCloud

Version 11 (modified by lnevers@bbn.com, 10 years ago) (diff)

--

DiCloud Evaluation

The DiCloud project delivered an integration milestone with GUSH supporting access to ORCA resources. Instructions were fom the GUSH Orca Example page which walks through a scenario that uses ORCA, ProtoGENI and PlanetLab resources.

Evaluation Time Frame: October 19, 2011 and November 18, 2011

DiCloud Findings

Initially ran into 2 problems accessing the ORCA aggregate, in particular one problem was in the RSPEC to NDL converter. This component is being modified for GEC12, RENCI folks suggested that GIR evaluation be postponed to after GEC12.

After GEC12, used GUSH revision 166 to set up a slice with resources, but had to update GUSH revision 167 due to changes made to accommodate ORCA. The changes in Gush revision 166 also required for a change in the ORCA RSpec. After modifying RSpec, was able to manage ORCA nodes without problems.

Only one unresolved issue was found GUSH is not able to able to get a listresources for the ORCA aggregate.

DiCloud How-to

November 18, 2011 Evaluation
Using the following omni_config:

[omni]
users = lnevers
[lnevers]
urn = urn:publicid:IDN+emulab.net+user+lnevers
keys=~/.ssh/id_rsa.pub
[pg]
type=pg
ch = https://www.emulab.net:443/protogeni/xmlrpc/ch
sa = https://www.emulab.net:443/protogeni/xmlrpc/sa
cert = ~/.ssl/protogeni/encrypted-cleartext.pem
key = ~/.ssl/protogeni/encrypted-cleartext.pem

the following directory.xml:

<?xml version="1.0" encoding="UTF-8"?>
<gush>
  <resource_manager type="geni-orca">
     <port_map slice="gush-orca-ln" port="11400"/>
    </resource_manager>
</gush>

and the following RSpec:

<?xml version="1.0" encoding="UTF-8"?>
<rspec type="request" 
   xsi:schemaLocation="http://www.protogeni.net/resources/rspec/2
                       http://www.protogeni.net/resources/rspec/2/request.xsd"
   xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://www.protogeni.net/resources/rspec/2">
   <node client_id="geni1" component_manager_id="urn:publicid:IDN+acisrencivmsite+authority+cm">
      <sliver_type name="raw-pc">
        <disk_image name="http://geni-images.renci.org/images/gush/gush-deb5-i386.xml" version="25f53b64cfe44dd1604447f04b7b533bb67dea1e" />
      </sliver_type>
      <interface client_id="geni1:0">
        <ip address="172.16.1.1" netmask="255.255.0.0" />
      </interface>
   </node>
   <node client_id="geni2" component_manager_id="urn:publicid:IDN+acisrencivmsite+authority+cm">
      <sliver_type name="raw-pc">
        <disk_image name="http://geni-images.renci.org/images/gush/gush-deb5-i386.xml" version="25f53b64cfe44dd1604447f04b7b533bb67dea1e" />
      </sliver_type>
      <interface client_id="geni2:0" >
        <ip address="172.16.1.2" netmask="255.255.0.0" />
      </interface>
    </node>
    <link client_id="center">
      <interface_ref client_id="geni1:0" />
      <interface_ref client_id="geni2:0" />
    </link>
</rspec>

Created a slice with ORCA resources:

$ helper-scripts/handle-geni.py -n -f pg -a https://www.emulab.net/protogeni/xmlrpc/am createslice gush-orca-ln
INFO:omni:Loading config file omni_config
INFO:omni:Using control framework pg
Created slice with Name gush-orca-ln, URN urn:publicid:IDN+emulab.net+slice+gush-orca-ln

$ helper-scripts/handle-geni.py -n -f pg -a https://geni.renci.org:11443/orca/xmlrpc createsliver gush-orca-ln orca.rs
pec
INFO:omni:Loading config file omni_config
INFO:omni:Using control framework pg
Asked https://geni.renci.org:11443/orca/xmlrpc to reserve resources. Result: Request id: 546561b3-df91-4f9c-b95f-549428afd97f
[   Slice UID: 1fb3a83e-365b-43bc-a263-e9bf8be20b47 | Reservation UID: b23eeb64-9801-403e-843b-79f7e20241c3 | Resource Type: acisrencivmsite.vlan | Resource Units: 1 ] 
[   Slice UID: 1fb3a83e-365b-43bc-a263-e9bf8be20b47 | Reservation UID: e162d2d8-610f-48d9-a227-e13bdc1bd7a6 | Resource Type: acisrencivmsite.vm | Resource Units: 1 ] 
[   Slice UID: 1fb3a83e-365b-43bc-a263-e9bf8be20b47 | Reservation UID: 09bc05b0-accc-4afd-a09e-a8b21620ff69 | Resource Type: acisrencivmsite.vm | Resource Units: 1 ] 

Verified resources availability:

$ $ helper-scripts/handle-geni.py -n -f pg -a https://geni.renci.org:11443/orca/xmlrpc sliverstatus gush-orca-ln       
INFO:omni:Loading config file omni_config
INFO:omni:Using control framework pg
INFO:omni:Sliver at https://geni.renci.org:11443/orca/xmlrpc:
<?xml version="1.0"?>
<gush>
        <slice name="gush-orca-ln">
                <expires>99999</expires>
                <node name="root@152.54.10.11" port="22"/>
                <node name="root@152.54.10.13" port="22"/>
        </slice>
</gush>

Started GUSH to run a simple experiment on the ORCA nodes:

$ ./gush -P 15555
gush> Gush has learned about the slice gush-orca-ln.
Updated information on the slice gush-orca-ln is available.
gush> info nodes
There are 2 known nodes:
[ P         ] root@152.54.10.11:11422(pref=0) (Disconnected.)
[ P         ] root@152.54.10.13:11422(pref=0) (Disconnected.)
gush> connect root@152.54.10.11:11422
Connecting to host root@152.54.10.11:11422.
gush> connect root@152.54.10.13:11422
Connecting to host root@152.54.10.13:11422.
root@debian:11422 has joined the mesh.
root@debian:11422 has joined the mesh.
gush>info mesh
Mesh:
root@debian:11422: connected; (fds=6,6 last_heard=1321645386)
root@debian:11422: connected; (fds=7,7 last_heard=1321645388)
root@debian:11422: connected; (fds=7,7 last_heard=1321645388)
Summary: 3 mesh members; 0 nodes connecting.
gush>
 run
Starting experiment run.
Running experiment simple...
gush> The configuration matcher has finished matching.
The resource allocator has finished successfully.
gush>

October 19 Evaluation
Using the following omni_config:

[omni]
users = lnevers
[plc]
type=sfa
authority=plc.bbn
user=plc.bbn.lnevers
cert=~/.gcf/plc.bbn.lnevers.gid
key=~/.gcf/lnevers.pkey
registry=http://www.planet-lab.org:12345
slicemgr=http://www.planet-lab.org:12347
[pg]
type=pg
ch = https://www.emulab.net:443/protogeni/xmlrpc/ch
sa = https://www.emulab.net:443/protogeni/xmlrpc/sa
cert = ~/.ssl/protogeni/encrypted-cleartext.pem
key = ~/.ssl/protogeni/encrypted-cleartext.pem
[lnevers]
urn = urn:publicid:IDN+emulab.net+user+lnevers
keys=~/.ssh/id_rsa.pub

Using a directory.xml containing the PlanetLab, ProtoGENI, and ORCA resource managers:

<?xml version="1.0" encoding="UTF-8"?>
<gush>
    <resource_manager type="geni-plc">
      <port_map slice="bbn_gusheval" port="61414"/>
    </resource_manager>
  <resource_manager type="geni-orca">
     <port_map slice="gush-orca-ln" port="11400"/>
    </resource_manager>
  <resource_manager type="geni-pg">
     <port_map slice="lnevers3" port="61600"/>
    </resource_manager>
</gush>

Created a slice for the experiment:

$ helper-scripts/handle-geni.py -n -f pg -a https://www.emulab.net/protogeni/xmlrpc/am createslice gush-orca-gir  
INFO:omni:Loading config file omni_config
INFO:omni:Using control framework pg
Created slice with Name gush-orca-gir, URN urn:publicid:IDN+emulab.net+slice+gush-orca-gir

Defined an ORCA rspec file named orca.rpec:

<?xml version="1.0" encoding="UTF-8"?>
<rspec type="request" xsi:schemaLocation="http://www.protogeni.net/resources/rspec/2
                                          http://www.protogeni.net/resources/rspec/2/request.xsd"
     xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="http://www.protogeni.net/resources/rspec/2">
 <node client_id="geni1">
  <sliver_type name="raw-pc">
    <disk_image name="http://geni-images.renci.org/images/gush/gush-deb5-i386.xml" version="25f53b64cfe44dd1604447f04b
7b533bb67dea1e" />
  </sliver_type>
  <services>
    <execute shell="sh" command="sudo hostname `cat /var/emulab/boot/realname`.`cat /var/emulab/boot/mydomain`"/>
  </services>
  <interface client_id="geni1:0">
     <ip address="172.16.1.1" netmask="255.255.0.0" />
  </interface>
 </node>
 <node client_id="geni2">
  <sliver_type name="raw-pc">
    <disk_image name="http://geni-images.renci.org/images/gush/gush-deb5-i386.xml" version="25f53b64cfe44dd1604447f04b
7b533bb67dea1e" />
  </sliver_type>
  <services>
    <execute shell="sh" command="sudo hostname `cat /var/emulab/boot/realname`.`cat /var/emulab/boot/mydomain`"/>
  </services>
  <interface client_id="geni2:0" >
    <ip address="172.16.1.2" netmask="255.255.0.0" />
  </interface>
 </node>
 <link client_id="center">
   <interface_ref client_id="geni1:0" />
   <interface_ref client_id="geni2:0" />
 </link>
</rspec>

Created a sliver with the GUSH handle-geni.py script:

$ helper-scripts/handle-geni.py -n -f pg -a https://geni.renci.org:11443/orca/xmlrpc createsliver gush-orca-gir orca.rspec 
INFO:omni:Loading config file omni_config
INFO:omni:Using control framework pg
Asked https://geni.renci.org:11443/orca/xmlrpc to reserve resources. Result: Request id: 0f107a55-e551-437d-ba74-596cdf805870
[   Slice UID: 75fa10a8-4eeb-4425-ae22-b23356ba7c99 | Reservation UID: 259e7c3c-8f2c-42c5-a05e-c20d13318ee6 | Resource Type: acisrencivmsite.vm | Resource Units: 1 ] 
[   Slice UID: 75fa10a8-4eeb-4425-ae22-b23356ba7c99 | Reservation UID: c491d907-c2e0-432c-a769-2312f68362bd | Resource Type: acisrencivmsite.vm | Resource Units: 1 ] 
[   Slice UID: 75fa10a8-4eeb-4425-ae22-b23356ba7c99 | Reservation UID: 856481d6-5cca-4de9-a002-6474611e1671 | Resource Type: acisrencivmsite.vlan | Resource Units: 1 ] 

Verified the sliver status:

$ helper-scripts/handle-geni.py -n -f pg -a https://geni.renci.org:11443/orca/xmlrpc sliverstatus gush-orca-gir  
INFO:omni:Loading config file omni_config
INFO:omni:Using control framework pg
INFO:omni:Sliver at https://geni.renci.org:11443/orca/xmlrpc:
<?xml version="1.0"?>
<gush>
        <slice name="gush-orca-gir+a946c55f-7b01-4b44-b8d1-6aa40fd1057f#geni1/487ffea1-8b19-42d3-b5f4-e438f863a95e" exclusive="true" client_id="a946c55f-7b01-4b44-b8d1-6aa40fd1057f#geni1/487ffea1-8b19-42d3-b5f4-e438f863a95e">
        <sliver_type name="vm"/>
        <services>
            <login username="root" port="22" hostname="152.54.10.16" authentication="ssh-keys"/>
            <execute command="#!/bin/sh
sudo hostname `cat /var/emulab/boot/realname`.`cat /var/emulab/boot/mydomain`
"/>
        </services>
        <interface client_id="a946c55f-7b01-4b44-b8d1-6aa40fd1057f#geni1/487ffea1-8b19-42d3-b5f4-e438f863a95e:if1"/>
    </node>
    <node sliver_id="urn:publicid:IDN+geni-orca.renci.org+sliver+urn:publicid:IDN+emulab.net+slice+gush-orca-gir+a946c55f-7b01-4b44-b8d1-6aa40fd1057f#geni2/cdcd5d3d-18c5-4f84-8808-c84cfdd36213" exclusive="true" client_id="a946c55f-7b01-4b44-b8d1-6aa40fd1057f#geni2/cdcd5d3d-18c5-4f84-8808-c84cfdd36213">
        <sliver_type name="vm"/>
        <services>
            <login username="root" port="22" hostname="152.54.10.17" authentication="ssh-keys"/>
            <execute command="#!/bin/sh
sudo hostname `cat /var/emulab/boot/realname`.`cat /var/emulab/boot/mydomain`
"/>
        </services>
        <interface client_id="a946c55f-7b01-4b44-b8d1-6aa40fd1057f#geni2/cdcd5d3d-18c5-4f84-8808-c84cfdd36213:if1"/>
    </node>
    <link sliver_id="urn:publicid:IDN+geni-orca.renci.org+sliver+urn:publicid:IDN+emulab.net+slice+gush-orca-gir+a946c55f-7b01-4b44-b8d1-6aa40fd1057f#center/ac3cbc4b-4c25-4008-853c-90e9ad04ba36" client_id="a946c55f-7b01-4b44-b8d1-6aa40fd1057f#center/ac3cbc4b-4c25-4008-853c-90e9ad04ba36">
        <interface_ref client_id="a946c55f-7b01-4b44-b8d1-6aa40fd1057f#geni2/cdcd5d3d-18c5-4f84-8808-c84cfdd36213:if1"/>
        <interface_ref client_id="a946c55f-7b01-4b44-b8d1-6aa40fd1057f#geni1/487ffea1-8b19-42d3-b5f4-e438f863a95e:if1"/>
    </link>
</rspec>">
                <expires>99999</expires>
        </slice>
</gush>

Note: Expiration time 99999 needs explanation.

Brought up gush to connect to ORCA slice gush-orca-gir, but it fails

$ ./gush -P 15555
gush> 
Gush has learned about the slice gush-orca-ln.
An error occurred when updating information on the slice/user gush-orca-ln.