(CWW)随着云计算技术及其业务的普及,数据中心云化发展逐步走向大型化、自动化、虚拟化,越来越多的分布式数据密集型应用倾向于部署在云环境中,如MapReduce、Storm、Spark等,云网络中产生超大规模东西向数据流量将成为必然趋势。上层应用共享底层物理网络带宽导致网络拥塞成为常见现象,云业务服务质量需要加强保障。
网络QoS(Quality of Service,服务质量)保障指一张网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,用来解决网络延迟和阻塞等问题。QoS保障对于容量有限的网络来说是十分重要的,而大型数据中心云业务就属于“容量有限”的范畴。
(资料图片仅供参考)
基于SDN架构的云资源池服务质量保障技术特点及解决方案
云基础设施本质上是一个虚拟化的资源池,单个操作系统和网络端口不再一一对应,在同一台物理服务器上运行的多台虚拟机之间存在着对物理网卡的竞争。传统网络QoS策略只针对物理端口,服务器所有网络行为由接入交换机直接控制。而在虚拟化环境中,虚拟机和交换机之间隔着一层服务器网卡,虚拟机层面的业务流量难以区分、管理和控制。其将预定义SLA作为QoS的参数,缺乏一定的灵活性;而SDN可提供开放应用编程接口,这为QoS保障带来新的契机。
本文设计了一套基于SDN的云数据中心业务流量QoS保障解决方案,在为云中的虚拟机业务流量提供自动化QoS保障的同时,尽可能提高物理链路利用率。通过增加虚拟接入层软件交换机(OVS),将网络接入移至物理服务器内部,进而实现对虚拟机网络策略的管理。借助SDN南向接基于SDN架构的云资源池业务流量QoS保障口,实现针对业务类型的个性化流表自动下发机制,达到虚拟机业务流量调度至特别端口队列的目的。借助SDN北向接口,监控全局虚拟机业务流量状态以及端口队列流量状态,并在此基础上设计基于实时业务流量端口队列的带宽动态调整策略。与此同时,采取分级控制的思路,在端口队列针对性设计基于流的限速策略,从而达到虚拟机业务流量QoS保障的目的。
分级的虚拟机流量业务QoS保障解决方案
传统网络流量QoS保障通常基于业务类型,这是一种粗粒度的实现方式,在同一业务占满物理带宽的情况下,很难区分相同业务的优先级。本方案将虚拟机业务流量服务质量分两级保障,分别为基于业务的带宽保障和基于虚拟机的带宽保障,在为云中虚拟机业务流量提供自动化QoS保障的同时,尽可能提高物理链路的利用率,有效解决了满带宽时同类业务QoS保障的问题,在更精细的层面上实现了对虚拟机业务流量的QoS保障。
个性化流表自动下发机制
在传统网络流量QoS保障实现中,SL A通常被用作QoS的输入参数,最终生成的网络层策略往往是预先定义的、静态的。本方案在控制器层面上实现动态流表自动化下发机制,捕获Packet-in消息,根据网络拓扑中实时业务流量的情形,动态生成个性化流表并下发至交换机。
基于实时流量的端口队列带宽动态调整算法
针对动态调整实时流量的端口队列带宽,本文提出一项简单带宽协商自适应算法,可有效解决队列带宽竞争时业务流量QoS保障问题。
QoS保障算法、策略动态管理
采用模块化和热插拔思路,支持QoS保障策略和算法动态加载、更新、删除,系统管理人员能够自定义多种算法或策略,实现策略算法模块与系统本身的高内聚、低耦合。
基于SDN架构云资源池服务质量保障方案
动态性是云计算的显著特征之一,虚拟机可以随时启动、关闭、迁移。当前基于传统网络架构的模式在支撑云计算时缺乏一定的灵活性,尤其体现在云中业务流量QoS保障方面。在云环境下,同一台宿主机上的多台虚拟机共享物理网络接口,在数据密集型业务负载过重时,势必引发对网络资源的竞争。传统QoS保障技术因敏捷性和灵活性的天然缺失,导致其无法很好地解决云中存在的问题,SDN技术实现了控制平面与转发平面的分离,摆脱了硬件对网络架构的限制,实现了网络层面较好的灵活性、敏捷性。除此之外,SDN的可编程性很好地解决了云环境下基于虚拟机业务流量的QoS保障问题。
云计算基础设施层服务采取集中式控制架构,由云控制节点管理多个计算节点,虚拟机运行在计算节点之上,云控制节点负责虚拟机具体调度。本方案主要针对宿主机内部多台虚拟机流量开展QoS保障,从而消除网络资源竞争带给虚拟机业务的影响。
具体解决方法
为体现虚拟机流量业务等级,对虚拟机业务进行分类,大致分为重要和非重要两类。为体现不同业务流量的优先级,在宿主机物理网卡对应虚拟交换机的端口上做多个限速队列,共享物理带宽,通过队列带宽的不同实现各虚拟机业务种类优先级的区分。业务流量通过SDN控制器形成个性化流表,决策业务流匹配至不同队列,并下发至交换机。
在为虚拟机业务流量提供QoS保障的同时,应尽可能提高链路利用率,故需满足以下要求:优先保证重要业务的带宽,即不同种类业务竞争网络资源时,重要业务应尽可能占满带宽,非重要业务不参与竞争;系统出现重要业务流量低谷时,非重要业务如需要更多带宽,系统将对队列带宽进行动态调整,以满足非重要业务的带宽需求;重要业务占满物理带宽时,它们之间也会出现网络资源竞争,应按虚拟机所属用户的类别保障其业务QoS,即重要用户的虚拟机重要业务将获得更多带宽资源。
因此,本文提出基于分级的虚拟机流量业务QoS保障解决方案,两级保障措施如下。
基于业务的带宽保障
对端口设置队列,在队列上做带宽限制,将业务分类并映射到队列中,队列具备优先级,重要的应用映射到优先级最高的队列中,优先级最高队列中的服务将被优先保障。也就是说,优先级最高的队列在其需要最大带宽时,将获得默认最大带宽的权利。为提供业务的带宽保障,本方案设计了基于实时流量的端口队列带宽动态调整算法。
基于虚拟机的带宽保障
当端口上的所有队列带宽比趋于稳态,并且每个队列带宽占用率处于饱和时,在相同队列里按不同虚拟机业务流的优先级做QoS保障,重要用户的虚拟机将拥有更多的带宽资源。为提供虚拟机的带宽保障,本方案设计了基于流的细粒度QoS保障策略。
系统设计
虚拟机流量数据包发送至虚拟交换机,若无流表匹配,则发至控制器。控制器截获Packet-in消息,根据特征库分析其业务类型,并转发至不同优先级的端口队列;监控端口队列流量情况,综合虚拟机类别,决定是否对业务流进行限速,同时生成个性化流表下发至虚拟交换机。
个性化流表下发模块接收到OpenFlow交换机发来的数据包,根据数据包分析其业务类型,进而调度到不同的队列,从而实现粗粒度的QoS保障,最大程度提高网络资源利用率,例如:当IP地址为10.0.0.1的虚拟机向位于不同计算节点的IP地址为10.0.0.2的虚拟机发送HTTP请求时,下发模块会解析数据包,判断其业务类型,并针对转发路径上的节点下发流表,规划流量的转发细节。
队列带宽动态调整模块主要负责队列端口流量的实时监控,通过简单带宽协商自适应算法,达到云中心重要业务优先保障的目的。业务流带宽动态调整模块主要是在重要端口队列占满物理带宽时,根据用户虚拟机的优先级,对重要级别低的虚拟机业务流进行限速。动态策略管理模块主要负责维护多种QoS策略的动态加载和删除。网络管理人员可根据业务的变化,随时添加和删除自定义的QoS策略。
结语
QoS对于IT云资源池尤为重要,是业务稳定运行的重要保障。中移动信息技术有限公司是中国移动集团旗下IT领域的专业机构,致力于打造“可信、可管、可控、可视”的精品IT云,保障IT云安全、可靠、稳定运行。中国移动IT云(私有云)已形成了“一云六中心”整体布局,建成投产算力服务器规模超30万台,成为中国最大的一朵私有云。而QoS保障将助力运营商构建技术先进、安全高效的IT云网。