赞
踩
目录
对于全虚拟化有两种思路。一种是把模拟设备放在VMM(VMware),另一种是放在user space,如qemu(KVM)。模拟设备只是用软件实现了各种接口共Guest OS使用,hypervisor监测Guest OS对于虚拟设备的操作,然后将其转化到实际的物理设备。实现了一个物理设备在多个OS之间共享的目的。左侧图显示的是VMware的solution(不是所有的模拟设备都放在vmm,还有一些是放在vmx),右边是KVM。
通过设备模拟,虽然可以实现共享,但是由于加了一层,会有一些性能损失,对于高吞吐量的workload而言就不能满足了。
需要CPU支持VT-D或者IOMMU。
Passthru方式将物理设备直接映射到Guest OS的地址空间,可以达到近乎裸机的性能,但是它也失去了虚拟机的一些关键特性,如live migration。同时一个物理设备只能被一个VM使用。
目前许多PCI设备都支持SR-IOV(Single Root I/O Virtualization),把一个物理设备虚拟出许多虚拟设备(PF -> VFs)。也就是说末端的PCI device 原生支持虚拟化。VFs共享PF的资源。每个/几个 VFs可以分配给VM使用。效果类似于passthru。
PF:全功能的PCIe功能,可以想普通PCIe设备一样被使用。
VF:与物理功能关联的一种轻量级PCIe功能,VF之间共享PF的资源。
virtio现在分为0.95/1.0/1.1三个版本,其中0.95只支持单队列,1.0/1.1开始支持多队列。
此为1.0版本驱动:
0.95版本要使用老版本Linux,例如centos6.8x86_64
新版本设备可以兼容旧驱动,这里可强制使用0.95驱动
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。