我有一个 Hyper-V 环境,其中有超过 8 个 VLAN,我需要一个在每个 VLAN 中都有一个接口的 VM(虚拟防火墙)。显然,我无法创建具有超过 8 个“网络接口”的 VM,而不得不为剩余的 VLAN 添加“旧式网络接口”。鉴于 Hyper-V 的虚拟交换机端口都是访问端口(至少据我所知),我无法为其中一个适配器指定中继端口,然后配置客户机以将该端口用于所有 VLAN(或至少某些 VLAN - 最好有一个适配器用于内部网络,一个适配器用于外部网络)。因此,某些 VLAN 被限制为模拟 100mbps 流量。虽然我目前可以分配 VLAN,以便所有生产流量都不会受到此限制的影响,但我希望将来知道这一点:
如何配置虚拟机的网络适配器以使其作为主干工作,或者如何在 Hyper-V 2012R2 中向虚拟机添加更多千兆网络适配器?
答案1
我想提出两种不同的创新方法,如果运营商级性能和未来可扩展性都是必需的,则可以采用这两种方法。这两种方法都可以缓解您的性能和 vLAN 限制问题。
- SR-IOV(硬件相关)方法
- OvS+DPDK 方法
SR-IOV 方法:
您可以使用 SR-IOV,前提是您有启用 SR-IOV 的网卡。您可以从 Hyper-V 管理器轻松启用 SR-IOV在虚拟交换机管理器中。
从理论上讲,由于 VMbus 旁路,这应该可以为您提供本机速度的 NIC 性能,但请注意,此方法依赖于硬件依赖关系,这可能会违背 NFV 和虚拟化的一些关键有益概念,因此我还建议采用下一种方法 :)。
我还在这个答案的底部列出了支持的 NIC。
OvS + DPDK 方法:
我建议的下一种方法是吸收 Hyper-V Switch 的功能,同时大大提升 DataPlane 的性能。通过启用OpenvSwitch(OvS)在 VMM/主机层上。这将启用 Switch 层的虚拟化并提供额外的功能,例如用于系统扩展和切换的分布式交换。显然,这在早期阶段实现非常有用,而不是在后期实现,从而大大降低了扩展复杂性并为您提供了现代化的基础设施设置(您的朋友和同事会惊叹不已)!
接下来是 DPDK 元素;DPDK 是一个用户空间轮询模式驱动程序 (PMD),用于绕过缓慢且基于中断的 Linux 网络堆栈(该堆栈的设计并未考虑虚拟化)。网络上有很多关于 DPDK 和 OvS + DPDK 的文档。
通过使用 PMD 限制 IRQ 并绕过 Linux 内核网络堆栈,您将获得 VM NIC 性能的显著飞跃,同时获得越来越多的功能,让您更好地控制虚拟基础设施,这就是现在部署现代网络的方式。
SR-IOV 支持的 NIC:
- 英特尔® 以太网融合网络适配器 X710 系列
- 英特尔® 以太网融合网络适配器 X710-DA2
- 英特尔® 以太网融合网络适配器 X710-DA4
- 英特尔® 以太网融合网络适配器 XL710 系列
- 英特尔® 以太网融合网络适配器 XL710-QDA2
- 英特尔® 以太网融合网络适配器 XL710-QDA1
- 英特尔® 以太网控制器 X540 家族
- 英特尔® 以太网控制器 X540-AT1
- 英特尔® 以太网控制器 X540-AT2
- 英特尔® 以太网融合网络适配器 X540 家族
- 英特尔® 以太网融合网络适配器 X540-T1
- 英特尔® 以太网融合网络适配器 X540-T2
- 英特尔® 82599 10 千兆以太网控制器系列
- 英特尔® 以太网 82599EB 万兆以太网控制器
- 英特尔® 以太网 82599ES 万兆以太网控制器
- 英特尔® 以太网 82599EN 万兆以太网控制器
- 英特尔® 以太网融合网络适配器 X520 家族
- 英特尔® 以太网服务器适配器 X520-DA2
- 英特尔® 以太网服务器适配器 X520-SR1
- 英特尔® 以太网服务器适配器 X520-SR2
- 英特尔® 以太网服务器适配器 X520-LR1
- 英特尔® 以太网服务器适配器 X520-T2
- 英特尔® 以太网控制器 I350 家族
- 英特尔® 以太网控制器 I350-AM4
- 英特尔® 以太网控制器 I350-AM2
- 英特尔® 以太网控制器 I350-BT2
- 英特尔® 以太网服务器适配器 I350 家族
- 英特尔® 以太网服务器适配器 I350-T2
- 英特尔® 以太网服务器适配器 I350-T4
- 英特尔® 以太网服务器适配器 I350-F2
- 英特尔® 以太网服务器适配器 I350-F4
- 英特尔® 82576 千兆以太网控制器家族
- 英特尔® 82576EB 千兆以太网控制器
- 英特尔® 82576NS 千兆以太网控制器