Changes between Version 18 and Version 19 of FlowVisor


Ignore:
Timestamp:
05/29/13 17:07:18 (11 years ago)
Author:
Josh Smift
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FlowVisor

    v18 v19  
    3939== Version ==
    4040
    41 The GPO currently recommends version 0.8.17 (the latest stable release) for GENI sites. There are significant changes from 0.8.1.2 to 0.8.17, and we recommend working with the GPO to help the upgrade process go smoothly. Contact us at gpo-infra@geni.net and we'll be happy to help!
    42 
    43 NOTE that much of this page is specific to FV 0.8.13 and later.
     41The GPO currently recommends version 1.0.8 for GENI sites.
     42
     43We're currently (May 2013) in the proess of working with sites to upgrade to that version. Sites that haven't yet upgraded are mostly running 0.8.17; existing GENI racks may be running even older versions of 0.8.
     44
     45== !FlowVisor APIs ==
     46
     47As of FV 1.0, there are two APIs for talking to !FlowVisor: The old XMLRPC API, and the new JSON API. Since FOAM, ORCA, and other various GENI things only speak the XMLRPC API, we're continuing to use it, even though it's officially deprecated.
     48
     49There are two `fvctl` programs that come with !FlowVisor, one for each API, in `/usr/bin/fvctl-xml` and `/usr/bin/fvctl-json`, which have very different input and output formats. The package also comes with a symlink in `/usr/bin/fvctl` that points to `fvctl-json` by default; on GENI sites, we recommend changing it to point to `fvctl-xml`, like so:
     50
     51{{{
     52sudo rm /usr/bin/fvctl
     53sudo ln -s fvctl-xml /usr/bin/fvctl
     54}}}
     55
     56The rest of this page assumes that you've done this, and that `fvctl` runs the XML version of fvctl.
     57
     58== Initial configuration ==
     59
     60The default configuration of !FlowVisor is general suitable for GENI sites, except that we recommend the XMLRPC API for now. (See above for more info, including commands to make `/usr/bin/fvctl` point to the XML version.)
     61
     62We typically put the !FlowVisor fvadmin password into /etc/flowvisor.passwd, so you don't have to type it every time you run an fvctl command. Make sure that it's only readable by people who should have full admin access to !FlowVisor on your system! (World-readable might be fine if only FV admins have accounts on your FV server; or you might want to make it only group-readable by a group that includes the FV admins.) The examples on the rest of this page assume that you've done that.
     63
     64One easy way to generate a fairly secure password:
     65
     66{{{
     67sudo apt-get install pwgen
     68test -f /etc/flowvisor.passwd || sudo sh -c 'pwgen -sB 24 > /etc/flowvisor.passwd'
     69sudo apt-get remove pwgen
     70}}}
     71
     72(And then adjust the permissions on /etc/flowvisor.passwd as necessary.)
     73
     74The rest of this page assumes that you've done that.
    4475
    4576== Backups ==
     
    80111
    81112In that second step, just hit return when prompted for a password (this will be overwritten by the next step); and ignore the "keytool error" error, it's just telling you that you already have a key pair.
    82 
    83 == Initial configuration ==
    84 
    85 The default configuration of !FlowVisor is general suitable for GENI sites.
    86 
    87 We typically put the !FlowVisor fvadmin password into /etc/flowvisor.passwd, so you don't have to type it every time you run an fvctl command. Make sure that it's only readable by people who should have full admin access to !FlowVisor on your system! (World-readable might be fine if only FV admins have accounts on your FV server; or you might want to make it only group-readable by a group that includes the FV admins.) The examples on the rest of this page assume that you've done that.
    88 
    89 One easy way to generate a fairly secure password:
    90 
    91 {{{
    92 sudo apt-get install pwgen
    93 test -f /etc/flowvisor.passwd || sudo sh -c 'pwgen -sB 24 > /etc/flowvisor.passwd'
    94 sudo apt-get remove pwgen
    95 }}}
    96 
    97 (And then adjust the permissions on /etc/flowvisor.passwd as necessary.)
    98113
    99114== Upgrading ==
     
    114129}}}
    115130
    116 Next do the upgrade, as usual.
     131Next do the upgrade, as usual. Then make sure `/usr/bin/fvctl` points to `fvctl-xml`:
     132
     133{{{
     134sudo rm /usr/bin/fvctl
     135sudo ln -s fvctl-xml /usr/bin/fvctl
     136}}}
    117137
    118138Then, get an "after" dump of the flowspace and slice info:
     
    136156}}}
    137157
    138 If that all looks good, a good way to test that things are working properly is to do some FOAM operations (create or delete or approve or disable some slivers) on the FOAM server that manages that !FlowVisor.
     158There generally shouldn't be any diffs. After that, a good way to test that things are working properly is to do some FOAM operations (create or delete or approve or disable some slivers) on the FOAM server that manages that !FlowVisor.
     159
     160(Note that when upgrading from FV 0.8 to FV 1.0, the config.json file will show a great many diffs, because the output is aesthetically different, e.g. things appear in a different order, are indented differently, etc. If the flowspace and sliceinfo files don't show any differences, that's good enough.)
    139161
    140162== Useful commands ==
     
    168190=== Change a configuration parameter ===
    169191
    170 Most configuration parameters can only be changed by dumping the DB, editing the resulting JSON file, and loading the changed file into the DB, which requires you to stop and restart !FlowVisor, causing an outage. https://github.com/OPENNETWORKINGLAB/flowvisor/issues/89 is tracking the task of making it possible to modify all configuration parameters via fvctl.
     192Most configuration parameters can only be changed by dumping the DB, editing the resulting JSON file, and loading the changed file into the DB, which requires you to stop and restart !FlowVisor, causing an outage. https://github.com/OPENNETWORKINGLAB/flowvisor/issues/212 and https://github.com/OPENNETWORKINGLAB/flowvisor/issues/213 are tracking the task of making it possible to get and set all configuration parameters via fvctl.
    171193
    172194Meanwhile, to (for example) turn on checkpointing, you can do this sequence:
     
    235257
    236258{{{
    237 fvctl --passwd-file=/etc/flowvisor.passwd createSlice default tcp:troy.gpolab.bbn.com:50812 jbs@bbn.com
     259fvctl --passwd-file=/etc/flowvisor.passwd createSlice default tcp:localhost:36633 user@example.net
    238260fvctl --passwd-file=/etc/flowvisor.passwd addFlowSpace all 1000 any "Slice:default=4"
    239261}}}