论文部分内容阅读
在数据中心网络中,网络中间件承载着很重要的数据处理功能,例如网络协议处理、网络安全等。随着应用需求的变更和系统规模的扩大,传统网络中间件采用的基于专有硬件的实现显现出成本高和扩展性差的缺点。软件定义中间件提出了软硬件解耦的设计思想,试图解决专有硬件的平台独立性问题和可扩展性问题。网络功能虚拟化技术更进一步地实现了软件定义中间件的设计思想,利用硬件资源虚拟化技术(虚拟机、容器等),将网络功能从专有硬件转移到了运行在普通服务器的通用软件上。但是,随着网络带宽需求增长到25Gbps,甚至100Gbps,基于软件解决方案的网络功能虚拟化技术开始面临性能问题,包括网络吞吐率低、网络时延不稳定等问题。本文探索了使用FPGA作为加速器件,解决网络功能虚拟化面临的性能问题。但是,在加速系统设计中需要解决FPGA目前具有的一些问题,例如编程困难、代码通用性差、系统扩展困难等。FPGA开发使用Verilog/VHDL硬件描述语言,它们具有两个缺点:1)对于普通软件开发人员来说学习门槛很高;2)抽象程度低导致代码的通用性较差。同时,基于FPGA的分布式系统设计仍是一个挑战。本文提出了一个基于FPGA的、可拓展的、高性能的软件定义中间件系统OpenFunction。OpenFunction通过以下几个方面解决了 FPGA加速系统面临的问题:1)提出OpenFunction语言作为软件定义中间件系统的数据平面抽象,减少用户实现中间件应用的难度;2)设计了中央控制器,实现对系统内中间件应用的统一控制;3)实现了 OpenFunction工具链,帮助用户实现中间件应用;4)提出了分布式环境下的服务链调度算法,实现FPGA资源分配,达到系统内负载均衡的目标。调度算法支持离线调度和在线调度两种模式。我们使用NetFPGA-SUME开发板和普通服务器实现了 OpenFunction系统原型,并通过实现IPsec、TCP/IP校验和、NAT等应用,验证了 OpenFunc-tion系统可以实现低时延(<1us)以及1OGbps线速吞吐率(任意报文长度下)。