来来来 一起掰一掰OpenDayLight中的美好集群

2017-07-28 18:43 出处:其他 作者:佚名 责任编辑:sunziyi

  【PConline 干货铺】这一期我们来掰一掰OpenDayLight中的集群技术,希望让大家从外部的角度对ODL集群有个初步的认识。

高(不)大(得)上(已)的三控制器集群

  双机主备/负载均衡,挂掉一台还有一台能接管,……

  这些熟悉的术语、技术在ODL集群上统统抛弃了,ODL非常任性的告诉大家,要集群,三台起。

•三控制器的灾备效果

  那三台和两台在灾备上有什么不一样呢?是否有更高的冗余性?ODL依然任性的告诉大家,和传统的双机主备/均衡相比,效果一样。只允许集群中的一台控制器挂掉(或离线),一旦发生2台控制器脱离集群,整个集群将无法工作。说白了3台部署场景下,只能允许一台控制器失效。

  吃瓜群众表示这不和传统的双机一样么,只允许挂一台。还搞个三机集群,骗鬼呢?

•三台控制器不一样在哪里

  你说搞ODL的同学又不傻,所以弄个三机集群一定有他的道理,这道理在哪呢,我们继续掰。

  话说传统的双机集群也好双机VSU也好,面临的最恶心的问题就是——脑裂了怎么办?

  这里有必要解释下什么是“脑裂”,这是个专有名词,说白了就是双机之间的通信断开了,但是双机各自存活(没有出现一台死机或不服务),这时会面临着双机都认为对方已经“嗝屁”,自己必须接管整个系统的问题,表现为整个系统出现了两个决策体(两个大脑),而这两个决策体又独立工作,互不协同,下的指令可能相互冲突,最终会导致整个系统紊乱。

  那这个和三台集群有什么关系呢?

  ODL的设计师们想了个招,两台无法天然避免这个问题我们就搞三台呗,那三台怎么避免脑裂呢? 

  三台控制器正常工作的前提是必须存在大于(注意,没有等于)半数的节点被感知到。针对这点先举个例子,3台部署的场景下,大于半数就是至少是2台存活,我们可能面临以下几个场景:

  •3台控制器集群分裂成1-2,由于孤立的那台控制器无法获得其他两台信息,不满足大于半数的条件,所以这台控制器将封闭自我,不服务。剩余的两台由于大于半数,可以继续为这个系统服务。这时只存在一个主(即由两台控制器组成的集群)

  •3台控制器集群分裂成1-1-1,由于三台设备都是孤立设备,都无法满足大于半数的条件,所以整个集群系统都无法正常服务。也就不存在双主的问题。

  基于上述的情况推导,无论控制器怎么分裂,一定不会出现脑裂的场景。(多台(超过三台)控制器推导也是一样成立,有兴趣的小伙伴可自行推演。)

  说到这估计大家就清楚了,ODL设计一个三台控制器的本意就是防止脑裂,为了这个目的,甚至愿意颠覆传统的双机备份问题,这从另一个侧面也可以反映出一个设计思路:宁可让SDN控制器全部挂掉,也不能让其乱服务(这个和SDN控制器本身的定位息息相关,本文不展开讨论)。

  结语:这是介绍ODL集群的第一期内容, 后续会陆续针对集群的每个特点进行一期内容更新,不求多,但求对大家理解这个复杂的过程有所帮助,希望大家关注。

网络设备论坛帖子排行

最高点击 最高回复 最新
最新资讯离线随时看 聊天吐槽赢奖品