...
This document assumes that you already have a VM or server (we recommend Ubuntu 16 LTS, in spite of an annoying kernel bug) where you can compile ONOS, preferably using buck (or possibly with Maven - see below.)
- Configure your VM with enough memory to run ONOS!
- ONOS
javaprocesses tend to consume a huge amount of memory. (In the future ONOS may go on a diet, but for now it's pretty heavyweight.) In order to run an ONOS cluster in a single VM, you should allocate a large amount of RAM to that VM. We recommend 2-4 GB (or more if you have it) for each ONOS node that you intend to run. So a 3-node cluster should be usable in a VM with 6-12 GB of RAM. You can see how much memory and CPU ONOS's java processes are using by runningtop- if you start using swap space, the performance of ONOS and Mininet will suffer greatly!
- ONOS
- You may find it more convenient to install a GUI in your VM if you haven't already.
- In Ubuntu, you can use the default Ubuntu Unity desktop or the lighter-weight LXDE.
- For VirtualBox, you may wish to set up networking so that you can connect from your host machine into your VM
- Usually this means adding a host-only interface to the VM, and making sure it's configured
- Make sure that interface has an IP address (you can check with
ifconfigorip addr) - You may need to run
dhclientmanually
Getting Mininet (and bridge-utils)
In order to use onos.py, you need Mininet, which is easy to install in a VM or server running a recent release of Ubuntu.
Option 1: If you are running Ubuntu 16.04 or later, you can easily install Mininet 2.2 (and bridge-utils for LinuxBridge) using apt-get:
...
Option 2: It's also easy to install Mininet from source in an Ubuntu VM or server:
| Code Block | ||
|---|---|---|
| ||
git clone http://github.com/mininet/mininet mininet/util/install.sh -nvfw |
...
recommended
...
options: -n:
...
install
...
core
...
Mininet
...
dependencies; -v:
...
install
...
Open
...
vSwitch; -f:
...
install
...
legacy
...
Stanford
...
1.0
...
user
...
switch
...
and
...
controller; -w:
...
install
...
wireshark
...
and
...
improved
...
OpenFlow
...
wireshark
...
dissector)
Option 3: You can also download a pre-built Mininet VM.
...
Make sure you are running Mininet version 2.2.1 or later:
| Code Block | ||
|---|---|---|
| ||
mn --version |
If not, try installing from the git repository as described above.
And make sure that Mininet works:
| Code Block | ||
|---|---|---|
| ||
sudo mn --test pingall |
If Mininet doesn't work, consult the troubleshooting section below page and/or the Mininet FAQ for troubleshooting hints.
Building ONOS
In order to run ONOS using onos.py, you will need a correctly built ONOS package in your VM.
We recommend building ONOS in your Mininet VM or server using buck:
| Code Block | ||
|---|---|---|
| ||
cd ~/onos tools/build/onos |
...
-buck build onos |
Make sure that the build completes without errors - without a correctly built ONOS package, you will not be able to start ONOS.
...