【SDNLAB独家译稿】Open vSwitch(OVS)项目的开发人员对其性能稍加改进,正如他们所说已经将其提升到了惊人的速度。
这项工作已经持续了一段时间,但具体细节直到今天才在Network Heresy博客上得以总结。这个团队也会在今天的Open vSwitch会议上进一步阐述细节方面做的改进,该会议在VMware总部—加州的Palo Alto举行。
OVS的核心问题,也是过去一到两年中这个团队优先考虑的问题,即它在处理Linux用户空间上花费太多时间,这也被称为慢路径。(另一种是在内核空间中的快速路径。)此前,该小组表示能够小幅度提高性能——“尽管提升10%或者20%,也是值得表扬的。”Pettit在接受SDNCentral的采访时说,但仍需要加大力度。
问题的焦点是,OVS扫描整个数据包报头,并且在数据流缓存中查找精确匹配。换句话说,这对数据流的处理十分严格;任何没有精确匹配的数据流都会被移到慢路径里去。
这个问题在OVS1.11版本中得到了解决。(OVS现在已更新至2.3版本。)该版本提出了megaflow的概念——在缓存字段使用通配符的能力,从根本上来说,这样的OVS可以更快速的决定如何处理数据流。
用户空间也是单线程的,因此在OVS2.0版本中引入了多线程。这有助于交换机实时解决流量问题,内核缓存也从以前的1000条流增加到了200000条。
这两种改进方案使得OVS团队提高了分类程序,这些代码决定了哪些OpenFlow规则适用于数据包。增加的功能包括搜索结果的优先级排序和分段查找,这些都是能适用于包头子集的策略。
这些措施都提高了软件的性能。究竟怎样算是惊人的速度,这取决于用户,或者说取决于几周前在OpenStack峰会上提到的术语Rackspace。该OVS团队并没有给出具体的数字,但是Network Heresy博客列举了该团队在Linux桥上的一项测试结果。
随着对性能的关注,OVS下一步的发展将会涉及到升级堆栈。“我们在2-3层的表现还算不错,但是人们对4-7层更有兴趣。”Pettit说。
具体来说,Pettit和与会同事正在探讨增加状态防火墙(预计在明年年初的OVS2.4版本中体现),网络地址转换(NAT),和深度包检测的方法。
他们遇到的挑战是将这些有状态的功能导入到无状态的OpenFlow中去。“我们如何在OpenFlow可以使用它的情况下给它下定义?”Pettit说。OVS团队的回答侧重于在Linux中使用连接跟踪机制;相关代码可以在Github下载。
其他OVS未来发展方向除了涉及到Linux的KVM之外,还涉及到配套环境支持,例如微软的Hyper-Vhypervisor和Intel的Data Plane Developer Kit(DPDK)。
译自:https://www.sdncentral.com/news/open-vswitch-gets-boosted-ludicrous-performance/2014/11/