ESPP:基于SDN的节能路径规划系统
2018-11-30肖军弼吴晓菲
肖军弼 吴晓菲 陈 松
(中国石油大学(华东)计算机与通信工程学院 山东 青岛 266580)
0 引 言
基于Fat-tree拓扑的数据中心网络设计的两个原则:资源超额供给、设备链路冗余设计,有悖于低碳节能的目标[1-2]。首先,高容量网络特别适用于最坏情况或繁忙时间负载,但在大多数时间数据中心流量远低于峰值[3]。具体而言,数据中心网络的白天流量和夜晚流量变化很大——白天高峰、晚上低谷。网络繁忙时的设备、链路利用率尚不足30%,很多网络空闲时甚至不足5%[1]。此外,数据中心网络需要在保证网络吞吐量的同时为上层提供高性能和高容错的路由转发服务,因此在低负载情况下仍将维持很多无数据流通的“富连接”,这将使得多数设备及链路处于闲置状态,造成大量电能的无效浪费。网络中能量浪费和能耗成本的约束往往成为限制其规模和服务能力的瓶颈[1],节省网络能耗、构建绿色网络成为计算机网络领域亟需解决的研究课题。
在降低数据中心网络(DCN)的能量消耗方面,相关学者提出以下方案[3-6]:当DCN处于低负载情况时,动态整合网络流量,并将无数据流通的交换机休眠,以节省整体网络能耗。然而,该方案的研究仍局限于传统网络思维方式,基于传统网络架构的DCN具有纯分布式控制、控制与转发高度耦合的特点,管理者不能从全局的角度对包传递的整体路径进行指定,只能通过包头标识符的方式对数据包进行有限地约束或优化。软件定义网络作为一种新型网络架构,打破了传统网络设计理念[7],为数据中心能耗问题提供了新的解决方案。SDN具有强大的集中管控能力,控制器通过实时监控并控制交换机状态,能够实现在保证网络服务质量的前提下调度数据包的转发,并休眠闲置的交换机,从而实现绿色节能。
本文基于SDN架构理念,通过开发ESPP系统计算通信主机之间的最优数据包转发路径,动态整合网络流量,分析可进入休眠状态的设备,达到节约DCN能耗的目的。在设计并实现该系统时,需要在仿真环境下搭建基于Fat-tree拓扑的DCN,设计节能路径算法,建立传统网络与节能网络进行相同数据转发的能耗对比模型,同时借助控制器进行全网流量监控,在保证网络可靠性的基础之上分析出无数据流通的交换机。
1 概要设计
ESPP是一个基于客户端开发的系统,主要由客户端程序、SDN控制器以及底层网络设备三部分组成。系统整体架构如图1所示。
图1 系统整体架构
客户端使用MVC设计模式,用户通过客户端可以查看全局网络拓扑、下发指定通信主机之间的最优路径策略、对比传统网络与节能网络进行相同数据转发的能耗情况。该系统中的SDN控制器采用Floodlight开源控制器(为使功能完全,对该控制器稍做修改),南向接口基于OpenFlow v1.3协议[8],该协议是当前控制平面与数据平面之间最具影响力的南向接口协议。Floodlight控制器通过南向接口与Mininet模拟生成的虚拟网络通信,完成网络信息的获取以及转发策略的下达,客户端程序则通过北向标准化接口REST API以及为强化程序功能开启的TCP/UDP通道与控制器进行交流。
2 详细设计与实现
2.1 功能模块划分
经概要分析后,节能路径规划系统的具体功能模块如图2所示。
图2 系统功能模块
根据功能模块划分得出系统主要包括以下具体功能:
系统的拓扑信息展示功能是系统的基础功能,用户通过该功能可以查看整个网络的物理拓扑状态,包括设备及链路。系统采用图形化界面显示拓扑结构,界面图标分布均匀,方便用户查看。此外,当用户进行相关节能路径的下发时,用户可通过该功能查看当前已完成下发的路径信息。
系统的节能路径计算功能是系统的核心功能,该功能通过列表形式显示指定通信主机之间的所有可达路径,并且通过节能路径算法对所有路径进行排序,以找出保证网络服务质量的能耗最低的最优路径,用户便能使用该条路径完成数据包的转发工作。
系统的数据流实时展示功能包括能耗监控和流量监控两部分,该功能将虚拟网络中交换机的数据包流动情况以及实时耗能情况展示给用户,在节能策略下发、数据流整合完成之后,用户通过该功能所呈现的数据可以轻松得出当前处于活跃状态的交换机,则剩余交换机即可进入休眠状态。
系统的网络能耗对比功能将计算并对比传统网络与SDN网络进行相同数据转发的能耗情况,该功能借助搭建好的能耗度量模型分别计算两种网络架构的能耗度量值,验证系统的节能有效性。
系统的其他功能主要是为优化系统工作、方便用户使用而设计的,比如系统配置功能的作用是当软件中的部分数据无法直接获得(例如控件大小位置,拓扑图标位置)或参数需要额外设定(能耗计算模块系数)时,由配置文件直接给出,具有优化代码编程的优点;自动调节功能则是实现无人工干预、系统自动工作的基础,该功能在Floodlight控制器发送数据包以后,自行分析数据包,进行最优路径计算,并完成节能策略的下发。
该节能路径规划系统能够正常、快速、稳定地运行,界面简洁明晰,易于用户使用;系统具有良好的可移植性,兼容Windows和可视化Linux;系统还具有良好的可扩展性,适应所部署的应用环境以及应对将来功能模块的添加。
2.2 节能路径算法(ESPA)设计
本文提出了一种适用于基于Fat-tree拓扑的DCN的节能路径算法ESPA(Energy-Saving Path Algorithm)。该算法的目标是计算指定通信主机之间发送数据包的路由,在满足网络性能的基础之上,路由将尽可能涉及之前已使用的交换设备,使得新唤醒的交换机的数量越少越好,提高交换机的利用率。
ESPA的基本思想如下:首先,基于深度优先搜索的思想,采用递归的方法遍历计算出指定通信主机之间的所有可达的无环路径,称为全路径。其次,计算路径的瓶颈链路带宽,此处是为了保证DCN的网络吞吐量,以免网络性能受到影响。第三,网络设备的休眠与激活状态转换需要耗费一定的能量,为了提高网络设备的利用率,并在满足通信需求的状况下开启尽可能少的网络设备,计算如果使用当前路径会额外唤醒的交换机数量。最后,根据中间两步的计算结果以及路径最短原则对全路径进行排序,选择排序结果中的第一条路径(若排序结果中有多条路径满足条件,则人为选择第一条路径),并将该条路径所对应的流表下发到Floodlight控制器中用于指导数据包的转发。ESPA流程图如图3所示。
图3 节能路径算法流程图
算法1节能路径算法:ESPA(G,F)
输入:
G:数据中心网络拓扑
F:网络流集合
输出:
Rf:F中网络流的最优传输路径
Begin
1 R←全路径计算
2 H←计算吞吐率
3 链路瓶颈带宽最大
4 交换机利用率最高
5 路径排序
6 人为选择排序结果中的第一条路径
7 return Rf
End
2.3 能耗度量模型建立
该系统中的传统网络与节能网络的能耗对比功能需要建立能耗度量模型,以此比较两者进行相同数据转发的能耗情况。该模型中的能耗度量算法所使用的计算公式由三部分构成,分别是控制器的支撑能耗,记为F(C);单个活跃交换机的支撑能耗,记为S(C); 单个活跃端口的支撑能耗,记为P(C)。在使用同种交换机的情况下,例如该系统中使用的交换机均为Open vSwitch(OVS)交换机,则能耗计算公式为:SUM(C)=F(C)+X×S(C)+A×P(C),其中X为活跃交换机数量,A为活跃端口的数量。
通过阅读相关文献并分析[3,9],在本系统中的简化能耗模型设定单个活跃交换机的支撑能耗为9(计算总能耗时需要首先判断交换机中是否有流表,没有流表则代表该交换机处于休眠状态,计算过程需将此类交换机排除),设定单个活跃端口的支撑能耗为1。SDN网络架构中的控制器支撑能耗设定为20,用以支撑控制器的运作。对于传统架构网络,所有交换机均处于唤醒状态,同样交换机的所有端口也都是唤醒状态,并且传统网络中无控制器参与,故其控制器支撑能耗为0。
3 测试与分析
3.1 环境搭建
搭建系统环境是开发节能路径规划系统中至关重要的一步,环境搭建过程如图4所示。
图4 系统环境搭建
由于本系统的结构、功能以及测试过程均较为复杂,为降低复杂度,在测试部分主要针对该系统的节能路径计算与网络能耗对比两大功能进行阐述。测试中所用的模拟数据中心网络Fat-tree拓扑如图5所示,该拓扑由Mininet网络仿真工具搭建。
图5 模拟数据中心网络Fat-tree拓扑
3.2 节能路径计算功能测试
默认情形下,Floodlight控制器中的Forwarding模块是保持开启的,为避免该模块对节能路径下发产生影响,需要在客户端内将其关闭,则此时拓扑中的各主机无法互通,通信情况如图6所示。下面以主机H1到主机H8为例进行系统节能路径计算功能的测试。
图6 主机通信情况图1
在客户端程序中输入“1-8”,代表“主机H1到H8”,系统将根据拓扑首先计算出主机H1到H8的所有可达无环路径,结果显示从H1到H8共有16条路径,如图7所示。依照算法流程图,接下来系统将按照路径瓶颈链路带宽的大小、新唤醒交换机的数量以及长度,对H1到H8的所有可达无环路径进行排序,并产生列表式的排序结果,则排序结果中的第一条路径即为节能路径。最后,选择该条路径进行H1到H8的数据包的转发策略的下发,此时主机H1与H8可以相互Ping通,其他主机之间无法互通,主机通信情况如图8所示。
图7 主机H1到H8的全路径
图8 主机通信情况图2
测试结果表明,系统使用节能路径算法能够计算出指定通信主机之间的节能路径:H1→S9→S6→S3→S8→S12→H8,并通过该路径下发节能策略,如图9所示。接下来,将继续进行传统网络与节能网络的网络能耗对比测试,验证系统的节能有效性。
图9 节能流表下发图
3.3 网络能耗对比功能测试
系统在下发“H1→S9→S6→S3→S8→S12→H8”流表的情况下,客户端的“流量监控”以及“能耗监控”功能将显示:交换机1、2、4、5、7正处于休眠状态;而交换机3、6、8、9、10、11、12处于激活状态。由于9、10、11、12交换机是边缘交换机,需要时刻监听主机数据包,故不能进入休眠状态。此外,当前下发的节能路径中的交换机为9、6、3、8、12,所以这些交换机要处于活跃状态。
在该路径的基础之上, 引入网络负载程度不同的多条流量进行系统的节能效果测试,依据ESPA节能路径算法调度各条流量,使流量尽可能通过已经处于活跃状态的交换机进行转发,而无需重新唤醒当前休眠的交换机,以规避交换机进行休眠-活跃状态切换所产生的能耗(由于该部分能耗较少,故在本文设计的简化能耗模型中省略)。
客户端的“能耗对比”功能将根据前文所述的能量度量模型,计算传统架构网络与SDN架构节能网络下完成一系列数据包转发的系统能耗,传统网络下的能耗由全部交换机与全部端口的数据计算得来,而SDN网络的能耗由活跃交换机、活跃端口以及控制器支撑能耗组成。
在模拟的数据中心网络Fat-tree拓扑中,系统针对所输入的不同流量,进行最优路径选择,并计算相应网络能耗。经过对一系列能耗数据的处理汇总得出图10,该图显示了在进行相同数据转发时,SDN架构节能网络相比于传统架构网络的能耗节省情况。该图中的折线表示在网络拓扑固定的情况下,当数据中心网络处于低负载状态时,即网络较为空闲,SDN架构网络能够显著降低整个网络的能耗,达到绿色节能的目的。但随着网络负载的增加,节能效果将逐渐下降,这是由于为保证网络服务质量,需要更多的交换机参与数据包的转发工作,所以处于休眠状态的交换机的数量将会越来越少。
图10 SDN网络相比于传统网络的网络节能情况
4 结 语
本文以数据中心Fat-tree网络下的节能路径计算以及网络能耗对比为主要研究内容,设计了ESPP:基于SDN的节能路径规划系统。该系统基于SDN架构和OpenFlow协议,通过REST API与控制器交互,获取全网拓扑信息、计算指定通信主机之间的节能路径并指导控制器根据节能路径计算结果下发流量调度策略,降低数据中心网络能耗,实现绿色节能环保。较之其他基于传统网络思维的节能技术,本文提出的基于SDN的节能路径规划更为灵活可靠,借助控制器强大的集中管控特点,能够在保证网络服务质量的前提下动态整合网络流量,降低网络流量对大多数交换机的依赖程度,并将没有流量的交换机置于休眠状态,切实降低网络能耗。针对数据中心网络中的能耗度量模型,在后续工作中将对该方面予以完善,模型中的能耗影响因子将更加全面,以进一步增强系统的可靠性。