I/O虚拟化:后端
在虚拟化的架构下,虚拟机监控器必须支持来自客户机的I/O请求。一般状况下有如下4种I/O虚拟化方式。架构
1.设备模拟:在虚拟机监控器中模拟一个I/O设备,客户机中的I/O请求都由虚拟机监控器捕获并模拟执行后返回给客户起。(软件实现)ide
2.先后端驱动接口:在虚拟化监控器与客户机之间定义一种全新的适合于虚拟化环境的交互接口。(软件实现)性能
3.设备直接分配:将一个物理设备直接分配给客户机使用,这种状况下I/O请求的链路中不多须要或者不须要虚拟机监控器的参与,因此性能很好。(须要特定的硬件特性的支持)blog
4.设备共享分配:其实就是设备直接分配方式的一个扩展,一个物理设备能够支持多个虚拟机功能接口,能够将虚拟功能接口独立的分配给不一样的客户机使用。如SR-IOV就是这种方式的一个标准协议。(须要特定的硬件特性的支持)接口
设备直接分配在Intel平台上就是Vt-d特性,通常在BIOS中能够看到相关的参数设置。资源
Vt-d特性有一个缺点:单个设备只能分配格一个客户机,而在虚拟化环境下一个宿主机上每每运行着多个客户机,很难保证每一个客户机都能获得一个直接分配的设备。
为了克服这个缺点,设备共享分配硬件技术就应运而生,其中SR-IOV就是这样一个标准。虚拟机
实现了SR-IOV规范的设备,有一个功能完整的PCI-e设备成为物理功能(VF)。在使用了SR-IOV以后,PF就会派生出若干个虚拟功能(VF)。VF看起来依然是一个PCI-e设备
它拥有最小化的资源配置,有用独立的资源,能够做为独立的设备直接分配给客户机使用。it