KVM实战原理,进阶与性能调优,笔记之I/O虚拟化

  

I/O虚拟化:

  

在虚拟化的架构下,虚拟机监控器必须支持来自客户机的I/O请求。通常情况下有以下4种I/O虚拟化方式。

  

1。设备模拟:在虚拟机监控器中模拟一个I/O设备,客户机中的I/O请求都由虚拟机监控器捕获并模拟执行后返回给客户起。(软件实现)

  

2。前后端驱动接口:在虚拟化监控器与客户机之间定义一种全新的适合于虚拟化环境的交互接口。(软件实现)

  

3。设备直接分配:将一个物理设备直接分配给客户机使用,这种情况下I/O请求的链路中很少需要或者不需要虚拟机监控器的参与,所以性能很好。(需要特定的硬件特性的支持)

  

4。设备共享分配:其实就是设备直接分配方式的一个扩展,一个物理设备可以支持多个虚拟机功能接口,可以将虚拟功能接口独立的分配给不同的客户机使用。如SR-IOV就是这种方式的一个标准协议。(需要特定的硬件特性的支持)

  

 KVM实战原理,进阶与性能调优,笔记之I/O虚拟化

  

设备直接分配在英特尔平台上就是Vt-d特性,一般在BIOS中可以看到相关的参数设置。
 KVM实战原理,进阶与性能调优,笔记之I/O虚拟化

  

Vt-d特性有一个缺点:单个设备只能分配格一个客户机,而在虚拟化环境下一个宿主机上往往运行着多个客户机,很难保证每个客户机都能得到一个直接分配的设备。
为了克服这个缺点,设备共享分配硬件技术就应运而生,其中SR-IOV就是这样一个标准。

  

实现了SR-IOV规范的设备,有一个功能完整的PCI-e设备成为物理功能(VF)。在使用了SR-IOV之后,PF就会派生出若干个虚拟功能(VF) .VF看起来依然是一个PCI-e设备
它拥有最小化的资源配置,有用独立的资源,可以作为独立的设备直接分配给客户机使用。

KVM实战原理,进阶与性能调优,笔记之I/O虚拟化