Hi!这里是Tungsten Fabric架构解析内容的第五篇,介绍vRouter的部署选项。
Tungsten Fabric架构解析系列文章,由TF中文社区为你呈现,旨在帮助初入TF社区的朋友答疑解惑。我们将系统介绍TF有哪些特点、如何运作、如何收集/分析/部署、如何编排、如何连接到物理网络等话题。
vRouter有多种部署选项,可提供不同的好处和易用性:
- Kernel Module(内核模块)——默认部署模式
- DPDK——使用英特尔库提供转发加速
- SR-IOV——提供从VM直接访问NIC
- Smart NIC(智能NIC)—— vRouter转发器在可编程NIC中实现
这些选项如下所示:
每个选项的功能和优点如下所述:
内核模块vRouter
vRouter转发器在Linux内核中运行的模块的方式,是目前的默认部署选项。 vRouter实现了网络功能,否则将使用iptables或Open vSwitch来执行。在内核中运行使转发器在通过KVM的网络堆栈时可以直接访问网络流量,并且与转发器作为用户空间中的进程运行时相比,可以实现显著的性能提升。已实施的优化包括:
- TCP分片卸载
- 大量接收卸载
- 使用多队列virtio数据包处理
内核模块方法允许用户使用Tungsten Fabric实现网络虚拟化,同时对底层服务器和NIC硬件的依赖性最小。不过,这种方式仅支持特定的Linux内核版本。
DPDK vRouter
英特尔的数据平面开发工具包(DPDK)是一组库和驱动程序,允许在用户空间中运行的应用程序直接访问NIC,而无需通过KVM网络堆栈。可以在用户空间中运行并支持DPDK的vRouter转发器版本。
与具有未修改的VM的内核模块相比,DPDK vRouter提供了加速的数据包吞吐量,如果访客 VM也启用了DPDK,则可以实现更好的性能。
DPDK vRouter通过将CPU内核专用于数据包转发来工作,该内核不断转发循环等待数据包。这些内核不能用于运行访客VM,因为它们连续100%运行,这在某些环境中可能是个问题。
SR-IOV (Single Root – 输入/输出虚拟化)
SR-IOV不是vRouter本身的严格部署选项,但在某些应用程序中可以与vRouter一起使用。
SR-IOV允许NIC的硬件资源在多个客户端之间共享,就好像每个客户端都具有唯一访问权限一样,就像虚拟机管理程序对CPU所做的一样。它使VM接口可以直接访问NIC,因此数据路径会绕过虚拟机管理程序网络堆栈,从而提高性能。当VM在物理网络和虚拟网络之间执行网关功能时,SR-IOV非常有用,但由于SR-IOV涉及绕过vRouter,因此接口不参与Tungsten Fabric虚拟网络,也不参与网络策略和网络服务。
智能 NIC vRouter
一些新的可编程NIC正在变得可用。 Tungsten Fabric vRouter转发器功能可以在这些新的NIC上实现,这在性能方面带来了实质性的提升,特别是对于在某些环境中占主导地位的小字节数据包。
此外,转发几乎完全从服务器的x86 CPU上卸载了,因此可以为更多的VM释放CPU内核。
智能NIC看起来非常有前途,但显然要求智能NIC在生产环境中可用,并且它们需要时间才能得到广泛使用。
MORE
更多Tungsten Fabric解析文章
第一篇:TF主要特点和用例
第二篇:TF怎么运作
第三篇:详解vRouter体系结构
第四篇:TF的服务链
关注微信:TF中文社区