论文摘要
FPGA (Field Programmable Gate Array)是一种具有大规模可编程门阵列的设备,它所具有的丰富的寄存器资源和并行资源使得一个函数在几个时钟周期内就可以在硬件上执行完成。而同样的函数在顺序操作的处理器上运行则需要成百上千个时钟周期。NetFPGA是斯坦福大学开发的一个软硬件皆可编程的开放性平台。NetFPGA完全开源的驱动、逻辑源代码可以帮助开发人员更专注于应用和加速本身,大大降低了做网络加速应用开发与研究的门槛。利用NetFPGA来加速网络数据的传输,已经逐渐应用于高速网络的研究。云计算是当今学术界和工业界研究的热点,虚拟机则是云计算中的重要工具。目前,在虚拟机上运行的应用和系统已经越来越多,完全使用虚拟机搭建的虚拟集群系统也得到了广泛的应用。基于虚拟集群的新一代高性能计算环境可以按照用户的需求灵活的定制各种服务,并且能够有效的提高硬件资源利用率,但同时也存在一些问题需要研究解决。例如虚拟集群在广域网环境下通信效率低下,并不适合通信密集型并行应用程序的执行,这一点严重地限制了虚拟化高性能计算环境的发展和应用。本文对广域环境下基于NetFPGA的虚拟网络进行了研究,并最终实现了通信性能较高的虚拟网络。本文在底层硬件部分实现了IP隧道功能,利用FPGA中丰富的并行资源,来并行处理虚拟机间的通信;支持根据需求动态调整虚拟网络路由策略,为虚拟集群LIVE迁移提供支持。通过和现有的基于IP隧道技术的虚拟网络的性能对比,本文设计的基于NetFPGA的虚拟网络平台提高虚拟集群在广域网环境中的通信效率达到了15%。