为什么 软路由/nas 的网卡更多选择 PCI-E 直通,而不是 SR-IOV

查看 35|回复 1
作者:echo1937   
常用的 I/O 虚拟化有三种形式:
  • 虚拟网卡:通过软件模拟物理网卡的功能,使得虚拟机可以与外部网络互联。
  • PCI 网卡直通:将主机上的网卡作为 PCI 直通网卡透传给虚拟机使用,该网卡由这台虚拟机独占。
  • SR-IOV 直通:将一个支持 SR-IOV 的物理网卡虚拟化出多个 VF (Virtual Function),作为 SR-IOV 直通网卡直接挂载给虚拟机使用,可实现多个虚拟机共享同一个物理网卡的通信能力。

    部分背景信息: 超融合虚拟化下的网络 I/O 虚拟化技术。
    个人的需求其实很简单,就是把全部的虚拟机都桥接到宿主机的物理网络下,这样所有的设备都在拨号路由器下属的同一子网内,省去了很多的麻烦。
    实践方面遇到了一些问题:
  • 虚拟网卡:性能很差,无论是 vmware workstation 那种 vmnet0 的直通,还是 hyper-v 建立外部交换机进行桥接(无论是宿主机通过网桥,还是虚拟机通过外部交换机,千兆的公网 1000mbps 下行都只能跑 100 多 mbps),性能很难让人满意
  • PCIE 网卡直通,这是网络上比较常用的方法,各路 PVE ,ikuai ,黑群晖用这个方法是最多的,但是也有缺陷,PCIE x4 槽也就能出 4 口,而且口子还必须连接到上行交换机,网口和网卡很多。
  • SR-IOV 直通,这个资料比较少,大致就是一个物理网卡可以虚拟化为多个 VF ,然后再将 VF 直通给虚拟机,无论多少个 VF ,只要插一根网线就可以了,所有这些 VF 共享单个物理网卡的带宽。

    在我看来,SR-IOV 显然是技术上最佳的方案,比如说单个万兆口可以分为 10 个 VF ,10 个 VF 单独都是万兆,10 个 VF 共享了万兆的总带宽,线路管理和扩展上限都很方便。似乎困难在于需要主板、网卡和系统的支持。
    不知道个人对相关内容的认知是否正确,为什么现在类似畅网的软路由 mini 主机,都是选择方案 2 ;个人的 all in boom 也是方案 2 ,其背后的原因是什么。
    万能的水友们,有相关的网卡产品和技术方案推荐吗,还请不吝赐教。

    网卡, 直通, sr-iov, 虚拟

  • yyzh   
    主板不支持,网卡不支持(或者受限制)
    https://access.redhat.com/documentation/zh-cn/red_hat_virtualization/4.1/html/hardware_considerations_for_implementing_sr-iov/index
    https://tonydeng.gitbooks.io/sdn/content/linux/sr-iov.html
    https://www.intel.com/content/www/us/en/support/articles/000005722/ethernet-products.html
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部