问题描述
最近在恶补学习虚拟化基础知识,过程中遇到的一些思考问题,特P出来和大家分享,希望可以借助CSDN的平台共同讨论,在虚拟化的道路上收获更多知识。以下为类虚拟化方面相关思考题:思考题1在Xen系统中,假设平台上只运行了一个使用类虚拟化技术的DomU客户机,在DomU运行CPU密集型的应用程序时,其可能的性能损失来自哪里?思考题2Xen的I/O虚拟化技术中,I/O环相对于I/O指令提高了一个抽象层,I/O环相对于I/O指令级的模拟优势在哪里?是否在更高的抽象层上能够找到效率更好的I/O虚拟化方法?思考题3在x86平台上加入了硬件对虚拟化的支持后,Xen或其他的类虚拟化技术是否还有存在的必要?思考题4Paravirt_ops和VMI对于Linux的开发具有什么帮助与阻碍?
解决方案
解决方案二:
这些问题感觉很高大上,搞得看不懂了。。。DomU运行CPU密集型的应用程序,可能的性能损失是个啥概念?vCPU是一个线程,需要处理客户机所有CPU相关的东西,所以在客户机模式到主机模式切换的过程中,也就是实际的处理器上下文不断切换过程中,这里面有很大的性能损失。I/O效率最高目前应该是硬件I/O的passthrough,只是这个需要物理硬件的支持。还有就是通过virtIO进行虚拟化x86的虚拟化是硬件级的对于XEN或者KVM来说是一种支持,XEN或者KVM可以通过x86的虚拟化技术来做性能上的提升,例如CPU上下文切换上,I/O的passthrough分配等等。如果没有XEN或者KVM就相当于没有一个主体去使用x86的一些虚拟化技术了。Paravirt_ops和VMI不知道;擦,你这些研究很NX,佩服佩服。。。
解决方案三:
楼上已经很厉害了,关于第一个问题和第二个问题的回答我比较赞同,CPU密集型应用程序指需要多次CPU调度或计算的应用程序吧。第三个问题是指有了硬件虚拟化技术,类虚拟化技术是否还有存在的必要,不是说有了硬件虚拟化技术,Xen或Kvm是否还有存在的必要,楼上关于这个问题有理解上的偏差,主要还是从硬件虚拟化和类虚拟化两者的优势和缺点上考虑吧。研究以上几个问题,主要是想对系统虚拟化基础有个更深入的理解和正确的掌握,希望和楼上共勉,也欢迎大家踊跃讨论上述问题。
解决方案四:
问下LZ,类虚拟化技术指的是啥?
解决方案五:
半虚拟化技术,Para-Virtualization,通过改变客户机操作系统,使其与VMM配合工作,将开销进一步降低,由Xen最先应用的一种虚拟化技术.关于Para-Virtualization的翻译有很多种,也称部分虚拟化和半虚拟化,感觉翻译成类虚拟化更贴切些,para前缀在英文中有类似辅助的意思.
解决方案六:
我看了半天没看懂你说的“类虚拟化”,搜索也没找到。。。。半虚拟化肯定是需要的,X86做的是在总线上对于设备虚拟化的一种支持,这样客户机中的设备其实跟实际的设备是同一个设备,但是半虚拟化可以讲主机的某一类设备虚拟化成客户机中的同一种设备,应用场景不一样。