KVM网络虚拟化(二)
KVM网卡虚拟化除了全虚拟化、Virtio外,还可以利用网卡PCI透传技术,SR-IOV技术,提供更高性能的虚拟化网卡。
PCI透传
前面介绍的虚拟化技术本质上都是共享设备,带来的代价就是性能的降低,在追求性能的场景中并不适用。设备透传技术提供了虚拟机独占设备的方法,这在网卡PCI Passthrough可以将物理网卡直接交给虚拟机使用。虚拟机独占网卡,使用性能接近物理网卡。
PCI-Passthrough
设备透传需要硬件支持,Intel 和 AMD 都在它们的新一代处理器架构中提供对设备透传的支持(以及辅助管理程序的新指令)。Intel 将这种支持称为 Virtualization Technology for Directed I/O (VT-d),而 AMD 称之为 I/O Memory Management Unit (IOMMU)。不管是哪种情况,新的 CPU 都提供将 PCI 物理地址映射到客户虚拟系统的方法。
因为PCI透传虚机要独占网卡,所以对宿主的网卡数也是有要求的。同时设备透传在虚机热迁移时还会遇到问题。
SR-IOV
SR-IOV全称Single-Root I/O Virtualization,是一个将PCI-E设备共享给虚拟机的使用方案,多用在网络设备。SR-IOV从硬件上绕过系统和虚拟化层,使每个虚机能有单独的内存地址、中断、DMA流。
SR-IOV通过 SR-IOV,一个 PCIe 设备不仅可以导出多个 PCI 物理功能,还可以导出共享该 I/O 设备上的资源的一组虚拟功能。。在这个模型中,不需要任何透传,因为虚拟化在终端设备上发生,从而允许管理程序简单地将虚拟功能映射到 VM 上以实现本机设备性能和隔离安全。
SR-IOV有两个功能模型:
Physical Functions(PFs):拥有权功能PCI-E功能,拥有配置管理SR-IOV
Virtual Function (VFs):轻量PCI-E功能,包含数据传输必要的资源
参考
https://www.ibm.com/developerworks/cn/linux/l-pci-passthrough/
《深度实践KVM》