wiki:GEMINI/Tutorial/GEC15/Background/Topology

Version 1 (modified by carpenter@vis.uky.edu, 7 years ago) (diff)

--

GEMINI/Tutorial/GEC15/Background/Topology

Formulate slice topology for experiment, and build request rspec

In order to use the GEMINI I&M system to instrument your slice, you have to add GEMINI specific rspec extensions to your slice. This can be done at the time you create your rspec. The GEMINI I&M system requires that you add an extra node with public IP address into your slice that we call as the GLOBAL Node (GN). This node does not need to have any links to any other nodes in your slice.

To designate a node as a GLOBAL Node add the following section in the node section of the rspec as shown below

<gemini:node type="global_node">
  <gemini:monitor_urn name="urn:publicid:IDN+uky.emulab.net+authority+cm">
 </gemini:monitor_urn>
</gemini:node>

<!-- To make this node with public IP address -->
<emulab:routable_control_ip xmlns="http://www.protogeni.net/resources/rspec/ext/emulab/1"/>

The monitor-urn tag defines which Aggregate's Node this Global Node is supposed to monitor. In our example above, this node is supposed to monitor the nodes at the Kentucky Aggregate.

All other nodes (raw-pc or virtual nodes) to be monitored using GEMINI should be designated with a GEMINI rspec extension that defines them as a MP Node (measurement point node) as shown below

<gemini:node type="mp_node">
  <gemini:services>
    <gemini:active install="yes" enable="yes"/>
    <gemini:passive install="yes" enable="yes"/>
  </gemini:services>
</gemini:node>

For each MP node you also have to define if you would like to have active or passive monitoring installed and/or enabled . The above snippet requests that both active and passive monitoring be installed and enabled on the node.

Using the above mentioned GEMINI rspec extensions along with its xmlns schema definition in the rspec (xmlns:gemini="http://geni.net/resources/rspec/ext/gemini/1"), you can create a Slice which can later be instrumentized using GEMINI. For example, our Tutorial topology rspec would look like

<rspec type="request" generated_by="Flack" generated="2012-10-10T16:34:53Z" 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:gemini="http://geni.net/resources/rspec/ext/gemini/1" xmlns="http://www.geni.net/resources/rspec/3">
  <node client_id="VM-1" exclusive="false" xmlns:rs="http://www.protogeni.net/resources/rspec/ext/emulab/1">
    <rs:vnode name="pcvm62-6"/>
    <sliver_type name="emulab-openvz"/>
    <interface client_id="VM-1:if0">
      <ip address="10.128.2.2" netmask="" type="ipv4"/>
      <flack:interface_info addressUnset="false"/>
    </interface>
    <interface client_id="VM-1:if1">
      <ip address="10.128.3.2" netmask="" type="ipv4"/>
      <flack:interface_info addressUnset="false"/>
    </interface>
    <interface client_id="VM-1:if2">
      <ip address="10.128.4.1" netmask="" type="ipv4"/>
      <flack:interface_info addressUnset="false"/>
    </interface>
    <gemini:node type="mp_node">
      <gemini:services>
        <gemini:active install="yes" enable="yes"/>
        <gemini:passive install="yes" enable="yes"/>
      </gemini:services>
    </gemini:node>
    <services>
      <execute command="sudo /tmp/installer/installer.sh" shell="sh"/>
      <install install_path="/tmp" url="http://www.uky.emulab.net/INSTOOLS/3.5/tarballs/installer.tgz"/>
      <install install_path="/" url="http://www.uky.emulab.net/INSTOOLS/3.5/tarballs/sudoers.tgz"/> 
    </services>
    <flack:node_info x="91" y="183" unbound="true"/>
  </node>
  <node client_id="VM-2" exclusive="false" xmlns:rs="http://www.protogeni.net/resources/rspec/ext/emulab/1">
    <rs:vnode name="pcvm62-7"/>
    <sliver_type name="emulab-openvz"/>
    <interface client_id="VM-2:if0">
      <ip address="10.128.1.1" netmask="" type="ipv4"/>
      <flack:interface_info addressUnset="false"/>
    </interface>
    <interface client_id="VM-2:if1">
      <ip address="10.128.4.2" netmask="" type="ipv4"/>
      <flack:interface_info addressUnset="false"/>
    </interface>
    <interface client_id="VM-2:if2">
      <ip address="10.128.6.2" netmask="" type="ipv4"/>
      <flack:interface_info addressUnset="false"/>
    </interface>
    <gemini:node type="mp_node">
      <gemini:services>
        <gemini:active install="yes" enable="yes"/>
        <gemini:passive install="yes" enable="yes"/>
      </gemini:services>
    </gemini:node>
    <services>
      <execute command="sudo /tmp/installer/installer.sh" shell="sh"/>
      <install install_path="/tmp" url="http://www.uky.emulab.net/INSTOOLS/3.5/tarballs/installer.tgz"/>
      <install install_path="/" url="http://www.uky.emulab.net/INSTOOLS/3.5/tarballs/sudoers.tgz"/> 
    </services>
    <flack:node_info x="637" y="208" unbound="true"/>
  </node>
  <node client_id="VM-3" exclusive="false" xmlns:rs="http://www.protogeni.net/resources/rspec/ext/emulab/1">
    <rs:vnode name="pcvm62-8"/>
    <sliver_type name="emulab-openvz"/>
    <interface client_id="VM-3:if0">
      <ip address="10.128.3.1" netmask="" type="ipv4"/>
      <flack:interface_info addressUnset="false"/>
    </interface>
    <interface client_id="VM-3:if1">
      <ip address="10.128.5.1" netmask="" type="ipv4"/>
      <flack:interface_info addressUnset="false"/>
    </interface>
    <interface client_id="VM-3:if2">
      <ip address="10.128.6.1" netmask="" type="ipv4"/>
      <flack:interface_info addressUnset="false"/>
    </interface>
    <gemini:node type="mp_node">
      <gemini:services>
        <gemini:active install="yes" enable="yes"/>
        <gemini:passive install="yes" enable="yes"/>
      </gemini:services>
    </gemini:node>
    <services>
      <execute command="sudo /tmp/installer/installer.sh" shell="sh"/>
      <install install_path="/tmp" url="http://www.uky.emulab.net/INSTOOLS/3.5/tarballs/installer.tgz"/>
      <install install_path="/" url="http://www.uky.emulab.net/INSTOOLS/3.5/tarballs/sudoers.tgz"/> 
    </services>
    <flack:node_info x="384" y="419" unbound="true"/>
  </node>
  <node client_id="VM-4" exclusive="false" xmlns:rs="http://www.protogeni.net/resources/rspec/ext/emulab/1">
    <rs:vnode name="pcvm62-9"/>
    <sliver_type name="emulab-openvz"/>
    <interface client_id="VM-4:if0">
      <ip address="10.128.1.2" netmask="" type="ipv4"/>
      <flack:interface_info addressUnset="false"/>
    </interface>
    <interface client_id="VM-4:if1">
      <ip address="10.128.2.1" netmask="" type="ipv4"/>
      <flack:interface_info addressUnset="false"/>
    </interface>
    <interface client_id="VM-4:if2">
      <ip address="10.128.5.2" netmask="" type="ipv4"/>
      <flack:interface_info addressUnset="false"/>
    </interface>
    <gemini:node type="mp_node">
      <gemini:services>
        <gemini:active install="yes" enable="yes"/>
        <gemini:passive install="yes" enable="yes"/>
      </gemini:services>
    </gemini:node>
    <services>
      <execute command="sudo /tmp/installer/installer.sh" shell="sh"/>
      <install install_path="/tmp" url="http://www.uky.emulab.net/INSTOOLS/3.5/tarballs/installer.tgz"/>
      <install install_path="/" url="http://www.uky.emulab.net/INSTOOLS/3.5/tarballs/sudoers.tgz"/> 
    </services>
    <flack:node_info x="650" y="417" unbound="true"/>
  </node>
  <node client_id="GN" exclusive="false" xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1">
    <emulab:routable_control_ip xmlns="http://www.protogeni.net/resources/rspec/ext/emulab/1"/>
    <emulab:vnode name="pcvm62-10" xmlns="http://www.protogeni.net/resources/rspec/ext/emulab/1"/>
    <sliver_type name="emulab-openvz"/>
    <gemini:node type="global_node">
      <gemini:monitor_urn name="urn:publicid:IDN+uky.emulab.net+authority+cm">
    </gemini:monitor_urn></gemini:node>
    <services>
      <execute command="sudo /tmp/installer/installer.sh MC" shell="sh"/>
      <install install_path="/tmp" url="http://www.uky.emulab.net/INSTOOLS/3.5/tarballs/installer.tgz"/>
      <install install_path="/" url="http://www.uky.emulab.net/INSTOOLS/3.5/tarballs/sudoers.tgz"/> 
    </services>
    <flack:node_info x="327" y="481" unbound="true"/>
  </node>
  <link client_id="lan0">
    <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns="http://www.protogeni.net/resources/rspec/ext/flack/1"/>
    <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns="http://www.protogeni.net/resources/rspec/ext/flack/1"/>
    <interface_ref client_id="VM-2:if0"/>
    <interface_ref client_id="VM-4:if0"/>
    <property source_id="VM-2:if0" dest_id="VM-4:if0"/>
    <property source_id="VM-4:if0" dest_id="VM-2:if0"/>
    <link_type name="lan"/>
    <flack:link_info x="-1" y="-1" unboundVlantag="true"/>
  </link>
  <link client_id="lan1">
    <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns="http://www.protogeni.net/resources/rspec/ext/flack/1"/>
    <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns="http://www.protogeni.net/resources/rspec/ext/flack/1"/>
    <interface_ref client_id="VM-4:if1"/>
    <interface_ref client_id="VM-1:if0"/>
    <property source_id="VM-4:if1" dest_id="VM-1:if0"/>
    <property source_id="VM-1:if0" dest_id="VM-4:if1"/>
    <link_type name="lan"/>
    <flack:link_info x="-1" y="-1" unboundVlantag="true"/>
  </link>
  <link client_id="lan2">
    <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns="http://www.protogeni.net/resources/rspec/ext/flack/1"/>
    <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns="http://www.protogeni.net/resources/rspec/ext/flack/1"/>
    <interface_ref client_id="VM-3:if0"/>
    <interface_ref client_id="VM-1:if1"/>
    <property source_id="VM-3:if0" dest_id="VM-1:if1"/>
    <property source_id="VM-1:if1" dest_id="VM-3:if0"/>
    <link_type name="lan"/>
    <flack:link_info x="-1" y="-1" unboundVlantag="true"/>
  </link>
  <link client_id="lan3">
    <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns="http://www.protogeni.net/resources/rspec/ext/flack/1"/>
    <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns="http://www.protogeni.net/resources/rspec/ext/flack/1"/>
    <interface_ref client_id="VM-1:if2"/>
    <interface_ref client_id="VM-2:if1"/>
    <property source_id="VM-1:if2" dest_id="VM-2:if1"/>
    <property source_id="VM-2:if1" dest_id="VM-1:if2"/>
    <link_type name="lan"/>
    <flack:link_info x="-1" y="-1" unboundVlantag="true"/>
  </link>
  <link client_id="lan4">
    <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns="http://www.protogeni.net/resources/rspec/ext/flack/1"/>
    <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns="http://www.protogeni.net/resources/rspec/ext/flack/1"/>
    <interface_ref client_id="VM-3:if1"/>
    <interface_ref client_id="VM-4:if2"/>
    <property source_id="VM-3:if1" dest_id="VM-4:if2"/>
    <property source_id="VM-4:if2" dest_id="VM-3:if1"/>
    <link_type name="lan"/>
    <flack:link_info x="-1" y="-1" unboundVlantag="true"/>
  </link>
  <link client_id="lan5">
    <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns="http://www.protogeni.net/resources/rspec/ext/flack/1"/>
    <flack:link_info x="-1" y="-1" unboundVlantag="true" xmlns="http://www.protogeni.net/resources/rspec/ext/flack/1"/>
    <interface_ref client_id="VM-3:if2"/>
    <interface_ref client_id="VM-2:if2"/>
    <property source_id="VM-3:if2" dest_id="VM-2:if2"/>
    <property source_id="VM-2:if2" dest_id="VM-3:if2"/>
    <link_type name="lan"/>
    <flack:link_info x="-1" y="-1" unboundVlantag="true"/>
  </link>
</rspec>

Visually this would look like

Attachments (1)

Download all attachments as: .zip