购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1
虚拟化概述

3.1.1
虚拟化的基本概念

在计算机科学中,虚拟化(Virtualization)是一种资源管理技术,它将计算机的各种物理资源(如服务器、网络、内存及存储等)进行抽象、转换后呈现出来,从而呈现出一个可供分割并任意组合为一个或多个(虚拟)计算机的配置环境。虚拟机技术打破了计算机内部实体结构间不可切割的障碍,使用户能够以比原本更好的配置方式来应用这些计算机硬件资源,这些资源的虚拟形式不受现有架设方式、地理位置或底层资源的物理配置的限制。

根据虚拟化的物理对象的不同,虚拟化可以分为三种类型:资源虚拟化、平台虚拟化和应用程序虚拟化。

(1)资源虚拟化。

资源虚拟化是针对诸如存储、网络资源等特定系统资源的虚拟化技术。

◆ 网络虚拟化:将网络的硬件与软件资源整合,向用户提供虚拟网络连接的虚拟化技术,主要有VLAN(虚拟局域网)、VPN(虚拟专用网)、SDN(软件定义网络)和NFV(网络功能虚拟化)等类型。

◆ 存储虚拟化:将物理的存储设备抽象为一个逻辑视图,用户可以通过这个视图中的统一逻辑接口来访问被抽象化后的存储资源。存储虚拟化可以分为基于存储设备的存储虚拟化(如磁盘阵列)、基于网络的存储虚拟化(如NAS,即网络附属存储)以及云存储等类型。

(2)平台虚拟化。

平台虚拟化是针对计算机和操作系统的虚拟化,包括服务器虚拟化、桌面虚拟化和操作系统虚拟化。

◆ 服务器虚拟化:通过硬件抽象层的虚拟化,将一台物理服务器虚拟化为一台或多台虚拟服务器。

◆ 桌面虚拟化:将计算机的终端系统(也称作桌面)进行虚拟化,从而可以安全灵活地使用桌面。在这种情况下,用户对桌面的访问不需要被限制在具体设备、具体地点和具体时间上;经过虚拟化后的桌面环境被保存在远程的服务器上,而不是本地个人计算机上,通过网络可以随时随地通过任意终端访问和使用桌面。

◆ 操作系统虚拟化:一般情况下,一个应用程序的操作环境包括操作系统、文件系统、环境设置等。如果应用程序的这些操作环境不改变,那么应用程序本身也无法分辨出其所在的环境与真实环境之间的差异。操作系统级虚拟化技术的关键思想在于,操作系统之上的各层按每个虚拟机的要求为其生成一个运行在物理机器之上的操作系统副本,从而为每个虚拟机提供一个完好的操作环境,并且实现虚拟机及其物理机器的隔离。几种常见的操作系统级虚拟化技术有Jail、LXC、Ensim和Docker等。

(3)应用程序虚拟化。

应用程序虚拟化主要包括高级语言虚拟化和应用程序虚拟化。

◆ 高级语言虚拟化:解决的是可执行程序在不同体系结构计算机间迁移的问题。由高级语言编写的程序可编译为标准的中间指令,这些指令在解释执行或编译环境中被执行,如Java虚拟机(JVM)。

◆ 应用程序虚拟化:将应用程序与操作系统解耦,为应用程序提供一个虚拟的运行环境,其中包括应用程序的可执行文件和它所需的运行时环境。应用虚拟化服务器可以实时地将用户所需的程序组件推送到客户端的应用虚拟化运行环境,如VMware ThinApp。

本书主要关注与云计算密切相关的平台虚拟化技术。

3.1.2
平台虚拟化的目的

平台虚拟化的提出主要是出于两个目的:一是提高资源的利用率,二是提高系统维护的灵活性。

(1)提高资源的利用率。

在虚拟化出现之前,往往在一个物理机上部署一个应用,在这种部署方式下,90%的服务器在90%的时间中,CPU的占用率不足10%,这被称为9-9-1原则。随着硬件技术的发展和进步,这种资源利用率低下的问题更加突出,于是人们希望将多个应用程序融合到一台服务器上,提高资源的利用率。同时,不同的应用又可以相互隔离,不会彼此影响。

(2)提高系统维护的灵活性。

早期的平台虚拟化技术主要是针对大型机或小型机的,目的主要是提高资源的利用率;x86服务器在早期时,由于其本身性能有限,即一个x86平台应对一两个应用已经捉襟见肘,故x86被认为是不可虚拟化的架构。随着硬件性能的提升,以及x86服务器和桌面计算机的广泛部署,企业IT基础设施面临着如下难题:

◆ IT资源利用率低;

◆ 基础设施成本高;

◆ IT运维成本高;

◆ 故障切换和灾难防护不灵活;

◆ 终端用户桌面的维护成本高昂。

虚拟化技术不仅可以有效地提高资源的利用率,而且通过应用系统与硬件的解耦,实现了系统的灵活运维,即虚拟化技术将硬件封装为标准化的虚拟硬件设备,提供给虚拟机内的操作系统和应用程序使用,从而使不同硬件间的数据迁移、存储、整合等更加灵活和易于实现。

虚拟化前后的对比分析,如表3-1所示。

表3-1 虚拟化前后的对比分析

3.1.3
虚拟化架构

传统物理机与虚拟化平台的架构对比如图3-1所示。在传统物理机架构中,主要包括物理主机、操作系统和应用程序;在虚拟化平台架构中,包括了物理主机、虚拟化软件层和虚拟机。

◆ 物理主机,提供CPU、内存、I/O设备等硬件资源。

◆ 虚拟化软件层,通常称为VMM(Virtual Machine Monitor,虚拟机监视器),也称为Hypervisor,是虚拟化实现的核心,负责将物理主机的硬件资源虚拟化为逻辑资源,并对这些逻辑资源进行管理和协调,从而保证在其上运行的虚拟机协调工作,同时为各虚拟机的资源提供逻辑隔离。

◆ 虚拟机,是运行在虚拟化软件层上的客户操作系统(Guest OS),为用户提供一个独立的运行空间,通过VMM获取硬件资源来完成用户任务。

图3-1 传统物理机与虚拟化平台的架构对比

虚拟化架构可以分为2种类型:原生的或裸机的虚拟化架构和基于宿主机的虚拟化架构,如图3-2所示。

图3-2 虚拟化架构

(1)原生的虚拟化架构。

原生的虚拟化架构,也称为类型Ⅰ的虚拟化架构,VMM直接运行在主机硬件上,通过为上层虚拟机提供指令集和设备接口来支持其正常运行。在原生的虚拟化架构中,VMM实际上扮演了操作系统的角色,负责对所有物理资源的管理与调度,运行效率较高,但是实现起来比较复杂,往往需要硬件的支持。随着硬件技术的发展及其对虚拟化的支持,该架构已成为虚拟化平台的主流架构,典型的虚拟化平台有VMware 5.5及以后版本、Xen 3.0及以后版本、Virtual PC 2005、KVM等。

(2)基于宿主机的虚拟化架构。

基于宿主机的虚拟化架构,也称为类型Ⅱ的虚拟化架构,VMM运行在传统的操作系统上,类似于其他应用程序的方式运行,利用宿主机的操作系统的功能实现硬件资源的抽象和上层虚拟机的管理。基于宿主机的虚拟化架构不需要硬件的支持,实现起来比较容易,但是由于VMM对硬件资源的调用和管理需要通过宿主机的操作系统来完成,与原生的虚拟化架构相比,运行效率比较低。早期的虚拟化平台主要是基于宿主机的虚拟化架构实现的,典型的实现有VMware 5.5以前版本、Xen 3.0以前版本、Virtual PC 2004等。 6BQSRKdU9KkrBQoxPu7zVLOtgO+/oqutQT5EHkazMQw0MSskOdBKY6aCRPAV36km

点击中间区域
呼出菜单
上一章
目录
下一章
×