如何建立OpenDaylightController集群
参考网址:https://wiki.opendaylight.org/view/OpenDaylight_Controller:Clustering:HowTo
1、启动集群
为了设置ODP控制器集群,你需要有这些先决条件:
1、有2个或更多个可以运行控制器的主机。
2、确保机器,无论是虚拟还是物理,都有它们的IP,而且它们之间是连通的,没有防火墙阻止端口7800,12001<其他的TBD>
一旦满足这些先决条件,接下来启动集群,我们需要:
1、选择一个或多个节点成为超级节点。ODP的集群架构是建立在模仿P2P网络和提供的群集节点,这些节点不知道彼此的提前时间(aheadof time),他们需要有一种方法来满足其他节点。执行该功能的节点被称为超级节点。
2、一旦超级节点被选定,一定要首先通过使用命令行运行控制器启动这些节点:
./run.sh-Dsupernodes=<supernodesIP1>[:<supernodesIP2>][:<supernodesIP3>].. [:<supernodesIPN>]
3、一旦超级节点被启动,可以使用非常相同的命令行(如上述的)启动其他节点。
此时集群将启动和运行。集群中的成员可以随时加入或离开..根据定义,任何新的节点可以进入集群,前提是超级节点中至少一个是可到达的。该超级节点在初始阶段要知道与哪个节点的控制器在同一个集群,该阶段结束后,控制器节点将在网络中建立一个全网状的N-1个对等体。
2、通过北行REST访问集群
从北向接口看,集群将通过RESTAPI之中的REST无状态,每个请求可以在集群中的任何控制器登录访问,其实,它建议以HTTP负载平衡器的前端集群来将要求传给控制器集群。
3、通过南向接口访问集群
从南向接口看,网络元素应使用单一控制器元素的IP地址,分散负载连接到集群,这对于像OpenFlow(目前集成的唯一协议插件)的协议尤其如此。因此,概括地说,每一个网络元素必须以某种方式配置成与所述控制器节点说话者的身份。对于像OVSDB来说,其中控制器集群发起朝向网络元素的连接,这些元素的负载传播实际上可以由控制器集群本身来控制。更多的时候,这将是可用的。
4、环境搭建及实验结果
实验机子(10.20.4.199;10.20.4.190):
超级节点:10.20.4.199
其他节点:10.20.4.190
实验步骤:
1、先分别在10.20.4.199和10.20.4.190两个机子上构建opendaylight的环境
2、然后分别在那两台机子上运行./run.sh-Dsupernodes=10.20.4.199这个命令,就可以得到一个集群了
实验结果:
1、启动mininet和opendaylight
2、查看2个控制器的结果(完全一样)
3、在mininet端pingall之后,2台控制器的显示结果一样
4、安装完一个flow之后,2台控制器显示结果一样。