大家好,我是云计算的初学者,前端时间 看了国外的一篇 博客 http://dtrace.org/blogs/brendan/2013/01/11/virtualization-performance-zones-kvm-xen/  但是我对这篇博客中的一些内容还不是很理解。
对于这个图 不是很理解。
主要有以下疑问:
1.图中的 IO proxy起到什么作用?
2.xen 中,GK里边的 Front-end Driver起到什么作用,Kernel中的Back-end Driver又起到什么作用?
3.为什么在KVM中IO流程需要从VM的Guest OS中出来经过Hypervisor然后又回到VM的IO proxy中。为什么要这么设计?
谢谢大家。

解决方案 »

  1.   

    按照我的理解,用户请求到真实硬件最大的资源损耗在IRP的操作上。半虚拟化中,通过domU和dom0之间前后端驱动的交互完成了用户请求的传递,在dom0上生成IRP,调用设备驱动,完成请求。在全虚拟化中,用户请求直接生成IRP请求,IRP请求被hypervisor传递给dom0,dom0再生成IRP,调用设备,完成请求。全虚拟化比半虚拟化多了一次IRP的操作。
      

  2.   

    kvm 的IO是由用户态的QEMU程序模拟的,所以右边图的IO proxy应该指qemu-kvm.