We use cookies to improve your experience with our site.
陈海波, 张逢喆, 陈榕, 臧斌宇, 游本中. 基于动态虚拟化技术的系统可靠性与性能结合技术研究[J]. 计算机科学技术学报, 2012, 27(1): 92-104. DOI: 10.1007/s11390-012-1208-1
引用本文: 陈海波, 张逢喆, 陈榕, 臧斌宇, 游本中. 基于动态虚拟化技术的系统可靠性与性能结合技术研究[J]. 计算机科学技术学报, 2012, 27(1): 92-104. DOI: 10.1007/s11390-012-1208-1
Hai-Bo Chen, Feng-Zhe Zhang, Rong Chen, Bin-Yu Zang, Pen-Chung Yew. Mercury: Combining Performance with Dependability Using Self-Virtualization[J]. Journal of Computer Science and Technology, 2012, 27(1): 92-104. DOI: 10.1007/s11390-012-1208-1
Citation: Hai-Bo Chen, Feng-Zhe Zhang, Rong Chen, Bin-Yu Zang, Pen-Chung Yew. Mercury: Combining Performance with Dependability Using Self-Virtualization[J]. Journal of Computer Science and Technology, 2012, 27(1): 92-104. DOI: 10.1007/s11390-012-1208-1

基于动态虚拟化技术的系统可靠性与性能结合技术研究

Mercury: Combining Performance with Dependability Using Self-Virtualization

  • 摘要: 1.本文的创新点
    系统虚拟化可以解决当前计算机系统特别是云计算平台的许多问题,然而,系统虚拟化并非免费的午餐。首先,通常的虚拟化技术将带来一定的性能开销。其次,由于虚拟化层的存在,运行于虚拟机上的某些高并发的服务将不能得到很好的服务质量保证。第三,由于虚拟化技术实现的限制,通常的虚拟化平台只暴露有限的接口给操作系统,从而限制了虚拟机上的服务对于新特性硬件的应用。
    值得注意的是,很多基于虚拟化的可信增强技术在日常执行时并不需要被使用。例如基于虚拟化的运行环境迁移技术只有在出现硬件故障或者负载平衡时才需要;对操作系统与服务进行检查点与重启只有在某些特定时刻需要;动态更新技术只有在对操作系统进行动态更新时才需要虚拟机技术。在这些情况下,一直将操作系统运行于虚拟环境下将带来不必要的损失,如性能、服务质量与功能等。
    我们提出动态虚拟化技术(即按需虚拟化技术),来避免虚拟化所带来的损失,同时享受其带来的高可信性。动态虚拟化技术通过允许操作系统及其运行环境动态地在虚拟环境与真实环境中切换,从而享受两种模式带来的好处,在当前系统需要用到虚拟化相关支持特性时,动态虚拟化技术允许在一个运行中的操作系统之下动态插入一个虚拟机监控器,并将操作系统转换进入虚拟模式运行;当虚拟化特性使用完毕时,动态虚拟化技术允许将运行中的虚拟机监控器动态地移除,并将操作系统反虚拟化,直接执行于真实硬件环境中。当操作系统处于虚拟模式时,其运行的计算机系统能够使用虚拟化的所有技术,如虚拟机迁移、动态更新等。
    2.实现方法
    动态虚拟化技术的关键部分是针对各种模式的虚拟化对象(Virtualization Object,VO)。虚拟化对象实现了对虚拟化敏感代码与数据的封装。针对虚拟模式的虚拟化对象的实例将依赖于虚拟机监控器提供的服务,而针对直接模式的虚拟化对象的实例则可直接操作硬件。每个虚拟化对象实例由一系列状态跟踪函数(State Tracking)、状态重载函数(State Reloading)与虚拟化敏感的数据组成。
    当操作系统从直接模式转换到宿主模式时,虚拟机监控器将被激活。对虚拟机监控器的激活将通过对其VO Assistant进行调用而完成。VO Assistant由一系列的中断函数与帮助函数组成,VO Assistant通过对上层的VO对象进行调用以保证动态虚拟化的安全性与状态的一致性。
    3.结论及未来待解决的问题
    系统虚拟化在提高云计算平台的可信性方面具有较好的前景,然而系统虚拟化并不是免费的。很多时候系统虚拟化带来的性能开销是可以避免的。本文提出动态虚拟化技术,允许在一个操作系统下动态插入与移除一个具备完整功能的虚拟机监控器,并允许操作系统动态地在真实环境与虚拟环境间进行切换。动态虚拟化在在线硬件维护、操作系统动态更新和在线容错等方面具备诱人前景,能在不牺牲系统性能的同时使系统具备高可信性支持。

     

    Abstract: Virtualization has recently gained popularity largely due to its promise in increasing utilization, improving availability and enhancing security. Very often, the role of computer systems needs to change as the business environment changes. Initially, the system may only need to host one operating system and seek full execution speed. Later, it may be required to add other functionalities such as allowing easy software/hardware maintenance, surviving system failures and hosting multiple operating systems. Virtualization allows these functionalities to be supported easily and effectively. However, virtualization techniques generally incur non-negligible performance penalty. Fortunately, many virtualization-enabled features such as online software/hardware maintenance and fault tolerance do not require virtualization standby all the time. Based on this observation, this paper proposes a technique, called Self-virtualization, which provides the operating system with the capability to turn on and off virtualization on demand, without disturbing running applications. This technique enables computer systems to reap most benefits from virtualization without sacrificing performance. This paper presents the design and implementation of Mercury, a working prototype based on Linux and Xen virtual machine monitor. The performance measurement shows that Mercury incurs very little overhead: about 0.2 ms on 3 GHz Xeon CPU to complete a mode switch, and negligible performance degradation compared to Linux.

     

/

返回文章
返回