浅析处理器虚拟优化技术及KVM实现

来源: 互联网
2013/4/11 11:32:10
虚拟化把事物从一种形式改变为另一种形式,计算机的虚拟化使单个计算机看起来像多个计算机或完全不同的计算机,虚拟化技术也可以使多台计算机看起来像一台计算机,这叫做服务器聚合fserver aggregation)或网格计算(grid computing)。KVM是以色列开源组织Qumranet开发的一个开源虚拟机监控器,从Linux一2.6.20开始被包含在Linux内核中 因此KVM可以自然地使用Linux内核提供的内存管理、多处理器支持等功能,易于实现,而且还可以随着Linux内核的发展而发展。

分享到: 新浪微博 腾讯微博
本文关键字: 处理器 虚拟优化 KVM

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传统处理器优化及问题


传统x86处理器为了保护指令的运行,提供了指令的4个不同Privilege特权级别,术语称为Ring,从Ring 0~Ring 3。Ring 0的优先级最高,Ring 3最低。各个级别对可以运行的指令有所限制,例如,GDT,IDT,LDT,TSS等这些指令就只能运行于Privilege 0,也就是Ring 0。要注意Ring/Privilege级别和我们通常认知的进程在操作系统中的优先级并不同。

操作系统内核运行

图1操作系统内核运行


操作系统必须要运行一些Privilege 0的特权指令,因此Ring 0是被用于运行操作系统内核,Ring l和Ring 2是用于操作系统服务,Ring 3则是用于应用程序。然而实际上并没有必要用完4个不同的等级,一般的操作系统实现都仅仅使用了两个等级,即Ring O和Ring 3,如图1所示在一个常规的x86操作系统中,系统内核必须运行于Ring 0,而VMM软件以及其管理下的Guest OS却不能运行于Ring O—— 因为那样就无法对所有虚拟机进行有效的管理,就像以往的协同式多任务操作系统(如Windows 3.1)无法保证系统的稳健运行一样。现在流行的解决方法是Ring Deprivileging(译为特权等级下降),并具有两种选择:客户OS运行于Privilege1(0/1/3模型),或者Privilege 3(0/3/3模型)。


无论是哪一种模型,客户OS都无法运行于Privilege 0,这样,如GDT,IDT,LDT,TSS这些特权指令就必须通过模拟的方式来运行,这会带来很明显的性能问题。特别是在负荷沉重、这些指令被大量执行的时候。


虽然采用ring deprivileging方法可能实现系统虚拟化,但具有很多缺陷,且软件上比较复杂。为此,Intel提出了VT—x技术来解决系统虚拟化问题,其主要思路是增加一个新的比0还高的特权级,通常称之为特权级一1,并在硬件上支持系统编程接口状态的保存和恢复。


共3页: 上一页1 [2] [3]
责编:李红燕
vsharing 微信扫一扫实时了解行业动态
portalart 微信扫一扫分享本文给好友
著作权声明:kaiyun体育官方人口 文章著作权分属kaiyun体育官方人口 、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
最新专题
IT系统一体化时代来了

2009年Oracle 用Exadata服务器告诉企业,数据中心的IT服务一体化解决方案才是大势所趋,而当前企业对大数据处理的..

高性能计算——企业未来发展的必备..

“天河二号”问鼎最新全球超级计算机500强,更新的Linpack值让世界认识到了“中国速度”。但超算不能只停留于追求..

    畅享
    首页
    返回
    顶部
    ×
    畅享IT
      信息化规划
      IT总包
      供应商选型
      IT监理
      开发维护外包
      评估维权
    客服电话
    400-698-9918
    Baidu
    map