作者简介:鸿哥,硕士研究生,国内某通信设备公司软件研发工程师,主要从事云计算、SDN技术开发
本文文字叙述不多,直接进行实验,让对ODL集群感兴趣的小伙伴直接进入实验,在这篇实验开始之前,可以看下另一片文章:涨知识:SDN界超火应用——ODL集群到底怎样搭建,也可以说是这篇文章的补充。
一、集群实验架构
1、重新搭建心的集群环境,进行试验。
2、相关操作
Mininet连接多控制器的方法有两种,一种是采用收到输入命令,一种是采用脚本(https://wiki.opendaylight.org/view/OpenDaylight_OpenFlow_Plugin::Mininet_with_multiple_controllers)。
---输入命令
sudo mn --topo single,1 --controller 'remote,ip=10.1.2.3:6653' --switch ovsk,protocols=OpenFlow13
sudo ovs-vsctl set-controller s1 tcp:10.1.2.3:6653 tcp:10.1.2.4:6653 ...
---采用脚本
运行3个控制器的mininet脚本/root/good-multiple-controller/ three-controller.py
1)添加流表操作(以下流表不一定是正确的流表,这里只测试控制器下发流表到交换机,不纠结该流表是否正确)
2)查看流表
从交换机上可以看到刚下发的流表
从控制器上看也可以看到
3)Odl(192.168.7.107)down,继续添加流表
查看交换机
106控制器上
108控制器上
4)Odl(192.168.7.107)up
107重启之后,同样的方式查看107上的流表,可以看出流表已同步上来了
3、106和108都down
现在只剩下107控制器,在此控制器删除10.0.0.0/24的流表
4、重启106和108控制器,查看106和108上的流表,已经将10.0.0.0/24的流表删除了。
二、总结
odl控制器集群能够做到主控制器下发流表,从控制器无操作,保证数据的一致性,但是前提是必须采用DataStore进行流表下发,如果直接调用openflowplugin接口下发流表,从控制器也是能够下发流表的,因此如果你想使用openflowplugin接口下发流表操作,请先考虑下主从控制器的数据一致性。