|
浅析处理器虚拟优化技术及KVM实现虚拟化把事物从一种形式改变为另一种形式,计算机的虚拟化使单个计算机看起来像多个计算机或完全不同的计算机,虚拟化技术也可以使多台计算机看起来像一台计算机,这叫做服务器聚合fserver aggregation)或网格计算(grid computing)。KVM是以色列开源组织Qumranet开发的一个开源虚拟机监控器,从Linux一2.6.20开始被包含在Linux内核中 因此KVM可以自然地使用Linux内核提供的内存管理、多处理器支持等功能,易于实现,而且还可以随着Linux内核的发展而发展。 1、引言 虚拟化把事物从一种形式改变为另一种形式,计算机的虚拟化使单个计算机看起来像多个计算机或完全不同的计算机,虚拟化技术也可以使多台计算机看起来像一台计算机,这叫做服务器聚合fserver aggregation)或网格计算(grid computing)。KVM是以色列开源组织Qumranet开发的一个开源虚拟机监控器,从Linux一2.6.20开始被包含在Linux内核中 因此KVM可以自然地使用Linux内核提供的内存管理、多处理器支持等功能,易于实现,而且还可以随着Linux内核的发展而发展。KVM基于x86硬件虚拟化技术,它的运行要求Intel VT—x或AMD SVM 的支持。IntelVT—x是英特尔虚拟化技术,本文不考虑KVM 中与AMD SVM相关的实现,有关术语的使用与Intel VT—X保持一致。 2、处理器优化技术 处理器虚拟化的本质是分时共享。实现虚拟化需要两个必要条件,第一是能够读取和恢复处理器的当前状态,第二是有某种机制防止虚拟机对系统全局状态进行修改。 第一个必要条件可以有硬件实现,也可以由软件来实现,由硬件实现比软件实现更为简单 例如,x86处理器对应用编程接口虚拟化,提供了硬件的支持,软件通常只需要执行一条指令,就可以实现任务切换,处理器硬件负责保存当前应用编程接口的状态,并为目标任务恢复应用编程接口的状态。但操作系统并不一定要使用处理器提供的这种虚拟化机制,完全可以使用软件来完成应用接口状态的切换。例如。Linux就没有使用x86处理器提提供多任务机制,完全依赖软件实现任务切换。 第二个必要条件一定要由硬件来实现,通常处理器采用多模式操作(multi—mode operation)来确保这一点 在传统x86处理器上,共有4种模式的操作,也就是常说的4个特权级。虚拟机(这里指进程/线程)通常运行在特权级3上,而虚拟机监控器(这里指操作系统)运行于特权级O上,进程/线程的所有访问全局的操作,如访问共享的操作系统所在的地址空间,访问I/O等等,均会导致异常的发生,被操作系统所截获并处理,使操作系统有机会向进程/线程提供一个虚拟的世界。 2.1传统处理器优化及问题
图1操作系统内核运行
责编:李红燕 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
最新专题 推荐圈子 |
|