In 2014 the bandwidth available to many CMS T2 sites has been upgraded to about 100 Gbps. To use these links efficiently and still not overload Internet2 the ideal is that we take advantage of smarter network technologies such as openflow. Currently Internet2 has a mesh with points of presence all over the US. Clients can control what their paths are to destinations through a remote API named OESS. However, before any action through the API it is important to collect information and analyze the data according to a favorable algorithm to take decisions to ensure optimal and distributed usage of the network. The goal in this page is to document the high level requirements for this to happen. It might happen that a proof-of-concept agent is written in Perl, but the end goal is that the OpenFlow controllers such as OLiMPS accomplish that. %TOC% ---+ Data collection ---++ Weathermap This [[http://atlas.grnoc.iu.edu/atlas.cgi?map_name=Internet2%20AL2S][weathermap]] shows the live status of the networks. Reverse engineering it one can find URLs that provide the data seen on the map in the [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.elpa.net.internet2.edu&interfaces=ethernet3%2F1][XML Format]]. There is a number of different nodes and it is not clear that all interfaces are "capturable". Look for the "custom.cgi" HTTP Call on the page (from JS) and you will find what appears to be all metadata of all points in the map. ---+++ Map logical link / monitoring ---++++ Caltech <-> Nebraska [1] - southern * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.losa.net.internet2.edu&interfaces=ethernet3%2F1][LOSA <-> SALT ]] * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.losa.net.internet2.edu&interfaces=100GigabitEthernet3/2][LOSA <-> PHOE]] * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.phoe.net.internet2.edu&interfaces=et-4/0/0][ PHOE <-> TUCS ]] * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.elpa.net.internet2.edu&interfaces=ethernet3%2F1][ TUCS <-> ELPA ]] * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.houh.net.internet2.edu&interfaces=ethernet1%2F1][ ELPA <-> HOUS ]] * HOUS <-> DALLAS ? * DALLAS <-> TULS ? * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.kans.net.internet2.edu&interfaces=ethernet3%2F1][ TULS <-> KANS ]] ---++++ Caltech <-> Nebraska [2] - central * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.losa.net.internet2.edu&interfaces=ethernet3%2F1][LOSA == SALT ]] * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.denv.net.internet2.edu&interfaces=ethernet1%2F1][SALT == DENV ]] * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.denv.net.internet2.edu&interfaces=100GigabitEthernet3/2][DENV == KANS ]] ---++++ Generic * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.salt.net.internet2.edu&interfaces=100GigabitEthernet7/2][SALT == SEAT ]] * [[http://snapp2.bldc.grnoc.iu.edu/i2al2s/services/graphing.cgi?method=get_atlas_data&nodes=sdn-sw.denv.net.internet2.edu&interfaces=100GigabitEthernet3/1][DENV == ELPA ]] ---+++ Configuration file format <verbatim> # Simply to which Point of Presence your site (Caltech) is connected to? site-pop = sdn-sw.losa.net.internet2.edu [NEBRASKA] path1 = 'sdn-sw.losa.net.internet2.edu&interfaces=100GigabitEthernet3/2', 'sdn-sw.phoe.net.internet2.edu&interfaces=et-4/0/0', 'sdn-sw.phoe.net.internet2.edu&interfaces=et-4/0/0', 'sdn-sw.elpa.net.internet2.edu&interfaces=ethernet3%2F1', 'sdn-sw.houh.net.internet2.edu&interfaces=ethernet1%2F1', 'sdn-sw.kans.net.internet2.edu&interfaces=ethernet3%2F1' path2 = 'sdn-sw.losa.net.internet2.edu&interfaces=ethernet3%2F1', 'sdn-sw.denv.net.internet2.edu&interfaces=ethernet1%2F1', 'sdn-sw.denv.net.internet2.edu&interfaces=100GigabitEthernet3/2' [WISCONSIN] path1 = 'a','b', 'c' </verbatim> ---++ PerfSONAR It looks like PerfSONAR will help in the future as you can query traceroutes to it. In the very beginning the best is to do the routing decisions ourselves, and not have any automatic mechanism, but for the future it is interesting to note this. ---+ Algorithm The agent should be based in polling cycles. It will monitor links to site A to B, C, D, E and F. Each link A <-> B, A <-> C will have more than one route. The agent will analyze the multiple routes and figure out if link occupancy can be optimized to reduce load in overloaded paths and increase the load in sub-utilized paths. Paths between site A and B will at first be set by humans. The way to do it will be in a configuration file, in the INI style of [[http://search.cpan.org/~sherzodr/Config-Simple-4.59/Simple.pm][Config::Simple]]. The agent will then poll the different paths and run the algorithm to take decisions. ---+ Actions - OESS Azher deployed one OESS instance. Once the previous parts are written, a possibility is to do a small demo with the local equipment, having 2 links between 2 local servers and shifting the load between the links. -- Main.samir - 2014-08-06
This topic: Main
>
ComputingT2SDN
Topic revision: r2 - 2014-08-06 - samir
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback