【IT168评测中心】在上一篇文章中,我们已经看到了I/O虚拟化的必要性,并解析了VMDq虚拟机设备队列技术,现在,我们将继续介绍I/O虚拟化技术中的一种:VMDc(Virtual Machine Direct Connect,虚拟机直接连接),这是一种通过新的IO虚拟化方法来提升虚拟IO性能的方法。
I/O虚拟化的方法有很多种,现在使用的主要有两种,它们都是纯软件的,它们分别是:设备模拟和额外软件界面,如下图所示:
设备模拟:VMM对客户机摸拟一个I/O设备,通过软件完全模拟设备的功能,客户机可以使用对应真实的驱动程序,这个方式可以提供完美的兼容性(而不管这个设备事实上存不存在),但是显然这种模拟会影响到性能。作为例子,各种虚拟机在使用软盘映像提供虚拟软驱的时候,就运行在这样的方式,以及Virtual PC的模拟的真实的S3 Virge 3D显卡,VMware系列模拟的Sound Blaster 16声卡,都属于这种方式,一般的虚拟网卡也是这种方式。
额外软件界面:这个模型比较像I/O模拟模型,VMM软件将提供一系列直通的设备接口给虚拟机,从而提升了虚拟化效率,这有点像Windows操作系统的DirectX技术,从而提供比I/O模拟模型更好的性能,当然兼容性有所降低,例如VMware模拟的VMware显卡就能提供不错的显示速度,不过不能完全支持DirectDraw技术,Direct3D技术就更不用想了。相似的还有VMware模拟的千兆网卡,等等,这些品牌完全虚拟的设备(例如,VMware牌显卡,VMware牌网卡)需要使用特制的驱动程序部分直接地和主机、硬件通信,比起以前完全模拟的通过虚拟机内的驱动程序访问虚拟机的十兆百兆网卡,可以提供更高的吞吐量。
可以看到,这两种纯软件实现的方式有些类似于完全虚拟化和部分虚拟化的分别,不管哪种方式,都是软件实现,转向硬件实现会不会更好呢?