开发者学堂课程【虚拟化技术入门:虚拟化技术概述】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/374/detail/4695
虚拟化技术概述
内容介绍:
一、虚拟化的定义及分类
二、虚拟机监视器及虚拟化模型
三、物理机与虚拟机
四、虚拟机监视器的标准
五、虚拟机技术的标准
六、常见的虚拟机软件
一、虚拟化的定义及分类
(1)定义
在计算机领域有一重要论断:任何计算机的问题都可以通过另一层的抽象或重定向来解决。
系统虚拟化也不例外,它实际上是对计算机资源的抽象。通过这一技术,可以将 CPU 、内存、I/O 资源虚拟化。系统虚拟化与进程级虚拟化不同,进程级虚拟化是对应用层、ADN 层面进行的虚拟化,如常见的 Java 虚拟机,而今天所研究的系统虚拟化是对平台层面的抽象或重定向,不讨论进程级虚拟化。
(2)分类
根据实现方式的不同,分为两类。
①Full virtualization,即完全虚拟化,再根据技术实现的不同,分为两类:
a.Hardware-assisted virtualization 硬件辅助的虚拟化
b.Binary Translation etc. 二进制翻译技术,在Hardware-assisted virtualization 技术出现之前,被许多公司采用,如 VMware、微软等。
②Para-virtualization 准虚拟化或半虚拟化,它的技术是通过修改客户端的操作系统,使得 hypervisor 与 Guest 操作系统(Guest OS)一起完成整个虚拟化工作实现的。
二、虚拟机监视器模型
Virtual Machine Monitor(VMM),即虚拟机监视器,又称hypervisor。在了解了 VMM 或 hypervisor 的作用之后,再来了解一下两种典型的 hypervisor 模型,其运行方式不同:
(1)Hypervisor Model(Type-1)
在硬件平台上直接运行的hypervisor,这与刚刚讲到的模型十分地相像。
(2)Host-based Model(Type-2)
在硬件平台上运行的不是一个完整的hypervisor,而是 Host 操作系统(Host OS)在内核层面再加入了一个hypervisor 功能,即所有的虚拟机都运行在 Host OS 上
三、物理机与虚拟机
(1)物理机
包括物理的硬件与软件部分,软件部分又包括了操作系统部分与应用程序部分,结合之前提到的任何计算机的问题都可以通过另一层的抽象或重定向来解决,操作系统部分则起到了抽象硬件资源的作用。如它可以将硬件资源中的内存、CPU、IO 资源通过驱动的方式进行抽象,为上层的应用提供 I/O、计算以及内存方面的能力。
(2)虚拟机
在虚拟机环境中,VMM 与物理机中的操作系统部分扮演相同的角色。在对底层硬件资源进行管理的同时,也对底层的硬件资源进行抽象,然后向上抽象出虚拟的 CPU、内存、I/O 资源,上层的操作系统资源接收到这些资源后,可以再进行资源的抽象,为虚拟机中的应用提供资源和服务等能力。
一些如它可以将硬件资源中的内存、CPU、IO 资源通过驱动的方式进行抽象,为上层的应用提供 I/O、计算以及内存方面的能力。
物理机中底层的硬件都是物理的,而虚拟机中虽然也使用了 CPU、内存、和 IO 资源,但这些资源都是通过 VMM 抽象得到的。因此,VMM 则起到了对硬件资源抽象的作用。
四、虚拟机监视器的标准
(1)必须够能控制硬件
在硬件层面,必须能够控制整个硬件平台,能够控制 CPU、内存、和 IO 方面的资源。
(2)必须有效隔离客户机
必须能与客户机系统进行有效的隔离,以保护自身免收客户机系统软件的威胁。
(3)必须在多个客户机系统之间提供强隔离能力
五、虚拟机技术的标准
(1)等价性(Equivalence)
VMM虚拟所得的虚拟平台要与物理平台具有等价性,但并不是完全相同。比如虚拟平台中使用的虚拟出来的网卡不一定要与物理平台中的网卡完全相同,功能等价即可。
(2)高效性
性能损失小甚至忽略不计,因此在虚拟机之前出现的 simulator(模拟器)不属于虚拟机,因为其性能损失较高。
六、常见的虚拟监视器软件
(1)Xen
剑桥大学计算机实验室发起的一个开源项目,发起于2002年,在当时被很多大公司用作虚拟化的底层平台,如亚马逊、阿里云、Rackspac e等。
(2)KVM
2007以色列公司给予 Linux 内核开发的虚拟机软件。
(3)Hyper-v
2006年微软公司开发的一个商业虚拟化软件。
(4)VMware ESX Server
用于满足高端服务器的虚拟化需求
(5)VMware workstation
用于满足工作站的虚拟化需求
(6)VirtualBox
用于满足 PC 的虚拟化需求