Unable to use mastership load re-balancing function

33 views
Skip to first unread message

phyhac

unread,
May 9, 2022, 9:01:22 AM5/9/22
to ONOS Discuss

Hello! I am trying to use the re-balance function just as the ONOS wiki tutorial shows:

https://wiki.onosproject.org/display/ONOS/Basic+ONOS+Tutorial

But now I find it doesn’t work.

 

This is my environments and settings:

1.    I used the scripts (including `createCluster`, `destroyCluster` and configuration files under `./config`) under `onos/tools/tutorials/vm`, and I had changed the ONOS and Atomix version to 2.7.0 and 3.1.9 respectively. These scripts would create 3 instances of Atomix and 3 instances of ONOS by docker.

2.     After creating the cluster, I ran mininet by command: `mn --controller remote,ip=172.17.0.5 --topo tree,6,1 --switch=ovs,protocols=OpenFlow14`

3.    Then I had access to the web UI via instance onos-1 (IP: 172.17.0.5). The topology UI showed correctly, but all of the switches in the tree topology belonged to onos-1.

Then I tried to press ‘E’ to re-balance. But nothing happened. All of the switches in the tree topology still belonged to onos-1.

 

I found some logs by `docker logs onos-$`

The tail of logs from instance onos-1:

```

12:00:01.018 INFO  [MastershipManager] Node 172.17.0.6 has 0 devices.

12:00:01.020 INFO  [MastershipManager] Node 172.17.0.7 has 0 devices.

12:00:01.032 INFO  [MastershipManager] Node 172.17.0.5 has 6 devices.

12:00:01.033 INFO  [MastershipManager] Attempting to move 2 nodes from 172.17.0.5 to 172.17.0.6...

12:00:01.033 INFO  [MastershipManager] Setting 172.17.0.6 as the master for of:0000000000000003

12:00:01.040 INFO  [MastershipManager] Setting 172.17.0.6 as the master for of:0000000000000004

12:00:01.053 INFO  [MastershipManager] Attempting to move 2 nodes from 172.17.0.5 to 172.17.0.7...

12:00:01.054 INFO  [MastershipManager] Setting 172.17.0.7 as the master for of:0000000000000001

12:00:01.063 INFO  [MastershipManager] Setting 172.17.0.7 as the master for of:0000000000000002

```

And onos-2:

```

11:59:34.508 INFO  [TopologyManager] Topology DefaultTopology{time=380316989403782, creationTime=1652097574506, computeCost=1588689, clusters=6, devices=6, links=2} changed

11:59:34.557 INFO  [TopologyManager] Topology DefaultTopology{time=380317038956454, creationTime=1652097574555, computeCost=385762, clusters=6, devices=6, links=5} changed

11:59:35.865 INFO  [TopologyManager] Topology DefaultTopology{time=380318347677986, creationTime=1652097575864, computeCost=362983, clusters=4, devices=6, links=7} changed

11:59:36.058 INFO  [TopologyManager] Topology DefaultTopology{time=380318540217386, creationTime=1652097576056, computeCost=944726, clusters=2, devices=6, links=9} changed

11:59:36.754 INFO  [TopologyManager] Topology DefaultTopology{time=380319236473320, creationTime=1652097576753, computeCost=519901, clusters=1, devices=6, links=10} changed

```

And onos-3:

```

11:59:34.366 INFO  [TopologyManager] Topology DefaultTopology{time=380316845658853, creationTime=1652097574362, computeCost=1387972, clusters=6, devices=6, links=3} changed

11:59:34.372 INFO  [TopologyManager] Topology DefaultTopology{time=380316854185844, creationTime=1652097574370, computeCost=1158454, clusters=6, devices=6, links=3} changed

11:59:34.522 INFO  [TopologyManager] Topology DefaultTopology{time=380317004120267, creationTime=1652097574520, computeCost=892031, clusters=6, devices=6, links=5} changed

11:59:35.863 INFO  [TopologyManager] Topology DefaultTopology{time=380318345911228, creationTime=1652097575862, computeCost=526883, clusters=4, devices=6, links=7} changed

11:59:36.056 INFO  [TopologyManager] Topology DefaultTopology{time=380318538627528, creationTime=1652097576055, computeCost=448962, clusters=2, devices=6, links=9} changed

11:59:36.762 INFO  [TopologyManager] Topology DefaultTopology{time=380319244478354, creationTime=1652097576761, computeCost=410825, clusters=1, devices=6, links=10} changed

```

 

It seemed like only onos-1 had some reactions.

 

Here is the list of active applications.

```

*  33 org.onosproject.lldpprovider         2.7.0    LLDP Link Provider

*  47 org.onosproject.drivers              2.7.0    Default Drivers

*  72 org.onosproject.hostprovider         2.7.0    Host Location Provider

*  75 org.onosproject.optical-model        2.7.0    Optical Network Model

*  78 org.onosproject.openflow-base        2.7.0    OpenFlow Base Provider

*  80 org.onosproject.openflow             2.7.0    OpenFlow Provider Suite

* 280 org.onosproject.gui2                 2.7.0    ONOS GUI2

```

By the way, I also noticed that there was an application called ` Mastership Load Balancer`, I also tried to activate it, but it neither didn’t work.

 

I would be appreciate it if you can reply soon. Thanks!

phyhac

unread,
May 9, 2022, 9:26:28 AM5/9/22
to ONOS Discuss, phyhac

Oh, I have found the solution :)
Mininet can add multi-controllers to have access to the cluster. And here we should use command:

```
mn --controller remote,ip=<controller1-ip> --controller remote,ip=<controller2-ip> --controller remote,ip=<controller3-ip> ...
```

to add multi-controllers. Then press `E` in the web UI, everything go well now.
 
Actually This is a history issue which had been discussed in this session https://groups.google.com/a/onosproject.org/g/onos-discuss/c/kkcCabMd_Mc/m/1OOZGHO9AgAJ.
I am a freshman here so I just found it right now...
Thanks. I hope this can help you.

phyhac

unread,
May 9, 2022, 9:49:12 AM5/9/22
to ONOS Discuss, phyhac
For mininet python script, add multi controllers by constructing a list. 
Just like:
```
net = Mininet(  
                    topo=topo,
                    link=partial(TCLink, ..),
                    switch=partial(OVSKernelSwitch, protocols="OpenFlow14"),

                    controller=[
                        partial( RemoteController, ip='172.17.0.5'),
                        partial( RemoteController, ip='172.17.0.6'),
                        partial( RemoteController, ip='172.17.0.7')
                    ])
```
Reply all
Reply to author
Forward
0 new messages