首页 > 百科知识 正文

虚拟化和云计算(云计算和虚拟化相互关系是什么)

时间:2023-11-20 16:17:52 阅读:570 作者:黎糸斡煦

虚拟化和云计算是一组新技术,这些技术目前都是业内的热点。虚拟化和云计算的出现为信息技术领域带来了新的机遇。

虚拟化

虚拟化( Virtualization)是对硬件资源的抽象。例如通过虚拟机监控器(Virtual Machine Monitor,VMM)在物理硬件之上生成许多可以运行独立操作系统软件的虚拟机(Virtual Machine)实例,不同的虚拟机中运行不同的应用程序,应用程序就像在物理机上运行一样;通过对物理内存的抽象,产生了虚拟内存技术,使得应用程序认为其自身拥有连续可用的地址空间(Address Space),而实际上,应用程序的代码和数据可能被分隔成多个碎片页或段,甚至被交换到磁盘等外部存储器上,即使物理内存不足,应用程序也能顺利执行;通过虚拟出网卡、磁盘等资源,模拟硬件的执行。

虚拟化实现了IT资源的逻辑抽象和统一表示,在大规模数据中心管理和解决方案交付方面发挥着巨大的作用,是支撑云计算伟大构想的最重要的技术基石。目前,虚虚拟化技术主要包括计算虚拟化、存储虚拟化、网络虚拟化等技术。

虚拟化技术的分类

虚拟化技术是一个非常广的概念,所以其具体内容可分成不同层面的几大类型。

1.平台虚拟化(Platform Virtualization):针对计算机和操作系统的虚拟化。我们通常所说的虚拟化主要是指平台虚拟化技术,通过使用控制程序(Control Program,也称为 Virtual Machine Monitor 或 Hypervisor),隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境。虚拟机中运行的操作系统称为客户机操作系统(Guest OS),运行虚拟机监控器的操作系统称为主机操作系统(Host OS),当然某些虚拟机监控器可以脱离操作系统直接运行在硬件之上(如 VMWARE 的 ESX 产品)。运行虚拟机的真实系统称为主机系统。

虚拟化和云计算(云计算和虚拟化相互关系是什么)-第1张

平台虚拟化技术又可以细分为如下几个子类:

(1)全虚拟化

全虚拟化(Full Virtualization)是指虚拟机模拟了完整的底层硬件,包括处理器、物理内存、时钟、外设等,使得为原始硬件设计的操作系统或其他系统软件完全不作任何修改就可以在虚拟机中运行。操作系统与真实硬件之间的交互可以看成是通过一个预先规定的硬件接口进行的。全虚拟化 VMM(Virtual Machine Monitor)以完整模拟硬件的方式提供全部接口(同时还必须模拟特权指令的执行过程)。全虚拟化 VMM必须完整地模拟该接口执行的全过程。如果硬件不提供虚拟化的特殊支持,那么这个模拟过程将会十分复杂:一般而言,VMM 必须运行在最高优先级来完全控制主机系统,而客户机操作系统需要降级运行,从而不能执行特权操作。比较著名的全虚拟化VMM 有 Microsoft Virtual PC、Microsoft Virtual Hypervisor/VMware Workstation、SUN Virtual Box等。

(2)超虚拟化

超虚拟化(Paravirtualization)是一种修改客户机操作系统部分访问特权状态的代码以便直接与 VMM 交互的技术。在超虚拟化虚拟机中,部分硬件接口以软件的形式提供给客户机操作系统,这可以通过 Hypercall(VMM 提供给客户机操作系统的直接调用,与系统调用类似)的方式来提供。例如,客户机操作系统把切换页表的代码修改为调用 Hypercall 来直接完成修改影子 CR3 寄存器和翻译地址的工作。由于不需要产生额外的异常和模拟部分硬件执行流程,超虚拟化可以大幅度提高性能,比较著名的 VMM 有 Denali、Xen。

虚拟化和云计算(云计算和虚拟化相互关系是什么)-第2张

(3)硬件辅助虚拟化

硬件辅助虚拟化(Hardware-Assisted Virtualization)是指借助硬件(主要是主机处理器)的支持来实现高效的全虚拟化。例如有了 Intel-VT 技术的支持,客户机操作系统和 VMM 的执行环境自动地完全隔离开来,客户机操作系统有自己的“全套寄存器”,可以直接运行在最高级别。因此在上面的例子中,客户机操作系统能够执行修改页表的汇编指令。Intel-VT 和 AMD-V 是目前 x86 体系结构上可用的两种硬件辅助虚拟化技术。

虚拟化和云计算(云计算和虚拟化相互关系是什么)-第3张

(4)部分虚拟化

部分虚拟化(Partial Virtualization)中,VMM 只模拟部分底层硬件,因此客户机操作系统不作修改是无法在虚拟机中运行的,其他程序可能也需要进行修改。(5)操作系统级虚拟化

传统操作系统中,所有用户的进程本质上是在同一个操作系统的实例中运行,因此内核或应用程序的缺陷可能影响到其他进程。操作系统级虚拟化(Operating System Level Virtualization)是一种在服务器操作系统中使用的轻量级的虚拟化技术,内核通过创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程,不同实例中的进程完全不了解对方的存在。操作系统级虚拟化最流行的叫法是:容器。目前最流行的容器是Docker等。

虚拟化和云计算(云计算和虚拟化相互关系是什么)-第4张

2.资源虚拟化

资源虚拟化(Resource Virtualization),针对特定的系统资源的虚拟化,比如内存、存储、网络资源等。

虚拟化和云计算(云计算和虚拟化相互关系是什么)-第5张

3.应用程序虚拟化

应用程序虚拟化(Application Virtualization),包括仿真、模拟、解释技术等。

虽然上面对虚拟化的分类已较为精确,但这种分类并不是绝对的,一个优秀的虚拟化软件往往融合了多项技术。例如 VMware Workstation 是一个著名的全虚拟化的 VMM,但是它使用了一种被称为动态二进制翻译的技术把对特权状态的访问转换成对影子状态的操作,这与超虚拟化相似,只不过超虚拟化是静态地修改程序代码。对于超虚拟化而言,如果能利用硬件特性,那么虚拟机的管理将会大大简化,同时还能保持较高的性能。

虚拟化的模式

虚拟化常用实现模式和技术有以下几种:

1.单一资源多个逻辑表示

这种模式是虚拟化最广泛使用的模式之一。它只包含一个物理资源,但是它向消费者呈现的逻辑表示却仿佛它包含多个资源一样。消费者与这个虚拟资源进行交互时就仿佛自己是唯一的消费者一样,而不会考虑他正在与其他消费者一起共享资源。

2.多个资源单一逻辑表示

这种模式包含了多个组合资源,以便将这些资源表示为提供单一接口的单个逻辑表示形式。在利用多个功能不太强大的资源来创建功能强大且丰富的虚拟资源时,这是一种非常有用的模式。存储虚拟化就是这种模式的一个例子。在服务器方面,集群技术可以提供这样的幻想:消费者只与一个系统(头节点)进行交互,而集群事实上可以包含很多的处理器或节点。实际上,这就是从 IT 技术设施的角度看到的网格可以实现的功能。

3.在多个资源之间提供单一逻辑表示

这种模式包括一个以多个可用资源之一的形式表示的虚拟资源。虚拟资源会根据指定的条件来选择一个物理资源实现,例如资源的利用、响应时间或邻近程度。尽管这种模式与上一种模式非常类似,但是它们之间有一些细微的差别。首先,每个物理资源都是一个完整的副本,它们不会在逻辑表示层上聚集在一起。其次,每个物理资源都可以提供逻辑表示所需要的所有功能,而不是像前一种模式那样只能提供部分功能。这种模式的一个常见例子是使用应用程序容器来均衡任务负载。在将请求或事务提交给应用程序或服务时,消费者并不关心到底是几个容器中执行的哪一个应用程序的副本为请求或事务提供服务。消费者只是希望请求或事务得到处理。

4.单个资源单一逻辑表示

这是用来表示单个资源的一种简单模式,就仿佛它是别的什么资源一样。启用 Web 的企业后台应用程序就是一个常见的例子。在这种情况下,我们不是修改后台的应用程序,而是创建一个前端来表示 Web 界面,它会映射到应用程序接口中。这种模式允许通过对后台应用程序进行最少的修改(或根本不加任何修改)来重用一些基本的功能。也可以根据无法修改的组件,使用相同的模式构建服务。

5.复合或分层虚拟

这种模式是前面介绍的一种或多种模式的组合,它使用物理资源来提供丰富的功能集。信息虚拟化是这种模式一个很好的例子。它提供了底层所需要的功能,这些功能用于管理对资源、包含有关如何处理和使用信息的元数据,以及对信息进行处理的操作的全局命名和引用。例如 Open Grid Services Architecture ( OGSA )或者 Grid Computing Components,实际上都是虚拟化的组合或虚拟化的不同层次。

版权声明:该问答观点仅代表作者本人。如有侵犯您版权权利请告知 cpumjj@hotmail.com,我们将尽快删除相关内容。