Internet固有体系暴露出越来越多的僵化性和不适应性[1-3]。为了解决当前Internet面临的困境以及为新的设计提供真实的实验床,在借鉴系统虚拟化技术思想的基础上,提出了网络虚拟化技术。网络虚拟化技术指在同一物理基础设施上构建出若干的虚拟网络[4]。虚拟路由器是支撑虚拟网络运行的关键网络设备,通过对传统的路由器中控制平面和数据平面虚拟化,构建出若干个逻辑功能平面。目前,虚拟路由器架构通常采用二层体系:转发平面和控制平面。它既可采用操作系统虚拟化技术来实现[5],比如Xen、VMWare等虚拟化工具,也可采用软硬件相结合的方式[6]。为了保证虚拟路由器的转发性能,物理基础设施通常采用“池化”构建方式,要求虚拟路由器平台具有一套功能完善的管理与维护程序[7-8]。目前,虚拟路由器的研究热点集中在数据平面的性能优化、多逻辑转发引擎隔离等方面,尚未有文献针对虚拟路由器平台提出一套管理控制系统。
针对网络虚拟化技术部署对虚拟路由器功能需求[9-10],分析了现有的虚拟路由器在管理与维护等方面存在的不足,将虚拟路由器的架构进一步划分为:转发平面、控制平面和资源管理平面。根据虚拟路由器部署与管理的实际需求,设计并实现了面向虚拟路由器平台的资源管理平面,用于负责单个虚拟路由器平台的物理资源管理与维护、路由器实例的创建与撤销等任务。最后,基于本项目的“支持多网络体制并存与隔离的、新型的、开放式可重构路由器体系架构”[11]实现了面向虚拟路由器平台的资源管理平面的原型系统,并对原型系统的最大处理能力、实例部署时间以及策略模板规模等性能指标进行了测试。通过分析实验结果可知,资源管理平面每秒能处理约3205条管理与配置请求,满足虚拟路由器管理的性能需求;单个路由器实例创建的时间开销约为4.86 s。
1 支持虚拟化的路由器架构为了解决二层的虚拟路由器[12]在管理与维护平台存在的不足以及满足物理基础设施“池化”的需求,本文在分析与研究虚拟路由器的功能需求基础上,提出了一种三层次的虚拟路由器架构。它既可以保证平台具有较高的转发性能,又能确保平台良好的扩展性,如图 1所示。
虚拟路由器架构由转发平面、控制平面和资源管理平面等三层构成。其中,转发平面用于承载多逻辑转发引擎,运行报文转发业务,比如查找路由表、访问控制表等[13];控制平面用于承载多逻辑控制引擎,部署各类路由协议,比如开放式最短路径优先(Open Shortest Path First,OSPF)[14]、边界网关协议(Border Gateway Protocol,BGP)[15]等;资源管理平面用于获得虚拟路由器平台的物理资源信息,并依据物理资源信息来决定路由器实例部署信息以及平台配置策略。资源管理平面与各个物理资源板间通信通过服务代理Agent实现,通信的消息内容包括物理资源板将自身资源信息通告给资源管理平面的消息以及资源管理平面配置物理资源板的策略消息等。本文对三层次的虚拟路由器架构中资源管理平面进行重点研究,通过分析平台的实际部署需求,设计与实现了资源管理平面的架构以及处理机制。
2 资源管理平面的框架资源管理平面是单个虚拟路由器平台的重要组成部分,负责物理资源管理和路由器实例部署/撤销;它也是管理员与虚拟路由器平台间交互的通信管道,增强了管理虚拟路由器平台的灵活性和便利性。资源管理平面在感知物理资源基础上,利用路由器实例映射算法计算出实例部署的策略模板,并分发至对应的物理资源板来实施;同时,为了提升虚拟路由器平台管理的灵活性,提供了规则定制的功能,可以约束或限制路由器实例部署的环境。
资源管理平面包括物理资源感知机制、路由器实例映射机制、规则匹配机制和用户管理界面四部分,如图 2所示。其中,物理资源感知机制收集虚拟路由器平台的物理资源信息,是资源管理平面实施路由器实例部署的前提条件,包括资源发现和物理资源库等模块;路由器实例映射机制模块是资源管理平面的核心功能,用于计算路由器实例与物理资源的映射关系以及生成策略模板,包括路由器实例映射算法、实例部署生成算法、实例策略库以及策略分发等模块;规则匹配机制支持定制约束虚拟路由器平台的方案,为管理员灵活地管理与维护平台提供便捷方案,由规则库构成;用户管理界面是管理员与虚拟路由器平台的交互通道。这四个部分相互协调工作,共同支持虚拟路由器平台的管理和维护任务。
在支持虚拟化的路由器体系架构中,物理资源包括支持虚拟化的转发资源池和支持虚拟化的控制资源池两类:前者用于部署虚拟路由器的逻辑转发引擎,后者用于部署虚拟路由器的逻辑控制引擎。为了实现路由器实例的部署,资源管理平面首先感知这两类资源的基本信息,存储在自身物理资源库中。因此,物理资源在接入平台前,首先向资源管理平面进行物理资源注册,通告它的物理资源的基本信息。由于两类资源支撑的功能平面不同,资源管理平面感知它们的物理资源的基本信息也存在差异。比如,资源管理平面感知转发资源的基本信息包括:CPU核数、CPU主频、主存容量、网络接口数量以及各个接口的类型、接口的链路带宽、支持最大的虚接口数量等信息;对于控制资源,资源管理平面仅它的感知CPU核数、CPU主频、主存容量以及网络接口支持的链路带宽总和等信息。
同时,资源管理平面还需对物理资源进行“心跳”探测,通过这种方式来检查物理资源在线状态。当资源管理平面探测到某物理资源不在线时,可以主动地触发规则库中规则,重新计算路由器实例与物理资源映射关系,确保已部署的路由器实例尽可能不受物理资源故障的影响。
2.2 路由器实例映射机制路由器实例映射机制是资源管理平面的核心功能,其主要负责虚拟路由器实例创建、撤销以及维护任务。根据路由器实例管理与维护的流程,它包括3个子任务:1) 路由器实例与物理资源间映射关系的计算;2) 部署路由器实例的策略模板的生成;3) 部署路由器实例的策略模板的分发。
2.2.1 路由器实例与物理资源间映射关系的计算路由器实例与物理资源间映射关系由路由器实例映射算法计算出。它根据物理资源库存储的总资源信息以及路由器实例已占用资源信息,计算出平台可用的物理资源[16]。在此基础上,该算法判断当前平台的可用资源是否满足用户需要创建的路由器实例性能需求。只有满足以上条件时,它才会计算出该路由器实例需要部署在哪些物理资源板以及各个物理资源板的占用量,如图 3所示。
依据路由器实例映射算法计算的结果,实例部署策略生成模块将映射关系翻译为配置物理资源板的策略,并生成若干策略模板,存储在实例策略库中。策略模板与物理资源板是一一对应的,每个策略模板用于配置单个物理资源板。同时,策略模板由一系列的可执行命令行组成,物理资源板通过解析命令行的方式而达到配置策略的目的,如图 4所示。
策略模板规模与路由器实例映射算法计算出的结果密切相关。比如,当一个具有两接口的路由器实例映射到一块转发资源板和一块控制资源板时,需要两个策略模板,命令行总数为49条;当该路由器实例映射到两块转发资源板和一块控制资源板时,需要三个策略模板,命令行总数为75条。
2.2.3 部署路由器实例的策略模板的分发部署路由器实例的策略模板的分发任务是指将实例部署策略生成模块生成的策略模板分发至对应的物理资源板,并收集物理资源板执行策略模板的结果。它并不需要存储策略模板的信息,仅依据策略模板携带的物理资源板的标识来实现策略模板的分发。资源管理平面将策略模板的生成与分发拆分为两个子任务能够保证路由器实例映射机制具有良好的灵活性和扩展性。
2.3 规则匹配机制规则匹配机制指当平台某一事件满足规则库中某条规则的条件时,实现系统的自动化调整。规则匹配机制对路由器实例部署的影响主要表现在两个方面:限制路由器实例的部署策略模板或者动态地调整路由器实例。因此,规则匹配机制可以允许定制虚拟路由器平台,满足不同的业务需求。
2.3.1 限制路由器实例的部署策略模板规则库中规则可以是路由器实例映射算法的约束条件。当计算出路由器实例与物理资源映射关系后,需要检查规则库中规则,判断当前映射关系是否满足规则的条件:一旦满足,它需要重新调整路由器实例与物理资源的映射关系。通过灵活的配置规则,可以限制路由器实例的部署策略模板。比如,管理员可以强制指定物理接口支持最大的虚拟接口数,一旦虚拟接口数超过限定值时,表明该路由器实例不满足部署需求,要求重新计算实例与物理资源间映射关系。
2.3.2 动态调整路由器实例规则库中规则也可以用于实现路由器实例的自动调整。在平台运行过程中,一旦某条规则的条件满足,会触发系统动态地调整路由器实例。比如,当某转发资源板下线时,会检查规则库中规则是否允许系统自动调整路由器实例:如果规则存在,系统会触发路由器实例映射算法来调整部分部署在该转发资源板的路由器实例;当撤销某路由器实例时,检查规则库中规则是否要求对剩余的路由器实例进行调整,将路由器实例集中部署在尽可能少的物理资源板,达到降低功耗的目的[17]。
规则匹配机制允许管理员灵活地限定路由器实例部署的约束条件,使得路由器实例在预期的物理资源板上部署。同时,通过配置动态调整路由器实例的条件,一旦满足规则条件时,自动地调整路由器实例。因此,规则匹配机制可以实现资源管理平面对虚拟路由器平台的自动化管理。
2.4 用户管理界面用户管理界面用于管理与维护物理资源、配置规则库以及管理与维护路由器实例的通道,实现管理员与虚拟路由器平台间交互,其良好的架构设计能够降低管理的复杂性以及增强配置的便利性。
目前,用户管理界面采用命令行界面(Command Line Interface,CLI)方式[18],命令组成采用树形组织方式,如图 5所示。树形的命令组织方式将命令类型划分为三类:PHYSICAL_NODE(用于管理与维护物理资源)、RULE_NODE(用于配置规则库)和VROUTER_NODE(用于管理与维护路由器实例)。树形的命令组织方式不仅可以方便管理员的操作,而且确保命令行具有良好的扩展性。
管理员通过命令行的方式与虚拟路由器平台交互,包括查询物理资源的基本信息和路由器实例的运行状况等信息、设置规则库中规则、管理物理资源板以及创建路由器实例等。一个设计良好的用户管理界面可以极大地方便管理员操作虚拟路由器平台,从而降低维护平台的代价。
3 路由器实例分配流程在虚拟路由器平台中,路由器实例分配流程包括两种方式:静态创建和动态调整。静态创建指管理员首次为路由器实例分配物理资源,通常由新的路由器实例创建请求触发。动态创建指路由器实例在运行过程中,对路由器实例的配置进行调整。比如,当路由器实例满足规则库中规则的条件时,触发路由器实例映射机制重新计算路由器实例与物理资源间的映射关系。
3.1 路由器实例静态创建管理员在虚拟路由器平台创建路由器实例时,通过用户管理界面输入该实例的性能指标,包括转发性能、接口数量以及接口的链路带宽等信息。路由器实例映射算法首先检查尚未占用的物理资源是否满足实例的性能需求:只有物理资源能承载该实例时,将输入的性能指标翻译成路由器实例与物理资源的映射关系,并逐条匹配规则库中规则,检查计算出的路由器实例与物理资源的映射关系是否满足规则的条件:一旦满足某条规则的条件时,在该约束条件下重新计算路由器实例与物理资源的映射关系直至满足规则库中所有规则。然后,实例部署策略生成模块进一步将路由器实例与物理资源的映射关系转化为物理资源板可执行的策略模板,并把策略模板存储在实例策略库中。最后,策略分发模块将策略模板分发到指定的物理资源板,并把物理资源板执行的结果通过用户管理界面反馈给管理员。管理员通过反馈结果确认路由器实例是否创建成功。
3.2 路由器实例动态调整与路由器实例静态创建流程不同,路由器实例动态调整与管理员的配置规则密切相关。在原型系统中,资源管理平面支持两种条件下的路由器实例动态调整:一、路由器实例撤销时,资源管理平面是否允许对路由器实例动态调整,将剩余路由器实例部署在数量较少的几块物理资源板,尽可能降低功耗;二、物理资源板掉线,资源管理平面是否允许对路由器实例动态调整,目的在于重新映射受该单点故障影响的路由器实例,保证路由器实例不受物理资源板故障的影响。
3.2.1 路由器实例撤销当某路由器实例撤销时,资源管理平面检查规则库中规则是否允许动态调整路由器实例。若允许动态调整时,路由器实例映射算法重新计算剩余路由器实例与物理资源的映射关系。经过重新计算后,若占用的物理资源板的数量与现有占用情况一致,则路由器实例不作任何调整;否则,对路由器实例进行动态调整。在计算出所有的路由器实例与物理资源的映射关系基础上,通过实例部署策略生成模块计算出各个路由器实例的策略模板,并分发至对应的物理资源板。同时,它会将清除实例策略库存储的旧的策略模板,并把新的路由器实例的策略模板存储在实例策略库中。
3.2.2 物理资源板掉线资源管理平面探测到某个物理资源板掉线时,同样检查规则库中规则是否允许动态调整路由器实例。若允许动态调整,路由器实例映射算法仅调整受物理资源板掉线所影响的路由器实例和物理资源之间的映射关系。其他流程与路由器实例撤销时动态调整路由器实例的流程是一致的。
4 实验测试与结果分析 4.1 实验环境转发资源池和控制资源池都采用IBM nx360服务器:Intel Xeon CPU E5-2620、64 GB内存、2个万兆网卡和2个千兆网卡以及Linux CentOS6.5系统,各自具有4块资源板;资源管理平面采用IBM x3650服务器:Intel Xeon CPU E5-2680、64 GB内存、1个千兆网卡以及Linux CentOS6.5系统。另外,转发资源池与控制资源池、服务器与转发资源池以及控制资源池间连接采用GALAXYWIND系列交换机,具有24个千兆网卡。
基于面向虚拟路由器的资源管理平面的原型系统,测试并分析资源管理平面的3个性能指标:最大处理能力、实例部署时间以及策略模板规模。
4.2 最大处理能力最大处理能力指资源管理平面在单位时间内可以完成的请求最大数量。这些请求包括物理资源的探测保活、配置物理资源的请求以及部署路由器实例等。为了验证资源管理平面能够满足虚拟路由器管理的性能需求,测量资源管理平面处理这些请求的时间开销,如表 1所示。
通过分析表 1实验结果可知,各类请求的时间开销约为0.3 ms:资源管理平面探测物理资源板在线状态需要0.301 ms;管理员使能物理接口或关闭物理接口时需要0.308 ms;在规则库为空和平台具有8块物理资源板时,管理员配置完路由器实例到策略模板分发至物理资源板需要0.312 ms;管理员指定删除某个路由器实例到删除命令到达指定的物理资源板需要0.311 ms;因此,资源管理平面最大的处理能力约为每秒处理3205条请求,能够满足当前虚拟路由器管理与维护的需求。
4.3 实例部署时间实例部署时间指资源管理平面部署路由器实例花费的时间,表示管理员从配置完路由器实例的性能指标到接收到路由器实例创建应答间的时间开销。路由器实例的部署包括两大任务:创建逻辑转发引擎和创建逻辑控制引擎。因此,除了测量实例部署时间外,还分别测量创建逻辑转发引擎、创建逻辑控制引擎以及配置路由器实例接口的时间开销,如表 2所示。
通过分析表 2实验结果可知:创建单个路由器实例的时间开销约为4.857 s,与创建逻辑控制引擎的时间开销是一致的。由于资源管理平面支持并行向转发资源板和控制资源板下发策略模板,使得路由器实例创建的时间开销是两大任务中最大时间开销决定的。因此,在对路由器实例动态调整过程中,应尽可能地保持逻辑控制引擎的部署位置不做改变,避免调整路由器实例导致该实例中断任务时间过长。动态调整转发引擎会引起路由器实例中断转发任务,中断时间约为2.288 s;而动态调整路由器实例的接口的时间开销小于1 ms,对路由器实例的影响最小。
4.4 策略模板规模策略模板规模指资源管理平面部署单个路由器实例所需要的总策略条数。为了证实路由器实例的接口数量和路由器实例部署的转发资源板数量对策略模板规模的影响,分别测量不同条件下策略的总条数,如图 6所示(图 6(a)表示路由器实例部署在单个转发资源板时,路由器实例的接口数量对策略模板规模的影响;图 6(b)表示路由器实例具有两个接口时,路由器实例部署的转发资源板数量对策略模板的影响)。
通过分析图 6数据可知,策略模板规模与路由器实例的接口数量、路由器实例部署的转发资源板数量呈线性相关:随着路由器实例的接口数量的增加,策略模板规模呈线性增加;随着路由器实例部署的转发资源板数量增加,策略模板规模呈线性增加。路由器实例部署的转发资源板数量对策略模板规模的影响大于路由器实例的接口数量对策略模板规模的影响。因为路由器实例部署转发资源板的数量每增加一个,策略总条数增加26条,并增加1个策略模板;而路由器实例的接口数量每增加一个,策略总条数仅增加19条,且策略模板数量不变。因此,资源管理平面计算路由器实例与物理资源映射关系时,应尽可能将路由器实例部署在单个转发资源板上。
5 结语目前,虚拟路由器的研究集中在如何构建相互独立且并行运行的路由器实例。鉴于当前虚拟路由器的研究现状,结合项目实施的具体需求,本文提出了三层的虚拟路由器架构:资源管理平面、转发平面以及控制平面,着重对资源管理平面和实现机制进行阐述。最后,通过基于面向虚拟路由器的资源管理平面原型系统,证明资源管理平面能够满足虚拟路由器管理与维护的性能需求。
下一步的工作是改进和完善资源管理平面的用户管理界面,采用可视化的方式来替代现有的CLI解决方案,提供一种更加便捷的管理与维护平台的展现方式;同时,利用多核、多线程技术进一步提升资源管理平面的性能,特别是在满足物理资源规模较大的情景下。
[1] | WANG Y, LI Z, TYSON G, et al. Design and evaluation of the optimal cache allocation for content-centric networking[J]. IEEE Transactions on Computers, 2016, 65 (1) : 95-107. doi: 10.1109/TC.2015.2409848 |
[2] | FEAMSTER N, REXFORD J, ZEGURA E. The road to SDN:an intellectual history of programmable networks[J]. Computer Communication Review, 2014, 44 (12) : 87-98. |
[3] | FELDMANN A. Internet clean-slate design:what and why?[J]. ACM SIGCOMM Computer Communication Review, 2007, 37 (3) : 59-64. doi: 10.1145/1273445 |
[4] | KITAZUME H, KOYAMA T, KISHI T, et al. Network virtualization technology to support cloud services[J]. IEICE Transactions on Communications, 2012, 95 (8) : 2530-2537. |
[5] | COUTO R S, CAMPISTA M E M, COSTA L H M K. Network resource control for Xen-based virtualized software routers[J]. Computer Networks, 2014, 64 (4) : 71-88. |
[6] | 高先明, 张晓哲, 王宝生, 等. 面向虚拟路由器的基于历史转发开销的资源调度算法[J]. 电子与信息学报, 2015, 37 (3) : 686-692. ( GAO X M, ZHANG X Z, WANG B S, et al. Historical forwarding overhead based the resource scheduling algorithm for the virtual router[J]. Journal of Electronics and Information Technology, 2015, 37 (3) : 686-692. ) |
[7] | CHOI H F W, LEE P P C. An extensible design of a load-aware virtual router monitor in user space[C]//Proceedings of the 201241st International Conference on Parallel Processing Workshops. Piscataway, NJ:IEEE, 2011:361-370. |
[8] | 李坤丽, 张大方, 关洪涛, 等. 虚拟路由器管控平面的设计与实现[J]. 计算机工程, 2014, 40 (5) : 94-98. ( LI K L, ZHANG D F, GUAN H T, et al. Design and implementation of management and control plane for virtual router[J]. Computer Engineering, 2014, 40 (5) : 94-98. ) |
[9] | CHEN X, PHILLIPS C. Virtual router migration and infrastructure sleeping for energy management of IP over WDM networks[C]//TEMU 2012:Proceedings of the 2012 International Conference on Telecommunications and Multimedia. Piscataway, NJ:IEEE, 2012:31-36. |
[10] | DONG Z, CHUN M W, WEI X, et al. Research on virtual network design based on virtual router[C]//ICFIN 2009:Proceedings of the First International Conference on Future Information Networks. Piscataway, NJ:IEEE, 2009:66-69. |
[11] | 卢泽新, 张晓哲, 马世聪, 等. 面向多网络体制并存的开放式可重构路由器体系结构设计与实践[J]. 通信学报, 2013, 34 (3) : 126-133. ( LU Z X, ZHANG X Z, MA S C, et al. Design and implementation:an open and reconfigurable router architecture with different network system supported[J]. Journal on Communications, 2013, 34 (3) : 126-133. ) |
[12] | XIE G, HE P, GUAN H, et al. PEARL:a programmable virtual router platform[J]. IEEE Communications Magazine, 2011, 49 (7) : 71-77. doi: 10.1109/MCOM.2011.5936157 |
[13] | KELLER E, GREEN E. Virtualizing the data plane through source code merging[C]//PRESTO' 08:Proceedings of the ACM Workshop on Programmable Routers for Extensible Services of Tomorrow. New York:ACM, 2008:9-14. |
[14] | FORTZ B, THORUP M. Internet traffic engineering by optimizing OSPF weights[C]//INFOCOM 2000:Proceedings of the Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies. Piscataway, NJ:IEEE, 2000:519-528. |
[15] | FEIGENBAUM J, PAPADIMITRIOU C, SAMI R, et al. A BGP-based mechanism for lowest-cost routing[J]. Distributed Computing, 2005, 18 (1) : 61-72. doi: 10.1007/s00446-005-0122-y |
[16] | MELO M, CARAPINHA J, SARGENTO S, et al. Virtual network mapping-an optimization problem[M]. Berlin: Springer, 2012 : 187 -200. |
[17] | WANG Y,KELLER E,BISKEBORN B,et al.Virtual routers on the move:live router migration as a network-management primitive[C]//Proceedings of the ACM SIGCOMM 2008 Conference on Applications,Technologies,Architectures,and Protocols for Computer Communications.New York:ACM,2008:231-242. |
[18] | LOUREIRO D,GONCALVES P,NOGUEIRA A.NETCONF A-gent for link state monitoring[C]//Proceedings of the 2012 IEEE International Conference on Communications.Piscataway,NJ:IEEE,2012:6565-6569. |