8. 网络虚拟化技术

当越来越多不同性质的虚拟机运行在同一台物理机上时,它们的进出数据不加区分地拥挤在一个 I/O 通道上显然是不合理的。上层业务网络的需求除了基本的数据转发之外,还必须包括安全隔离QoS(服务质量保证)。

实现这两点的关键在于要对数据流量进行清晰的区分,只有区分出不同的流量才能根据业务类型配以不同的保障等级。以物理机出口为界,我们可以将数据流过的路径划分为外部内部两部分。

  • 对于物理机外部网络,以Cisco为首的网络厂家提出了VN-Tag等解决方案。通过在全网部署 VN-Tag不同虚拟机的流量能够被识别,从而在上联交换机上能够更好地实现QoS安全隔离。这就是所谓的“虚拟接入”。

  • 对于物理机内部虚拟化网卡需要在不破坏现有业务机制的前提下,为每个虚拟机提供一个模拟真实的物理通道每个通道具备独立的I/O 功能,可以重现在非虚拟化环境中的一切网络机制,并且对虚拟机透明。这就是所谓的“虚拟通道”。

虚拟化网卡的关键技术就是“虚拟接入”和“虚拟通道”。虚拟化网卡的基本原理如图2-18所示。  图2-18 虚拟化网卡的基本原理:

8. 网络虚拟化技术_第1张图片

由图2-18可知,虚拟机产生的数据通过独立的通道进入网卡,然后被打上标签送往外部网络;同理,网卡接收外部网络送来的带有标签的数据,然后根据标签将数据送往相应的虚拟机信道。于是,上层的业务丝毫感受不到 I/O的变化,所有的数据行为与运行在一台独立的物理机上没有区别。

  • 虚拟接入”是利用标签,在全网范围区分不同的虚拟机流量

  • 虚拟通道”是在物理网卡上对上层软件系统虚拟出多个物理通道每个通道具备独立的I/O功能

本节将对SR-IOV—这个影响力最大的虚拟通道技术进行深入介绍。

SR-IOV(Single Root I/O Virtualization)是PCI-SIG推出的一项标准,它将单个 PCIe 设备对上层软件虚拟化多个独立的 PCIe 设备。SR-IOV 网卡能对上层操作系统虚拟化出多个PCIe网卡,而且虚拟出的每个网卡都可以实现独立的I/O功能。独立的通道能够实现更强的安全隔离、更完善的QoS和更高的传输效率。SR-IOV目前支持在一块PCIe网卡上虚拟化出256个通道,其原理如图2-19所示。  图2-19 SR-IOV原理图:

8. 网络虚拟化技术_第2张图片

SR-IOV 虚拟出的通道有两种:

  • PF(Physical Function), PF是一个完整的PCIe设备,包含全面的管理、配置功能,Hypervisor往往通过PF来实现对网卡所有I/O资源的管理和配置
  • 和 VF(Virtual Function), VF是一个简化的PCIe设备,仅仅包含了I/O功能不能通过VF管理物理网卡。

所有的VF都是通过PF衍生而来的,一块SR-IOV网卡最多可以生成256个 VF。VF 可以理解为物理网卡硬件资源的一个切片,在虚拟化软件平台Hypervisor看来,VF与普通的 PCIe网卡一模一样,安装相应的驱动后就能直接使用。如果一台物理机上只有一个单端口的 SR-IOV 网卡,这个端口产生了6个VF,则Hypervisor就能得到6个以太网连接

由于管理网卡的I/O资源生成VF都需要使用PF,而且Hypervisor需要具备区分PF和VF的能力才能实现对网卡的正确配置。所以,SR-IOV的实现需要依赖硬件软件两部分,即 SR-IOV 需要专门的网卡芯片BIOS 版本,也需要上层Hypervisor安装相应的驱动。

在SR-IOV的基础上,再结合Intel VT-d或AMD IOMMU技术,可以实现VM和VF的一对一映射,进而跳过Hypervisor的软件交换机使VM直接访问VF硬件资源。这样既能提高访问效率,又能提高网卡的利用率。

你可能感兴趣的:(8. 网络虚拟化技术)