论文部分内容阅读
近年来,网络中间件作为互联网的基石支撑着各种互联网服务的迅猛发展,然而因其价格昂贵、能量开销大、灵活性差和生命周期短等缺陷制约着网络中间件的大规模部署和管理。为了解决专用中间件的种种缺陷,网络功能虚拟化(Network Function Virtualization,简称为NFV)技术在工业界中应运而生,并在各大服务提供商的支持下越来越流行。网络功能虚拟化现在正处于快速发展的阶段,所以在NFV领域内仍然存在很多挑战。其中动态资源分配和调度问题及虚拟网络功能性能瓶颈问题是目前最受关注的两个挑战,受到学术界和工业界的广泛关注。传统的资源分配和调度算法主要是离线的最优化算法,这些离线算法的前提条件往往是假定已经有一批服务链请求到达,编排器(Orchestrator)具有相对充足的时间通过最优化算法获取全局最优解,然后完成最优的放置。但是在实际的情况下,服务链请求预先并不知道,而是在任意时刻都会有源源不断的请求陆续到达,编排器需要能够立即处理到达的请求,并且在有限的时间内完成较优的放置;而不是批量的对一堆请求进行处理,不考虑处理时间长短。所以我们需要能动态的完成资源分配和调度,然而目前的动态资源分配和调度算法很少,仅有的算法在为了能够提高处理速度,在选择候选放置节点时,缩小了搜索域,从而导致部分可行解被遗漏。至于虚拟网络功能性能瓶颈问题,是由于运行在通用服务器上的虚拟网络功能的性能远远比不上专用的物理硬件,仅仅使用单一的或者少量虚拟网络功能,会造成单点故障和瓶颈问题。而传统的横向拓展,使得整体系统变得十分复杂,难以检测错误。本文针对动态资源分配和调度问题及虚拟网络功能性能瓶颈问题展开了研究,论文的主要工作如下:(1)基于资源共享的动态服务功能链分配和调度方案。根据线上环境中服务链请求交错到达的特点,我们首先设计了一个资源共享模型:允许单个虚拟机上能够运行多个VNF,这些VNF按到达顺序排列在队列中,只有前面的VNF执行完成了,后续的VNF才能开始执行。这样的模型允许服务链请求存在一定的等待,能够等待其他服务链释放资源后再执行放置。在合理的等待时延内,能够有效的利用数据中心内有限的资源,提高综合收益。其次,为了能够提高资源分配算法的执行效率,同时不影响请求的接受率,我们设计了一种基于有限状态自动机(FSM)的自动监控机制,由原先的主动监测转换为被动监测,最大限度的降低资源监控的代价。最后,为了尽可能的降低调度的切换开销,我们设计并采用了一种快速切换机制,该机制主要将原本的最小资源分配单位虚拟机调整为命名空间(Namespace),更加轻量级从而降低切换时延。实验表明,该机制在有限的代价下,不仅保证了算法的效率,同时保证了请求的接受率。(2)基于管道技术的轻量级网络功能虚拟化系统。我们发现部署在每个物理节点上的虚拟交换机提供多级流表的功能,即管道功能(Openvswitch Pipeline)。通过不同流表跳转组合,能够实现一些简单网络功能。所以我们以管道技术为基础设计了一种新颖的轻量级网络功能虚拟化系统,该系统为目前大多数的虚拟网络功能提供了简便通用的API,软件实现的虚拟网络功能通过JSONRPC远程调用API,能够实现对本地虚拟交换机的管道进行直接控制,从而能够将虚拟网络功能的部分功能通过管道来实现,最终实现了VNF部分功能本地完成,避免将网络流量全部导入远程的虚拟网络功能节点处理。实验表明,通过该系统部分网络功能能够直接本地完成,不需要再经远程节点处理,减轻了远程虚拟网络功能的负载,一定程度上减轻了软件虚拟网络功能的瓶颈问题;同时部分流量不再导入远程虚拟网络功能,也减缓了网络的负载,缩短了通讯时延。