Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1366621
  • 博文数量: 244
  • 博客积分: 3321
  • 博客等级: 中校
  • 技术积分: 2704
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-26 08:17
个人简介

微信公众号:杰夫弹弹看

文章分类

全部博文(244)

文章存档

2018年(4)

2017年(32)

2016年(25)

2015年(28)

2014年(27)

2013年(34)

2012年(25)

2011年(30)

2010年(39)

分类: 虚拟化

2011-11-13 10:30:59

看到一篇还不错的介绍虚拟化的文章,所以记下来
来源:http://www.cnblogs.com/ventlam/archive/2010/10/09/1846862.html

一.虚拟化技术的类型 1.全虚拟化

全虚拟化(Full virtualization), 也称为原始虚拟化技术,全虚拟化是指虚拟机模拟了完整的底层硬件,包括处理器、物理内存、时钟、外设等,使得为原始硬件设计的操作系统或其它系统软件完全 不做任何修改就可以在虚拟机中运行。该技术架构图如图1-1所示:

                                               Paravirtualization shares the process with the guest operating system.

1-1. 全虚拟化: 使用Hypervisor分享底层硬件

由于计算机硬件化资源被抽象化,必须需要一个机制来管理抽象化之后的资源。这个机制一般称作Hypervisor或者Virtual Machine Monitor(VMM)。该模型使用虚拟机协调客户操作系统和原始硬件.因为VMM在客户操作系统和裸硬件之间用于工作协调. 一些受保护的指令必须由Hypervisor(虚拟机管理程序)来捕获和处理.

因为操作系统是通过Hypervisor来分享底层硬件。全虚拟化的运行速度要快于硬件模拟, 但是性能方面不如裸机, 因为Hypervisor需要占用一些资源.它的唯一限制是操作系统必须能够支持底层硬件(比如, PowerPC)
     代表项目;VMWare   闭源/  z/VM(IBM)   闭源

2.半虚拟化

半虚拟化(Paravirtualization)是另一种类似于全虚拟化的热门技术. 它使用Hypervisor(虚拟机管理程序)分享存取底层的硬件。半虚拟化技术使得操作系统知道自身运行在一个Hypervisor,它的客户操作系统 集成了虚拟化方面的代码. 该方法无需重新编译或引起陷阱, 因为操作系统自身能够与虚拟进程进行很好的协作.如图1-2所示:

                                             Paravirtualization shares the process with the guest operating system.

1-2半虚拟化: 通过客户操作系统分享进程

上面提到过, 半虚拟化需要客户操作系统做一些修改(配合Hypervisor), 这是一个不足之处. 但是半虚拟化提供了与原始系统相近的性能. 与全虚拟化一样, 半虚拟化可以同时能支持多个不同的操作系统.代表项目: XEN   GPL  / UML  GPL

3.硬件辅助虚拟化

硬件辅助虚拟化(Hardware-assiisted  virtualization).或者称作硬件虚拟机(HVM) 主要是指操作系统在其之上运行时,必须靠系统的硬件来完成虚拟化的过程。硬件辅助虚拟技术不但能够提高全虚拟的效率(VM的产品都加入该类功能),而且使 用半虚拟技术的XEN也通过该项技术做到支持Window,Mac之类闭源的操作系统。该技术的架构图如图1-1所示:

                                    Hardware emulation uses a VM to simulate the required hardware.

                                                 图1-3. HVM架构图

X-86平台(包括X-86 64,AMD64)上的硬件辅助虚拟化项目主要是:Intel的VT和AMD的AMD-V 

 

4. 操作系统级的虚拟化

最后一个需要了解的虚拟化技术是操作系统级的虚拟化(Operating system-level virtualization), 它使用不同于上面的虚拟化方法. 该类只能仿真出主机的操作系统,如在Linux上只能运行Linux,Window上只能运行Window

                                            Operating system-level virtualization isolates servers.

1-4操作系统级的虚拟化: 隔离单个服务器 

二.具体的虚拟化产品 1.XEN

Xen作为最优秀的半虚拟化引擎,在基于硬件的虚拟化的帮助下,现在也支持完全虚拟化MS windows了.XEN架构如图2-1所示:

 

    图2-1 XEN架构

最底层的是计算机硬件,包括CPU,RAM,硬盘接口,网卡,外设数据总线等等。
硬件层之上,是Xen hypervisor层,包括总控界面(Xen Control Interface),虚拟CPU,虚拟RAM,虚拟硬盘,虚拟网卡等等。


在Xen层之上,是各个OS实例(OS instances)。其中最左边的OS实例很特别。在启动Xen的时候,最左边的OS实例,Domain0 on XenoLinux,自动被启动。Domain0里运行着Xen Control Software,这个软件控制着各个OS实例的启动,终止,以及监控其运行情况。


Domain0对于其它OS实例的控制,是通过Xen层中Xen Control Interface来实现的。而这个Xen Control Interface只对Domain0开放。其它OS实例只有被管理的义务,而没有管理其它实例的权力。DomUs可以运行被修改过或者标准化的操作系 统。被修改的系统运行在paravirtualization(半虚拟化)每个OS实例都被分配一套虚拟的CPU,RAM,硬盘和网卡。每个OS实例使用 这些虚拟的设备,与通常的OS并无不同。在新版的XEN中通过PCI允许客户OS直接读取硬件,以提高整体性能。如图2-2所示,客户OS直接使用硬件

 

                 图2-2客户OS通过XEN PCI 直接读取硬件

2.KVM

KVM是在X86平台上的Linux全虚拟化方案。Linux 2.6.20内核增加了KVM虚拟化技术.它的特点是系统内核通过添加KVM的kernel module(kvm.ko),使系统内核自身成为一个Hypervisor(虚拟机管理程序)。

内核中的KVM模块通过/dev/kvm字符串设备显示被虚拟的硬件. KVM使用修改过的QEMU进程做为客户操作系统接口.KVM的虚拟化架构如图2-3所示:

                                             Virtualization with the Kernel Virtual Machine (KVM).

 

图2-3. KVM的虚拟化

 

KVM模块向内核增加了一个新的执行模式: 客户模式. 官方原始内核(vanilla kernel)支持内核和用户模式. 客户模式用于执行所有非I/O客户代码, 普通用户模式支持客户I/O.

它是第一个整合到Linux内核的虚拟化技术.

 

3.VMware

     WMware是全球最大的虚拟化厂商,该公司产品线漫长,主要包括桌面版的 Vmware workstation和企业版的VMWare  ESX server。它们使用的虚拟化技术主要是全虚拟,在加上硬件辅助虚拟化后,产品性能有所提高。

       在云计算中,VM主打产品是vSphere。它是非常完整的虚拟机群集产品,其组件包括:ESX Server 群,vCenter管理中心,数据库,vSphere (VI4)客户端。vSphere组件层如图2-4所示:

        

图2-4vSphere组件层

阅读(1479) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~