首页 > 代码库 > 网卡虚拟化技术:VMDq和SR-IOV

网卡虚拟化技术:VMDq和SR-IOV

在上文(http://blog.csdn.net/yeasy/article/details/39178187)中提到了虚机网络流量的接入交换问题。
本文来谈谈虚机跟服务器物理网卡的交互问题。
通常情况下,一个服务器上跑几十个虚机,对计算和网络的需求是很惊人的。前者促生了当下的多核技术发展,后者则不能简单的用多网卡来实现。
试想,每个虚机如果都需要10G的交换能力,服务器要配置几十块物理网卡,且不说主板是否支持这么多的接口,光成本上就难以接受。
另外,如果给vm分配的接口都是软件交换机的虚拟接口,维护这些接口和转发本身就要消耗大量的服务器计算资源。
因此,业界推出了VMDq和SR-IOV技术来提升虚机的网络性能。


VMDq
VMM在服务器的物理网卡中为每个虚机分配一个独立的队列,这样虚机出来的流量可以直接经过软件交换机发送到指定队列上,软件交换机无需进行排序和路由操作。
但是,VMM和虚拟交换机仍然需要将网络流量在VMDq和虚机之间进行复制。


SR-IOV
对于SR-IOV来说,则更加彻底,它通过创建不同虚拟功能(VF)的方式,呈现给虚拟机的就是独立的网卡,因此,虚拟机直接跟网卡通信,不需要经过软件交换机。
VF和VM之间通过DMA进行高速数据传输。
SR-IOV的性能是最好的,但是需要一系列的支持,包括网卡、主板、VMM等。





[1] http://windowsitpro.com/virtualization/q-are-vmdq-and-sr-iov-performing-same-function

网卡虚拟化技术:VMDq和SR-IOV