虚拟机的基于VLAN的接口

我正在devise一个实验,在这个实验中,我们有多个VLAN到达单个NIC,每个VLAN都与一个VM关联。

直接的方法是使用vconfig设置带标记的接口,并将这些接口与每个VM相关联。 我有些担心这可能会对性能(CPU利用率和延迟)产生影响,因为我不确定数据包是如何重新路由到虚拟主机中的特定虚拟接口的。 有没有一种方法可以使用IOMMU来做同样的事情,假设可以直接访问虚拟机中的应用程序?

简单的解决scheme是创build带标签的接口,在每个接口上build立一个网桥,并将虚拟机插入网桥。 有了IOMMU,在延迟方面你可能会变得更好,但是在IOMMU上标记容易在VM内完成。

只要确保交换机端口被设置为中继线。

至于在主机上的负载,我已经看到主机有数百个带标记的接口,对主机资源没有明显的征税。

在这个用例中你不能使用IOMMU。 IOMMU可以直接访问虚拟机的完整物理PCI-e卡。

在你的情况下,因为你希望每个虚拟机都在不同的VLAN上,所以你不能通过IOMMU来提供整个networking接口,因为它也会把所有的虚拟机移动到这个虚拟机。

所以,实现你的目标的唯一解决scheme就是上面写的@dyasny,即在主机上创buildVLAN标记的接口(eth0.X),然后将每个接口桥接到VM。

我不能说KVM,但是用vSphere看起来并不是一个问题CPU的方式 – 我在我们的生产服务器上使用了几个VLAN(在交换机上标记),我不能说任何明显的变化,之前没有标记的单个VLAN设置。