查看原文
其他

RHEL、OpenStack和DPDK帮助NFV扩展到极速场景

2015-10-31 云头条

作者简介:红帽公司产品营销高级经理Jeff Jameson和首席软件工程师Andrew Theurer



眼下虚拟网络功能(NFV)和OpenStack是热门话题,可是坦率地说,切实表明OpenStack结合PDPK等技术可以获得多好的性能的确凿数据又不多。我们红帽公司想知道,我猜许多读者也想知道。于是,我们决定看一看RDO Kilo能够做什么,为此测试了由OpenStack部署和全面管理的多个虚拟网络功能(VNF)。


创建终极NFV计算节点


为了将NFV性能扩展到令人难以置信的程度,我们首先需要搭建一个强大的基础:即组成计算节点的硬件。NFV计算节点需要超强的输入/输出能力和超高速内存。为此,我们选择了一台配置如下的服务器:2个英特尔Haswell-EP处理器、24个核心、64GB内存@2133 MHz,外加七条可用的PCI第三代插槽。我们往其中六条PCI插槽上装上了英特尔双端口40Gb适配器――因而一台服务器里面就有12个40Gb端口!


借助Nova利用高性能硬件


我们选择的计算节点有望获得异常出色的NFV性能,不过前提是配置合理。如果你不使用OpenStack来部署虚拟机,就需要确保你的部署过程正确选择了资源:从节点本地的处理器、内存和输入/输出,到为虚拟机内存支持1GB页面,不一而足。想从你的虚拟机获得一流的性能,所有这些都必不可少。好消息是,OpenStack可以为你做到这一点。不再需要你把这项工作“搞好”。用户只要准备好PCE直通(PCI passthrough,详见https://wiki.openstack.org/wiki/Pci_passthrough),然后通过Nova flavor-key命令指定资源:


nova flavor-key pci-pass-40Gb set “hw:mem_page_size=1048576”

nova flavor-key pci-pass-40Gb set “pci_passthrough:alias”=”XL710-40Gb-PF:2”


使用这个flavor命令创建一个新实例时,Nova随后会确保资源是节点本地的,而且为虚拟机支持1GB特大页面。


网络功能接受测试


我们部署了六个虚拟机,使用红帽企业版Linux(RHEL)7.1和DPDK 2.0,每个虚拟机执行一个基本的VNF角色:转发第2层数据包。DPDK(数据平面开发工具包)是一组代码库和驱动程序,实现超高速数据包处理。这里有关于DPDK的更多信息(http://dpdk.org)。每个虚拟机包括:2个40Gb接口、3个虚拟处理器(vCPU)和6GB内存。为两个端口(一个端口负载进,另一端口负责出)启用了转发网络数据包的功能,而且是双向。可以把这个网络功能看成是网桥或防火墙的基本功能,位于你的计算机与目的地之间:



在这种场景下,我们选择的“处理”是数据包转发,由“testpmd”应用程序来处理,该应用程序已包含在DPDK软件中。我们之所以选择这个应用程序,是因为想测试最高程度的输入/输出吞吐量,从而证实OpenStack Nova是不是在资源分配方面做出了正确的决定。一旦这些虚拟机配置完毕,我们就有了这样的计算节点:



我们使用第二个系统来生成网络流量,该系统恰好与计算节点有着一模一样的硬件配置。在我们的测试场景下,该系统既充当“计算机/电话/设备”,又充当“服务器”。就每个虚拟机而言,数据包生成器生成流量,同时发送到虚拟机的两个端口,数据包生成器还会收到虚拟机转发而来的流量。作为测试度量指标,我们计算了每秒发送几个数据包、虚拟机每秒转发几个数据包,以及每秒几个数据包最终返回到数据包生成系统。



测试结果


请注意:我们是在所有六个虚拟机同时处理数据包的情况下进行这项测试的。我们使用了大小为64字节的数据包,目的是为了模拟数据包处理开销最大的情形。这让我们得以提升到每秒数据包的最高值,又不过早遇到带宽限制。在这种场景下,我们每秒能够处理2.13亿个数据包!就这些网络适配器而言,Openstack和DPDK以近乎理论上最大数据包速率高速运行!实际上,我们在不用OpenStack或任何虚拟化技术测试这两个系统时,观察到每秒可处理2.18亿个数据包。Openstack连同KVM获得了裸机97.7%的性能。


要考虑的另外一个重要方面是,我们使用了多少处理器用于这次测试。有没有足够的多余处理器资源处理更高级的网络功能?我们可以扩展到更多的网络功能吗?下面这个图显示了我们从计算节点观察到的处理器使用情况:



虽然每秒处理2.13亿个数据包是了不起的成绩,但是这个计算节点的系统处理器当中仍有一半未使用!每个虚拟机使用3个vCPU中的2个来执行数据包转发操作,因而剩下1个vCPU可以执行更高级的数据包处理操作。还可以为这些虚拟机配置4个vCPU,用不着过量分配主机处理器,因而为它们提供了更多的计算资源。


实际结果敬请期待


我们会继续报告诸如此类的性能测试,显示我们在测试中获得的NFV和OpenStack的实际性能。我们还与OPNFV等组织合作,帮助诸如此类的基准测试实现标准化,所以敬请期待。到时我们会分享更多信息!


新闻来源:Red Hat Stack blog|云头条编译(未经授权谢绝转载)


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存