SDN:分布式与集中式控制层面学习笔记
“水在人类文明发展历程中的作用非常重要。用来存储、处理和传播信息及知识的计算机的发展历程,与人类储存、使用和管理水的历程有很多相似之处。在原始部落以及游牧时期,人们的生活和生产局限在靠近水源的范围,需要水的时候,要去江河湖泊里取水回来,‘江河湖泊’就像‘主机’。到了个人计算机时代,如同人类的农耕时代,由于家家都有水井,人们的生活和生产获得了更多的自由和便利;‘水井’很像个人计算机,自给自足,但是不能共享、大量闲置,严重浪费和低效。等我们到了城市,有了发达的自来水网络,‘水’被集中起来处理、随时、随地地提供给人们,文明因此进入了一个新阶段,就像“云计算”将以宽带网络和新一代软件与服务带领我们进入信息化新时代。”这是对于人类信息产业发展的一种描述。
我觉得这一段对于计算机的发展历程的描述,其实也是一段对于集中式与分布式的很好的论断。用“水”来比喻计算机资源确是一个很精妙的想法。从人类对于水资源 的处理历史来看,可以发现这样一个有趣的现象:人们首先是依赖于水源,然后又自己钻井来获取水源,到最后又由统一的工厂来集中管理水源。这种模式对于网络 存储而言,就是这样:最早的计算机统一存储信息,用户受网络性能影响,再到后面,个人计算机发展,整个网络资源彼此分布在各家各户的计算机硬盘之中,而到了现在,存储云端化则又是将整个资源集中化,这种现象其实就是一个由集中式到分布式再到集中式的过程。可以发现,集中与分布的概念往往出现在对于资源的管 理上,当许多资源集中在一个地方是,这是集中式;而当资源分散在不同地方是,这便是分布式。对于集中式与分布式,它们各自有各自的优缺点。后面会结合具体 的网络实际进行分析。
那么,对于整个网络环境来说,我们又应该怎样看待网络的集中式与分布式呢?在这里,我们所说的网络的集中式与分布式通常指的是控制平面的结构。下图是《SDN—软件定义网络》一书中对于控制平面与数据平面分布式选项的谱系图。
从上面的谱系图,我们可以看出,作者认为网络控制平面的体系有三种不同模型,一种是严格的集中式,另一种是半集中式或逻辑集中式,最后一种是完全分布式。
对于严格集中式控制平面,其有以下特点:
1.最常用于实验性的SDN控制器;
2.统一配置平台;
3.单点故障;
4.难以横向扩展。
而对于半集中式或逻辑集中式的控制平面,其特点为:
1.现代SDN控制器的典型方案;
2.统一配置平面,需要与幕后的其他控制平面实例进行同步,但需花费一段时间;
3.可恢复多点故障,但仍易受与其他控制平面实例状态同步的影响;
4.易于横向扩展,仅需部署控制平面的新实例。
对于完全分布式的控制平面,其特点为:
1.典型的方法;
2.每个(逻辑的或真实的)设备上有一个控制平面的实例;
3.已证明对故障的高可恢复性;
4.可能有收敛上的困难;
5.需要配置和管理N个实例;
6.难以横向扩展,横向扩展时需要增加新的设备。
那么在SDN中,我们应该怎样决定控制平面的放置位置呢?Ken Gray提出了一个很有趣的概念:革命(revolution)、演进(evolution)、传统(tradition)。
那么什么是革命方式呢?革命方式提出了将网络的控制平面完全采用集中式这样一种推倒重来的全新方案。在这一模型中,设备上并不具有控制平面的功能,这种模型 中的设备都是傻的速度很快的交换设备,被位于远端的集中式控制平面完全控制。在这里,对于鲁棒性问题,其在OpenFlow中其实已经有了一个很好的解决 方案,即同时采用多个控制器(OpenFlow在网元设备与控制器建立通信时提到了这个方案)来处理控制器异常情况。对于多个控制器之间的共存方 式,OpenFlow提出了两种模式,一种是对等模式(Equal),另一种是主从模式(Master/Slave)。关于这两种模式的不同,在后面关于 OpenFlow协议以及SDN控制器方面还会有一个详细的讲解。
演进方式指的是谱系图中间的半集中式控制平面模型,它着眼于一般定义下的网络域。这种模式通常能以某种形式和分布式的控制平面一起工作,这意味着设备还保留 了一些传统的控制平面功能(如ARP处理或MAC地址学习),同时允许一个集中式的控制器来操控其他功能,即采用集中式操作范式更方便的那些功能,这种观 点往往被当作混合模式或“承载/叠加”的概念,即分布式控制平面作为承载,而集中式控制平面在利用承载网进行网络传输的基础上,在逻辑上叠加新的功能。对 于这种模式,我们常常需要考虑到这样一个问题,如何实现“承载/叠加”?在OpenFlow白皮中,定义了两种不同的交换机,一种是OpenFlow专用 交换机(Dedicated OpenFlow Switch),另外一种是兼容OpenFlow交换机(OpenFlow- Enabled Switch)。其实,在这里,兼容OpenFlow交换机就是演进方式下的产品。兼容OpenFlow的交换机与OpenFlow专用 交换机的不同在于两个方面:一是兼容型交换机有一个Normal预留端口(Resevered Port);二是兼容型交换机支持从正常处理管线转发数据 包的数据包处理方式。由于这种交换机只需在传统交换机上兼容OpenFlow协议,因此可以作为由完全分布式到严格集中式的有效过渡。