前两天有人问了我几个服务器虚拟化的问题,这里我总结一下,分享给大家:
1:全虚拟化与准虚拟化的真正区别在哪?
真正区别在于架构不同:由于虚拟机的指令和传统操作系统的指令内涵不一致(例如关机,虚拟机只要求释放内存与cpu时间,而传统指令需要断电);所以如何让硬件执行传统os的指令是关键。全虚拟化是将传统os的指令进行翻译,交给物理机执行,扮演了翻译的角色,以前一次的交互需要来去两次指令传送,而全虚拟化就需要4次传送和2次转义,则效率损失较大。
泛(准)虚拟化是将操作系统或者硬件转变为能够理解对方指令的角色(两者之间有一个知道自己是运行在虚拟环境下得),对于linux系统,采用的技术是修改内核,目前linux内核标准都支持xen,对于Windows系统,采用硬件支持(即用intel-v,amd-vt技术的芯片),让硬件知道上层运行虚拟机,所以传输的指令需要不按照以前的方式运行。这种架构还是保证一次交互进行2次指令传输,效率损失比较低。
2:Xen的整体架构是怎样的,在硬件到应用中它扮演什么样的角色,如何进行控制的?
在xen的架构里,硬件其实就是一个平台,硬件服务器被放置在一个资源池中,对于虚拟机或者负载,他们没有差别,具体虚拟机或者负载运行在哪台机器上,可以动态计算分布,保证对资源的高效利用,在这个层面上,可以更自由地实现负载均衡和双击热备(操作系统层面)。对硬件的控制可以通过虚拟环境的管理控制平台统一进行控制。
本文转自 大头蚕 51CTO博客,原文链接:http://blog.51cto.com/datoucan/191215,如需转载请自行联系原作者