虚拟化之Hypervisor
根据 Hypervisor 的不同类型,我们将虚拟化分为I 型和 II 型两种。
I 型虚拟化,也被称为裸金属虚拟化,Hypervisor 直接调用硬件资源,不需要底层 Host OS,或者说在I 型虚拟化中,可以将 Hypervisor 看做一个定制的 Host OS,除了起到 VMM 的作用外,一般不能在其上安装其它的应用。
Hypervisor 主要实现两个基本功能:首先是识别、捕获和响应虚拟机所发出的 CPU 特权指令或保护指令(特权指令和保护指令在 CPU 虚拟化中介绍);其次,它负责处理虚拟机队列和调度,并将物理硬件的处理结果返回给相应的虚拟机。
也就是说,Hypervisor 将负责管理所有的资源和虚拟环境。VMM 可以看作一个为虚拟化而生的完整操作系统,掌控有所有资源(CPU、内存和 I/O 设备)。VMM 承担管理资源的重任,其还需向上提供虚拟机VM 用于运行 Guest OS,因此 VMM 还负责虚拟环境的创建和管理。
采用该结构的虚拟化产品主要有:VMWare ESX Server、Citrix XenServer 和FusionCompute 等。
注:通俗的讲,I 型虚拟化中Hypervisor 啥也不干,就专门负责将物理的硬件资源转换为虚拟资源供Guest OS 使用,Guest OS 就像直接运行在物理硬件上一样,所以称为裸金属。
I 型虚拟化有以下特点:
- 优点:虚拟机不依赖于操作系统,支持多种操作系统,多种应用。
- 缺点:虚拟层内核开发难度大。
II 型虚拟化,也被称为宿主型虚拟化,此模型的物理资源由 Host OS(例如 Windows, Linux etc.)管理,实际的虚拟化功能由 VMM 提供,而 VMM 作为底层操作系统(Windows 或 Linux 等)上的一个普通应用程序,然后通过其再创建相应的虚拟机,共享底层服务器资源。VMM 通过调用 Host OS 的服务来获得资源,实现 CPU、内存和 I/O 设备的虚拟化。VMM 创建出虚拟机VM 后,通常将VM 作为 Host OS 的一个进程参与调度。
采用该虚拟化产品主要 有:VMware Workstation、Virtual PC 等。
II 型虚拟化有以下特点:
- 优点:简单、易于实现。
- 缺点:安装和运行应用程序依赖于主机操作系统对设备的支持。管理开销较大,性能损耗大。
注:和 I 型虚拟化不一样,II 型虚拟化中 Hypervisor 只是 Host OS 的一个应用程序,所有的硬件资源还是归 Host OS 管理。
无论是 I 型还是 II 型虚拟化,都具备分区、隔离、封装和独立的特点。
(1) 分区:分区意味着虚拟化层为多个虚拟机划分服务器资源的能力;每个虚拟机可以同时运行一个单独的操作系统(相同或不同的操作系统),使您能够在一台服务器上运行多个应用程序;每个操作系统只能看到虚拟化层为其提供的“虚拟硬件”(虚拟网卡、CPU、内存等),以使它认为运行在自己的专用服务器上。分区功能解决了以下两个方面的问题:
- 每个分区划分资源配额,防止虚拟化超配额使用资源
- 每个虚拟机单独安装操作系统,彼此互不影响
(2) 隔离:通过分区所建立的多个虚拟机之间采用逻辑隔离措施,防止相互影响。隔离功能解决了如下问题:
- 一个虚拟机的崩溃或故障(例如,操作系统故障、应用程序崩溃、驱动程序故障, 等等)不会影响同一服务器上的其它虚拟机
- 一个虚拟机中的病毒、蠕虫等与其它虚拟机相隔离,就像每个虚拟机都位于单独的物理机器上一样
通过隔离的功能,我们可以进行资源控制以提供性能隔离,即为每个虚拟机指定最小和最大资源使用量,以确保某个虚拟机不会占用所有的资源而使得同一系统中的其它虚拟机无资源可 用;也可以在单一机器上同时运行多个负载/应用程序/操作系统,而不会出现我们刚才讨论传统x86 服务器体系结构的局限性时所提到的那些问题(应用程序冲突、DLL 冲突等)
(3) 封装:封装意味着将整个虚拟机(硬件配置、BIOS 配置、内存状态、磁盘状态、CPU 状态)储存在独立于物理硬件的一小组文件中。只需复制几个文件就可以随时随地根据需要复 制、保存和移动虚拟机。不少人都用过VMWare Workstation 这个虚拟化产品,我们创建的虚拟机是可以通过复制一小组虚拟机文件到其它安装有VMWare Workstation 的电脑上重新打开运行的。对于虚拟机的迁移而言,最为重要的原因就是封装特性,封装也是虚拟化所有本质特性中最为重要的特性。这是因为虚拟机成为独立硬件的文件,那么虚拟机具备迁移和热插拔特性等功能。这些特性也都和虚拟机封装特性息息相关。
(4) 相对硬件独立:虚拟机在封装为独立文件后,虚拟机迁移只需要把虚拟机设备文件和配置文件或磁盘文件复制到另一台主机上运行即可,而不用关心底层的硬件类型是否兼容,这就是相对硬件的独立性。因为底层的硬件设备被其上运行的虚拟化监视器 VMM(Virtual Machine MoniToR,即 VMM)屏蔽,运行在 VMM 之上的虚拟机只需要关心目的主机是否也存在相同的 VMM 即可,不用关心底层的硬件规格配置等信息。这就如同我们在Windows 7 系统上用office 2007 编辑好 word 文件,然后把这个 word 文件复制到另一台 Windows 10 系统的电脑上,这时我们只要关心是否有可以打开文档的 office 2007 即可,不必关心底层硬件 CPU 是什么型号,内存多大的规格。
引用:HCIA培训教材