第2讲虚拟化技术 1虚拟化技术概述 1.1什么是虚拟化技术 1、虚拟化的定义 虛拟化技术( Virtualization)是伴随着计算机技术的产生而出现的,在计 算机技术的发展历程中一直扮演着重要的角色。从20世纪50年代虚拟化概念的 提出,到20世纪60年代IBM公司在大型机上实现了虚拟化的商用,从操作系统 的虛拟化到Java语言虛拟机,再到目前基于x86体系结构的服务器虚拟化技术 的蓬勃发展,都为虛拟化这一看似抽象的概念添加了极其丰富的内涵。 虛拟化,是指通过虚拟化技术将一台计算机虛拟为多台逻辑计算机。在一台 计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并 且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的 工作效率。 虛拟化,是一种资源管理技术,是将计算机的各种实体资源,如服务器、网 络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的 障碍,使用户可以比原本的组态更好的方式来应用这些资源。 2、虚拟化的层次 计算机系统是一个庞大的整体,整个系统非常复杂,因此计算机系统被自下 而上分为多个层次,每一个层次都像上一个层次呈现一个抽象,并且每一层只需 要知道下层抽象的接口,并不需要了解其内部机制。 虛拟化技术就是下层的软件模块,根据上层软件模块的需求,抽象出一个虚 拟的软件或者硬件接口,使上一层软件可以运行在与自己所期待的运行环境完全 致的虚拟环境上。虚拟化可以发生在各个层次上,形成不同层次上的虚拟化, 通常有四个层次的虚拟化 HLL Environdge DLL ABI DLL Hardware
第 2 讲 虚拟化技术 1 虚拟化技术概述 1.1 什么是虚拟化技术 1、虚拟化的定义 虚拟化技术(Virtualization)是伴随着计算机技术的产生而出现的,在计 算机技术的发展历程中一直扮演着重要的角色。从 20 世纪 50 年代虚拟化概念的 提出,到 20 世纪 60 年代 IBM 公司在大型机上实现了虚拟化的商用,从操作系统 的虚拟化到 Java 语言虚拟机,再到目前基于 x86 体系结构的服务器虚拟化技术 的蓬勃发展,都为虚拟化这一看似抽象的概念添加了极其丰富的内涵。 虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台 计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并 且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的 工作效率。 虚拟化,是一种资源管理技术,是将计算机的各种实体资源,如服务器、网 络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的 障碍,使用户可以比原本的组态更好的方式来应用这些资源。 2、虚拟化的层次 计算机系统是一个庞大的整体,整个系统非常复杂,因此计算机系统被自下 而上分为多个层次,每一个层次都像上一个层次呈现一个抽象,并且每一层只需 要知道下层抽象的接口,并不需要了解其内部机制。 虚拟化技术就是下层的软件模块,根据上层软件模块的需求,抽象出一个虚 拟的软件或者硬件接口,使上一层软件可以运行在与自己所期待的运行环境完全 一致的虚拟环境上。虚拟化可以发生在各个层次上,形成不同层次上的虚拟化, 通常有四个层次的虚拟化
(1)硬件抽象层上的虚拟化 通过虚拟硬件抽象层来实现虚拟机,为客户机操作系统呈现和物理硬件相同 或相近的硬件抽象层。 (2)操作系统层上的虚拟化 操作系统的内核可以提供多个互相隔离的用户态实例。 (3)库函数层上的虚拟化 通过虚拟化操作系统的应用级库函数的接口服务,使得应用程序不需要修改, 就可以在不同的操作系统中无缝运行,从而提高系统间的互操作性 (4)编程语言层上的虚拟化 编程语言层上的虛拟机称为语言级虛拟机,如有JWM。运行进程级作业,不 针对硬件上存在的体系结构,而是一个虚拟体系结构 3、虚拟化的价值 虛拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分 配、灵活调度、跨域共享,提高IT资源利用率,使ITˆ资源能够真正成为社会基 础设施,服务于各行各业中灵活多变的应用需求。 虛拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能 过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件,简单来说 就是将底层资源进行分区,并向上层提供特定的和多样化的执行环境。 虚拟机 虚拟机 应用程序 应用程序 AP抽象层 AP抽象层 操作系统 操作系统 软件抽象层 软件抽象层 虚拟化层 硬件抽象层 硬件 4、数据中心虚拟化 数据中心是云计算技术的核心,随着数据中心规模不断增大、成本逐渐上升 管理日趋复杂。数据中心为运营商带来巨大利益的同时,也带来了管理和运营等 方面的重大挑战。传统的数据中心网络不能满足虚拟数据中心网络高速、扁平 虚拟化的要求。传统的数据中心采用的多种技术,以及业务之间的孤立性,使得 数据中心网络结构复杂,存在相对独立的三张网,包括数据网、存储网和高性能 计算网,以及多个对外I/0接口。这些对外1/O接口中,数据中心的前端访问接 口通常采用以太网进行互连,构成高速的数据网络;数据中心后端的存储则多采
(1)硬件抽象层上的虚拟化 通过虚拟硬件抽象层来实现虚拟机,为客户机操作系统呈现和物理硬件相同 或相近的硬件抽象层。 (2)操作系统层上的虚拟化 操作系统的内核可以提供多个互相隔离的用户态实例。 (3)库函数层上的虚拟化 通过虚拟化操作系统的应用级库函数的接口服务,使得应用程序不需要修改, 就可以在不同的操作系统中无缝运行,从而提高系统间的互操作性。 (4)编程语言层上的虚拟化 编程语言层上的虚拟机称为语言级虚拟机,如有 JVM。运行进程级作业,不 针对硬件上存在的体系结构,而是一个虚拟体系结构。 3、虚拟化的价值 虚拟化使用软件的方法重新定义划分 IT 资源,可以实现 IT 资源的动态分 配、灵活调度、跨域共享,提高 IT 资源利用率,使 IT 资源能够真正成为社会基 础设施,服务于各行各业中灵活多变的应用需求。 虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能 过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件,简单来说 就是将底层资源进行分区,并向上层提供特定的和多样化的执行环境。 4、数据中心虚拟化 数据中心是云计算技术的核心,随着数据中心规模不断增大、成本逐渐上升、 管理日趋复杂。数据中心为运营商带来巨大利益的同时,也带来了管理和运营等 方面的重大挑战。传统的数据中心网络不能满足虚拟数据中心网络高速、扁平、 虚拟化的要求。传统的数据中心采用的多种技术,以及业务之间的孤立性,使得 数据中心网络结构复杂,存在相对独立的三张网,包括数据网、存储网和高性能 计算网,以及多个对外 I/O 接口。这些对外 I/O 接口中,数据中心的前端访问接 口通常采用以太网进行互连,构成高速的数据网络;数据中心后端的存储则多采
用NAS、FC-SAN等接口;服务器的并行计算和高性能计算则需要低延迟接口和架 构,如 infiniband接口。以上这些因素,导致服务器之间存在操作系统和上层 软件异构、接口与数据格式的不统一等问题。 随着云计算的发展,传统的数据中心逐渐过渡到虚拟化数据中心,即采用虚 拟化技术将原来数据中心的物理资源进行抽象整合。数据中心的虚拟化可以实现 资源的动态分配和调度,提高现有资源的利用率和服务可靠性;可以提供自动化 的服务开通能力,降低运维成本;具有有效的安全机制和可靠性机制,满足公众 客户和企业客户的安全需求;同时也可以方便系统升级、迁移和改造。 数据中心虚拟化是通过服务器虚拟化、存储虚拟化和网络虚拟化实现的。服 务器虚拟化在云计算中是最重要和最关键的,是将一个或多个物理服务器虛拟成 多个逻辑上的服务器,集中管理,能跨越物理平台而不受物理平台的限制。存储 虚拟化是把分布的异构存储设备统一为一个或几个大的存储池,方便用户的使用 和管理。网络虚拟化是在底层物理网络和网络用户之间增加一个抽象层,该抽象 层向下对物理网络资源进行分割,向上提供虚拟网络。 1.2虚拟化技术发展历程 虛拟化技术具有悠久的历史,20世纪60年代为提高硬件利用率对大型机硬 件进行分区就是最早的虚拟化。经过多年的发展,业界已经形成多种虚拟化技术 包括服务器虚拟化、网络虚拟化、存储虚拟化、桌面虚拟化等,与之相关的虚拟 化运营管理技术也被广泛研究,虚拟化技术的具体发展历程及相关重大标志性事 件叙述如后。 1、萌芽阶段 1959年6月的国际信息处理大会( International Conference on Information Processing),计算机科学家 Christopher发表的论文《大型高速 计算机中的时间共享》( Time Sharing in Large Fast Computers)中首次提出 并论述了虚拟化技术。 1970年IBM推出的 System/370中率先使用了虛拟存储器。 1987年加利福尼亚大学的 David Patterson、 Garth gibson和 Randy Katz 描述了一个由廉价磁盘组成的冗余阵列,即RAID。如今的先进卷管理程序已经 成为每一款操作系统不可或缺的一部分,RAID技术已成为每一个磁盘子系统的 核心 2、形成阶段 X86平台服务器虚拟化技术逐步发展,存储虚拟化从NAS/SAN向ⅥTL发展, 网络虛拟化随着服务器虚拟化而出现。 1998年 VMware公司成立,1999年Xen相关研究起步。 2001年 VMware推出 ESX Server,以 Redhat7.2为基础,成为一个真正的 虚拟平台。 ESX Server的出现,正式宣告 VMware进入虚拟企业界领域
用 NAS、FC-SAN 等接口;服务器的并行计算和高性能计算则需要低延迟接口和架 构,如 infiniband 接口。以上这些因素,导致服务器之间存在操作系统和上层 软件异构、接口与数据格式的不统一等问题。 随着云计算的发展,传统的数据中心逐渐过渡到虚拟化数据中心,即采用虚 拟化技术将原来数据中心的物理资源进行抽象整合。数据中心的虚拟化可以实现 资源的动态分配和调度,提高现有资源的利用率和服务可靠性;可以提供自动化 的服务开通能力,降低运维成本;具有有效的安全机制和可靠性机制,满足公众 客户和企业客户的安全需求;同时也可以方便系统升级、迁移和改造。 数据中心虚拟化是通过服务器虚拟化、存储虚拟化和网络虚拟化实现的。服 务器虚拟化在云计算中是最重要和最关键的,是将一个或多个物理服务器虚拟成 多个逻辑上的服务器,集中管理,能跨越物理平台而不受物理平台的限制。存储 虚拟化是把分布的异构存储设备统一为一个或几个大的存储池,方便用户的使用 和管理。网络虚拟化是在底层物理网络和网络用户之间增加一个抽象层,该抽象 层向下对物理网络资源进行分割,向上提供虚拟网络。 1.2 虚拟化技术发展历程 虚拟化技术具有悠久的历史,20 世纪 60 年代为提高硬件利用率对大型机硬 件进行分区就是最早的虚拟化。经过多年的发展,业界已经形成多种虚拟化技术, 包括服务器虚拟化、网络虚拟化、存储虚拟化、桌面虚拟化等,与之相关的虚拟 化运营管理技术也被广泛研究,虚拟化技术的具体发展历程及相关重大标志性事 件叙述如后。 1、萌芽阶段 1959 年 6 月的国际信息处理大会 (International Conference on Information Processing),计算机科学家 Christopher 发表的论文《大型高速 计算机中的时间共享》(Time Sharing in Large Fast Computers)中首次提出 并论述了虚拟化技术。 1970 年 IBM 推出的 System/370 中率先使用了虚拟存储器。 1987 年加利福尼亚大学的 David APatterson、Garth AGibson 和 Randy Katz 描述了一个由廉价磁盘组成的冗余阵列,即 RAID。如今的先进卷管理程序已经 成为每一款操作系统不可或缺的一部分,RAID 技术已成为每一个磁盘子系统的 核心。 2、形成阶段 x86 平台服务器虚拟化技术逐步发展,存储虚拟化从 NAS/SAN 向 VTL 发展, 网络虚拟化随着服务器虚拟化而出现。 1998 年 VMware 公司成立,1999 年 Xen 相关研究起步。 2001 年 VMware 推出 ESX Server,以 RedHat 7.2 为基础,成为一个真正的 虚拟平台。ESX Server 的出现,正式宣告 VMware 进入虚拟企业界领域
2003年 VMware推出虚拟环境管理平台 Virtual center,包括 Virtual smp 技术 2000年,NAS和SAN兴起,并引发了ⅥTL、复制和重复数据删除等许多利用 池存储或远程存储的新技术的开发。 3、商用阶段 2005年8月 Intel首次公布了其硬件虚拟化技术细节,并于2005年11月 宣布其ⅥT技术已商用。 2006年5月,AMD硬件虚拟化技术SⅥM首款商用产品 Athlon64问世。 4、成熟阶段 x86虚拟化技术进一步发展并商用,竞争激烈,桌面和应用虚拟化逐渐成为 虚拟化领域的热点。 2009年2月, Citrix发布免费版本的企业级 Xen Server平台,其中具备管 理工具 XenCenter和实时迁移功能 emOtion,并于5月发布其更新版本 Xen Server5.5,对管理功能进行了强化, Citrix公司于2015年1月发布了全 64位的 Xen Server6.5 2009年3月, Cisco推动了虚拟化市场的硬件发展,宣布推出统一计算系统 (UCS),它结合了服务器和网络硬件,还有管理软件。在8月举行的 VMworld2009 大会上, Cisco ucs获得了硬件类的金奖,证明了其显著整合运行在数据中心硬 件的能力。 2009年4月, VMware推出 vSphere4.0,这是一款划时代的全面虚拟化解 决方案,目前较新的版本为6.7,而其5.5版本是应用较为成熟的一个版本。 2009年5月,微软发布 Hyper-VR2,这个版本对第一个版本的 Hyper-V作 出了重要改进,提供热迁移、集群共享卷和其他高级功能。更重要的是这些功能 将微软与Ⅵ Mware放在相同地位上,从而显著改变了整个虚拟化市场格局。 1.3虚拟化技术的分类 在虛拟化技术中,被虛拟的实体是各种各样的IT资源。如果按照这些资源 的类型分类,可以梳理出不同类型的虚拟化。 虛拟化常见的类型有服务器虛拟化、桌面虛拟化、存储虛拟化、网络虚拟化 应用虚拟化等 2架构模式 2.1传统基础架构模式 传统的IT基础平台采用分散建设的模式,其IT基础平台的典型的做法是网 络集中管理,信息系统根据业务的重要程度,对数据进行分块化,数据存储进行 分级化处理
2003 年 VMware 推出虚拟环境管理平台 Virtual Center,包括 Virtual SMP 技术。 2000 年,NAS 和 SAN 兴起,并引发了 VTL、复制和重复数据删除等许多利用 池存储或远程存储的新技术的开发。 3、商用阶段 2005 年 8 月 Intel 首次公布了其硬件虚拟化技术细节,并于 2005 年 11 月 宣布其 VT 技术已商用。 2006 年 5 月,AMD 硬件虚拟化技术 SVM 首款商用产品 Athlon 64 问世。 4、成熟阶段 x86 虚拟化技术进一步发展并商用,竞争激烈,桌面和应用虚拟化逐渐成为 虚拟化领域的热点。 2009 年 2 月,Citrix 发布免费版本的企业级 XenServer 平台,其中具备管 理工具 XenCenter 和实时迁移功能 XenMotion,并于 5 月发布其更新版本 XenServer 5.5,对管理功能进行了强化,Citrix 公司于 2015 年 1 月发布了全 64 位的 XenServer 6.5。 2009 年 3 月,Cisco 推动了虚拟化市场的硬件发展,宣布推出统一计算系统 (UCS),它结合了服务器和网络硬件,还有管理软件。在 8 月举行的 VMworld 2009 大会上,Cisco UCS 获得了硬件类的金奖,证明了其显著整合运行在数据中心硬 件的能力。 2009 年 4 月,VMware 推出 vSphere 4.0,这是一款划时代的全面虚拟化解 决方案,目前较新的版本为 6.7,而其 5.5 版本是应用较为成熟的一个版本。 2009 年 5 月,微软发布 Hyper-V R2,这个版本对第一个版本的 Hyper-V 作 出了重要改进,提供热迁移、集群共享卷和其他高级功能。更重要的是这些功能 将微软与 VMware 放在相同地位上,从而显著改变了整个虚拟化市场格局。 1.3 虚拟化技术的分类 在虚拟化技术中,被虚拟的实体是各种各样的 IT 资源。如果按照这些资源 的类型分类,可以梳理出不同类型的虚拟化。 虚拟化常见的类型有服务器虚拟化、桌面虚拟化、存储虚拟化、网络虚拟化、 应用虚拟化等。 2 架构模式 2.1 传统基础架构模式 传统的 IT 基础平台采用分散建设的模式,其 IT 基础平台的典型的做法是网 络集中管理,信息系统根据业务的重要程度,对数据进行分块化,数据存储进行 分级化处理
传统IT系统基础架构普遍存在以下几个突出问题 (1)硬件资源利用率低下和资源紧张并存; (2)IT资源部署周期长,难以快速满足业务需求 (3)机房空间、电力供应紧张 2.2虛拟基础架构模式 所谓虚拟基础架构,就是以一台或者多台服务器作为物理机资源,借助虛拟 化软件在物理机上构建多个虚拟机平台。借助虚拟机,用户可以在多台虚拟机之 间共享单台物理机的资源,资源在多个虚拟机和应用程序之间进行共享,从而实 现资源的高效利用 虛拟基础架构包括以下组件: (1)裸机管理程序,可使每台物理服务器实现全面虚拟化; (2)虚拟基础架构服务〔如资源管理和整合备份等),可在虚拟机之间使可 用资源达到最优配置; (3)若干自动化解决方案,通过提供特殊功能来优化特定IT流程,如资 源自动部署或灾难恢复等。 虛拟基础架构具有以下效益 (1)标准化软硬件配置和资源部署流程 (2)IT资源管理集中化 (3)设备资源利用率显著提高; (4)响应“绿色行动计划”,空间占用率和电力消耗大幅下降; (5)自动化的软硬件资源部署,显著缩短系统交付时间 (6)资源全局共享,提高系统整体可用性,有效保证数据安全性; (7)集中化管理,系统易于维护。 3服务器虚拟化 3.1服务器虚拟化的概念 服务器虚拟化的概念并不统一,服务器虚拟化技术有两个方向,一种是把一 个物理的服务器虚拟成若干个独立的逻辑服务器,比如分区;另一个是把若干分 散的物理服务器虚拟为一个大的逻辑服务器,比如网格技术。本讲关注的服务器 虚拟化是通过虚拟化层的实现,使得多个虚拟机在同一物理机上独立并行运行。 每个虚拟机都有自己的一套虚拟硬件,可以在这些硬件中加载操作系统和应用程 序。不同的虚拟机加载的操作系统和应用程序可以是不同的。无论实际上采用了 什么样的物理硬件,操作系统都将它们视为一组一致、标准化的硬件 服务器虚拟化( Server virtualization)就是将虚拟化技术应用于服务器, 将一台服务器虚拟成若干虚拟服务器,在该服务器上可以支持多个操作系统同时 运行。可以简单地理解为将物理机、操作系统及其应用程序“打包”成一个文件 称之为虚拟机
传统 IT 系统基础架构普遍存在以下几个突出问题: (1)硬件资源利用率低下和资源紧张并存; (2)IT 资源部署周期长,难以快速满足业务需求; (3)机房空间、电力供应紧张。 2.2 虚拟基础架构模式 所谓虚拟基础架构,就是以一台或者多台服务器作为物理机资源,借助虚拟 化软件在物理机上构建多个虚拟机平台。借助虚拟机,用户可以在多台虚拟机之 间共享单台物理机的资源,资源在多个虚拟机和应用程序之间进行共享,从而实 现资源的高效利用。 虚拟基础架构包括以下组件: (1)裸机管理程序,可使每台物理服务器实现全面虚拟化; (2)虚拟基础架构服务(如资源管理和整合备份等),可在虚拟机之间使可 用资源达到最优配置; (3)若干自动化解决方案,通过提供特殊功能来优化特定 IT 流程,如资 源自动部署或灾难恢复等。 虚拟基础架构具有以下效益: (1)标准化软硬件配置和资源部署流程; (2)IT 资源管理集中化; (3)设备资源利用率显著提高; (4)响应“绿色行动计划”,空间占用率和电力消耗大幅下降; (5)自动化的软硬件资源部署,显著缩短系统交付时间; (6)资源全局共享,提高系统整体可用性,有效保证数据安全性; (7)集中化管理,系统易于维护。 3 服务器虚拟化 3.1 服务器虚拟化的概念 服务器虚拟化的概念并不统一,服务器虚拟化技术有两个方向,一种是把一 个物理的服务器虚拟成若干个独立的逻辑服务器,比如分区;另一个是把若干分 散的物理服务器虚拟为一个大的逻辑服务器,比如网格技术。本讲关注的服务器 虚拟化是通过虚拟化层的实现,使得多个虚拟机在同一物理机上独立并行运行。 每个虚拟机都有自己的一套虚拟硬件,可以在这些硬件中加载操作系统和应用程 序。不同的虚拟机加载的操作系统和应用程序可以是不同的。无论实际上采用了 什么样的物理硬件,操作系统都将它们视为一组一致、标准化的硬件。 服务器虚拟化(Server Virtualization)就是将虚拟化技术应用于服务器, 将一台服务器虚拟成若干虚拟服务器,在该服务器上可以支持多个操作系统同时 运行。可以简单地理解为将物理机、操作系统及其应用程序“打包”成一个文件, 称之为虚拟机
服务器虛拟技术为虛拟化了的服务器提供能够支持其运行的软硬件资源抽 象,包括虛拟BI0S、虛拟处理器、虚拟内存、虚拟设备与I/O,并可为虛拟机提 供良好的隔离性和安全性。 例如:在采用服务器虚拟化之前,三个不同的操作系统及应用分别运行在三 台独立的物理服务器上。在采用服务器虚拟化之后,这三个操作系统及应用运行 在三个独立的虚拟服务器上,而这三个虛拟服务器可以被一台物理服务器托管 服务器虚拟化实现了在单一物理服务器上运行多个虚拟服务器。 业务系统业务系统业务系统系[ = 3.2服务器虚拟化的层次 不同的分类角度决定了虚拟化技术不同的分类方法。根据虚拟化层实现方式 的不同,将服务器虚拟化分为寄居虚拟化和裸机虚拟化两种分类方法。 1、寄居虚拟化 寄居虚拟化的虛拟化层一般称为虚拟机监控器(WM)。ⅥM安装在已有的主 机操作系统(宿主操作系统)上。通过宿主操作系统来管理和访问各类资源(如 文件和各类I/0设备等)。这类虚拟化架构系统损耗比较大 客户 客户 客户 虚拟机 虚拟机 虛拟机 虚拟机管理器(VMM) 主机操作系统 物理机(底层硬件) 图7-1寄居虚拟化架构 就操作系统层的虚拟化而言,没有独立的 Hypervisor层。主机操作系统负 责在多个虚拟服务器之间分配硬件资源,并且让这些服务器彼此独立。一个明显 的区别是,如果使用操作系统层虛拟化,所有虛拟服务器必须运行同一操作系统
服务器虚拟技术为虚拟化了的服务器提供能够支持其运行的软硬件资源抽 象,包括虚拟 BIOS、虚拟处理器、虚拟内存、虚拟设备与 I/O,并可为虚拟机提 供良好的隔离性和安全性。 例如:在采用服务器虚拟化之前,三个不同的操作系统及应用分别运行在三 台独立的物理服务器上。在采用服务器虚拟化之后,这三个操作系统及应用运行 在三个独立的虚拟服务器上,而这三个虚拟服务器可以被一台物理服务器托管, 服务器虚拟化实现了在单一物理服务器上运行多个虚拟服务器。 3.2 服务器虚拟化的层次 不同的分类角度决定了虚拟化技术不同的分类方法。根据虚拟化层实现方式 的不同,将服务器虚拟化分为寄居虚拟化和裸机虚拟化两种分类方法。 1、寄居虚拟化 寄居虚拟化的虚拟化层一般称为虚拟机监控器(VMM)。VMM 安装在已有的主 机操作系统(宿主操作系统)上。通过宿主操作系统来管理和访问各类资源(如 文件和各类 I/O 设备等)。这类虚拟化架构系统损耗比较大。 就操作系统层的虚拟化而言,没有独立的 Hypervisor 层。主机操作系统负 责在多个虚拟服务器之间分配硬件资源,并且让这些服务器彼此独立。一个明显 的区别是,如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统
(不过每个实例有各自的应用程序和用户账户)。虽然操作系统层虚拟化的灵活 性比较差,但本机速度性能比较高。由于架构在所有虛拟服务器上,使用单一标 准的操作系统,管理起来比异构环境要容易 2、裸机虚拟化 裸机虚拟化架构不需要在服务器上先安装操作系统,而是直接将ⅥM安装在 服务器硬件设备中,本质上该架构中的M也可以认为是一个操作系统,一般称 为 Hypervisor,只不过是非常轻量级的操作系统(实现核心功能) 客户 客户 客户 虚拟机 虚拟机 虚拟机 Hypervisor 物理机(底层硬件) 图7-2裸机虚拟化架构 Hypervisor实现从虚拟资源到物理资源的映射。当虚拟机中的操作系统通 过特权指令访问关键系统资源时, Hypervisor将接管其请求,并进行相应的模 拟处理。为了使这种机制能够有效地运行,每条特权指令的执行都需要产生“自 陷”,以便 Hypervisor能够捕获该指令,从而使ⅥM能够模拟执行相应的指令, Hypervisor模拟特权指令的执行,并将处理结果返回给指定的客户虚拟系统 实现了不同虚拟机的运行上下文保护与切换,能够虚拟出多个硬件系统,保证了 各个客户虚拟系统的有效隔离。 由于x86体系结构的处理器并不是完全支持虚拟化的,某些x86特权指令在 低特权级上下文执行时,不能产生自陷,导致ⅥMM无法直接捕获特权指令。目前 针对这一问题的解决方案主要有基于动态指令转换或硬件辅助的完全虚拟化技 术和半虚拟化技术两种。 (1)完全虚拟化 完全虚拟化是对真实物理服务器的完整模拟,在上层操作系统看来,虛拟机 与物理平台没有区别,操作系统察觉不到是否运行在虚拟平台之上,也无须进行 任何更改。 完全虚拟化具有很好的兼容性,在服务器虚拟化中得到广泛应用。通过使用 Hypervisor这种中间层软件,在虚拟服务器和底层硬件之间建立一个抽象层。 Hypervisor可以捕获CPU指令,为指令访问硬件控制器和外设充当中介。 完全虛拟化技术几乎能让任何一款操作系统不用改动就能安装到虚拟服务 器上,而它们不知道自己运行在虚拟化环境下。但是性能方面不如裸机,毕竟 Hypervisor需要占用一些资源,给处理器带来额外开销, 在完全虚拟化的环境下, Hypervisor运行在裸硬件上,充当主机操作系统, 而由 Hypervisor管理的虚拟服务器运行客户端操作系统( Guest os)
(不过每个实例有各自的应用程序和用户账户)。虽然操作系统层虚拟化的灵活 性比较差,但本机速度性能比较高。由于架构在所有虚拟服务器上,使用单一标 准的操作系统,管理起来比异构环境要容易。 2、裸机虚拟化 裸机虚拟化架构不需要在服务器上先安装操作系统,而是直接将 VMM 安装在 服务器硬件设备中,本质上该架构中的 VMM 也可以认为是一个操作系统,一般称 为 Hypervisor,只不过是非常轻量级的操作系统(实现核心功能)。 Hypervisor 实现从虚拟资源到物理资源的映射。当虚拟机中的操作系统通 过特权指令访问关键系统资源时,Hypervisor 将接管其请求,并进行相应的模 拟处理。为了使这种机制能够有效地运行,每条特权指令的执行都需要产生“自 陷”,以便 Hypervisor 能够捕获该指令,从而使 VMM 能够模拟执行相应的指令。 Hypervisor 模拟特权指令的执行,并将处理结果返回给指定的客户虚拟系统, 实现了不同虚拟机的运行上下文保护与切换,能够虚拟出多个硬件系统,保证了 各个客户虚拟系统的有效隔离。 由于 x86 体系结构的处理器并不是完全支持虚拟化的,某些 x86 特权指令在 低特权级上下文执行时,不能产生自陷,导致 VMM 无法直接捕获特权指令。目前 针对这一问题的解决方案主要有基于动态指令转换或硬件辅助的完全虚拟化技 术和半虚拟化技术两种。 (1)完全虚拟化 完全虚拟化是对真实物理服务器的完整模拟,在上层操作系统看来,虚拟机 与物理平台没有区别,操作系统察觉不到是否运行在虚拟平台之上,也无须进行 任何更改。 完全虚拟化具有很好的兼容性,在服务器虚拟化中得到广泛应用。通过使用 Hypervisor 这种中间层软件,在虚拟服务器和底层硬件之间建立一个抽象层。 Hypervisor 可以捕获 CPU 指令,为指令访问硬件控制器和外设充当中介。 完全虚拟化技术几乎能让任何一款操作系统不用改动就能安装到虚拟服务 器上,而它们不知道自己运行在虚拟化环境下。但是性能方面不如裸机,毕竟 Hypervisor 需要占用一些资源,给处理器带来额外开销。 在完全虚拟化的环境下,Hypervisor 运行在裸硬件上,充当主机操作系统, 而由 Hypervisor 管理的虚拟服务器运行客户端操作系统(Guest OS)
A Apps Guest OS Guest O Mgmt Hypervisor(VMM) Hardware (2)半虚拟化 半虛拟化技术有时也被称为准虚拟化,其通过修改操作系统代码使特权指令 产生自陷。半虚拟化技术最初由 Denali和Xen项目在x86体系架构上实现。通 过对客户操作系统的内核进行适当的修改,使其能够在ⅥM的管理下尽可能地直 接访问本地硬件平台。 半虛拟化技术通过改动客户操作系统,让它以为自己运行在虚拟环境下,能 够与 Hypervisor协同工作,降低了由于虚拟化而产生的系统性能损失 半虚拟化技术的优点是性能高,经过半虛拟化处理的服务器可与 Hypervisor协同工作,其响应能力几乎不亚于未经过虚拟化处理的服务器。它 的客户操作系统( Guest0s)集成了虚拟化方面的代码。该方法无需重新编译或引 起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。 Modified Modified Guest os Guest OS gmt Hypervisor(VMM) Hardware 3.3服务器虚拟化的底层实现 1、CPU虚拟化 CPU虚拟化技术把物理CPU抽象成虚拟CPU,任意时刻,一个物理CPU只能 运行一个虚拟CPU指令。每个客户操作系统可以使用一个或多个虚拟CPU,在各 个操作系统之间,虛拟CPU的运行相互隔离且互不影响。 CPU虚拟化需要解决正确运行和调度两个关键问题 ①虛拟CPU的正确运行是要保证虛拟机指令正确运行,即操作系统要在虚拟 化环境中执行特权指令功能,而且各个虛拟机之间不能相互影响。现有的实现技 术包括模拟执行和监控执行。 ②调度问题是指WM决定当前哪个虚拟CPU在物理CPU上运行,要保证隔离 性、公平性和性能。 2、内存虚拟化
(2)半虚拟化 半虚拟化技术有时也被称为准虚拟化,其通过修改操作系统代码使特权指令 产生自陷。半虚拟化技术最初由 Denali 和 Xen 项目在 x86 体系架构上实现。通 过对客户操作系统的内核进行适当的修改,使其能够在 VMM 的管理下尽可能地直 接访问本地硬件平台。 半虚拟化技术通过改动客户操作系统,让它以为自己运行在虚拟环境下,能 够与 Hypervisor 协同工作,降低了由于虚拟化而产生的系统性能损失。 半虚拟化技术的优点是性能高,经过半 虚 拟 化 处 理 的 服 务 器 可 与 Hypervisor 协同工作,其响应能力几乎不亚于未经过虚拟化处理的服务器。它 的客户操作系统(Guest OS)集成了虚拟化方面的代码。该方法无需重新编译或引 起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。 3.3 服务器虚拟化的底层实现 1、CPU 虚拟化 CPU 虚拟化技术把物理 CPU 抽象成虚拟 CPU,任意时刻,一个物理 CPU 只能 运行一个虚拟 CPU 指令。每个客户操作系统可以使用一个或多个虚拟 CPU,在各 个操作系统之间,虚拟 CPU 的运行相互隔离且互不影响。 CPU 虚拟化需要解决正确运行和调度两个关键问题。 ①虚拟 CPU 的正确运行是要保证虚拟机指令正确运行,即操作系统要在虚拟 化环境中执行特权指令功能,而且各个虚拟机之间不能相互影响。现有的实现技 术包括模拟执行和监控执行。 ②调度问题是指 VMM 决定当前哪个虚拟 CPU 在物理 CPU 上运行,要保证隔离 性、公平性和性能。 2、内存虚拟化
内存虛拟化技术把物理内存统一管理,包装成多个虚拟的物理内存提供给若 干虚拟机使用,每个虚拟机拥有各自独立的内存空间。内存虚拟化也是虚拟机管 理器的主要功能之 内存虚拟化的实现思路主要是分块共享,内存共享的核心思想是内存页面的 写时复制( Copy on Write)。虚拟机管理器完成并维护物理机内存和虚拟机所使 用的内存的映射关系。与真实的物理机相比,虚拟内存的管理包括3种地址:机 器地址、物理地址和虚拟地址。一般来说,虚拟机与虛拟机、虛拟机与虚拟机管 理器之间的内存要相互隔离。 3、I/0设备虚拟化 I/0设备的异构性和多样性,导致I/0设备的虚拟化相较于CP和内存的虚 拟化要困难和复杂。I/0设备虚拟化技术把真实的设备统一管理起来,包装成多 个虚拟设备给若干个虛拟机使用,响应每个虛拟机的设备访问请求和I/O请求。 I/O设备虚拟化同样是由WMM进行管理的,主要有全虚拟化、半虚拟化和软 件模拟三种实现思路。目前主流的设备与I/0虚拟化大多是通过软件方式来实现 3.4虚拟机迁移 虛拟机迁移是将虚拟机实例从源宿主机迁移到目标宿主机,并且在目标宿主 机上能够将虚拟机运行状态恢复到其在迁移之前相同的状态,以便能够继续完成 应用程序的任务。 Hypervisor Hypervisor 硬件 硬件 服务器1 服务器2 图7-3虚拟机迁移示意图 虛拟机迁移对云计算具有重大的意义,可以保证云端的负载均衡,增强系统 错误容忍度,当发生故障时,也能有效恢复。从是否有计划的角度看,虛拟机迁 移包括有计划迁移、针对突发事件的迁移。从虛拟机迁移的源与目的地角度来看, 虛拟机迁移包括物理机到虚拟机的迁移( Physical-to- Virtual,P2V)、虚拟机 到虚拟机的迁移( Virtual-to- Virtual,V2V)、虚拟机到物理机的迁移( Virtua1 to- Physical,V2P)。 1、虚拟机动态迁移
内存虚拟化技术把物理内存统一管理,包装成多个虚拟的物理内存提供给若 干虚拟机使用,每个虚拟机拥有各自独立的内存空间。内存虚拟化也是虚拟机管 理器的主要功能之一。 内存虚拟化的实现思路主要是分块共享,内存共享的核心思想是内存页面的 写时复制(Copy on Write)。虚拟机管理器完成并维护物理机内存和虚拟机所使 用的内存的映射关系。与真实的物理机相比,虚拟内存的管理包括 3 种地址:机 器地址、物理地址和虚拟地址。一般来说,虚拟机与虚拟机、虚拟机与虚拟机管 理器之间的内存要相互隔离。 3、I/O 设备虚拟化 I/O 设备的异构性和多样性,导致 I/O 设备的虚拟化相较于 CPU 和内存的虚 拟化要困难和复杂。I/O 设备虚拟化技术把真实的设备统一管理起来,包装成多 个虚拟设备给若干个虚拟机使用,响应每个虚拟机的设备访问请求和 I/O 请求。 I/O 设备虚拟化同样是由 VMM 进行管理的,主要有全虚拟化、半虚拟化和软 件模拟三种实现思路。目前主流的设备与 I/O 虚拟化大多是通过软件方式来实现 的。 3.4 虚拟机迁移 虚拟机迁移是将虚拟机实例从源宿主机迁移到目标宿主机,并且在目标宿主 机上能够将虚拟机运行状态恢复到其在迁移之前相同的状态,以便能够继续完成 应用程序的任务。 虚拟机迁移对云计算具有重大的意义,可以保证云端的负载均衡,增强系统 错误容忍度,当发生故障时,也能有效恢复。从是否有计划的角度看,虚拟机迁 移包括有计划迁移、针对突发事件的迁移。从虚拟机迁移的源与目的地角度来看, 虚拟机迁移包括物理机到虚拟机的迁移(Physical-to-Virtual,P2V)、虚拟机 到虚拟机的迁移(Virtual-to-Virtual,V2V)、虚拟机到物理机的迁移(Virtualto-Physical,V2P)。 1、虚拟机动态迁移
在云计算中,虚拟机到虚拟机的迁移是关注的重点。实时迁移(Live Migration),就是保持虚拟机运行的同时,把它从一个计算机迁移到另一个计算 机,并在目的计算机恢复运行的技术 动态实时迁移对云计算来讲至关重要,这是因为,第一,云计算中心的物理 服务器负载经常处于动态变化中,当一台物理服务器负载过大时,比如,某时出 现一个用户请求高峰期,若此刻不可能提供额外的物理服务器,管理员可以将其 上面的虚拟机迁移到其他服务器,达到负载平衡;第二,云计算中心的物理服务 器有时候需要定期进行升级维护,当升级维护服务器时,管理员可以将其上面的 虚拟机迁移到其他服务器,等升级维护完成之后,再把虛拟机迁移回来。 虚拟机的迁移包括它的完整的状态和资源的迁移,为了保证迁移后的虚拟机 能够在新的计算机上恢复且继续运行,必须要向目的计算机传送足够多的信息, 如磁盘、内存、CPU状态、I/0设备等。其中,内存的迁移最有难度和挑战性, 因为内存中的信息必不可少而且数据量比较大,CPU状态和I/0设备虽然也很重 要,但是它们只占迁移总数据量很少的一部分,而磁盘的迁移最为简单,在局域 网内可以通过NFS( Network File System)的方式共享,而非真正迁移。 2、迁移的步骤 虛拟机的迁移是通过源计算机和目的计算机之间的交互完成的,若把迁移的 发起者即源计算机记为主机A( Hosta),目的计算机记为主机B( HostB),迁移 的一般过程可以分为以下6个步骤。 (1)步骤1:预迁移(Pre- Migration)。 主机A打算迁移其上的一个虚拟机WM,首先选择一个目的计算机作为ⅥM的 新主机。 (2)步骤2:预定资源( Reservation)。 主机A向主机B发起迁移请求,先确认B是否有必需的资源,若有,则预定 这些资源;若没有,ⅧM仍在主机A中运行,可以继续选择其他计算机作为目的 计算机。 (3)步骤3:预复制( InterativePre-Copy)。 在这一阶段ⅥM仍然运行,主机A以迭代的方式将ⅥM的内存页复制到主机B 上。在第一轮迭代中,所有的页都要从A传送到B,以后的迭代只复制前一轮传 送过程中被修改过的页面。 (4)步骤4:停机复制(Stop-and-Copy)。 停止主机A上的M,把它的网络连接重定向到主机B。CP状态和前一轮传 送过程中修改过的页都在这个步骤被传送。最后,主机A和主机B上有一致的WM 映象 (5)步骤5:提交( Commi tment) 主机B通知主机A已经成功收到了ⅧM的映像,主机A对这个消息进行确认 然后主机A可以抛弃或销毁其上的VM
在云计算中,虚拟机到虚拟机的迁移是关注的重点。实时迁移(Live Migration),就是保持虚拟机运行的同时,把它从一个计算机迁移到另一个计算 机,并在目的计算机恢复运行的技术。 动态实时迁移对云计算来讲至关重要,这是因为,第一,云计算中心的物理 服务器负载经常处于动态变化中,当一台物理服务器负载过大时,比如,某时出 现一个用户请求高峰期,若此刻不可能提供额外的物理服务器,管理员可以将其 上面的虚拟机迁移到其他服务器,达到负载平衡;第二,云计算中心的物理服务 器有时候需要定期进行升级维护,当升级维护服务器时,管理员可以将其上面的 虚拟机迁移到其他服务器,等升级维护完成之后,再把虚拟机迁移回来。 虚拟机的迁移包括它的完整的状态和资源的迁移,为了保证迁移后的虚拟机 能够在新的计算机上恢复且继续运行,必须要向目的计算机传送足够多的信息, 如磁盘、内存、CPU 状态、I/O 设备等。其中,内存的迁移最有难度和挑战性, 因为内存中的信息必不可少而且数据量比较大,CPU 状态和 I/O 设备虽然也很重 要,但是它们只占迁移总数据量很少的一部分,而磁盘的迁移最为简单,在局域 网内可以通过 NFS(Network File System)的方式共享,而非真正迁移。 2、迁移的步骤 虚拟机的迁移是通过源计算机和目的计算机之间的交互完成的,若把迁移的 发起者即源计算机记为主机 A(HostA),目的计算机记为主机 B(HostB),迁移 的一般过程可以分为以下 6 个步骤。 (1)步骤 1:预迁移(Pre-Migration)。 主机 A 打算迁移其上的一个虚拟机 VM,首先选择一个目的计算机作为 VM 的 新主机。 (2)步骤 2:预定资源(Reservation)。 主机 A 向主机 B 发起迁移请求,先确认 B 是否有必需的资源,若有,则预定 这些资源;若没有,VM 仍在主机 A 中运行,可以继续选择其他计算机作为目的 计算机。 (3)步骤 3:预复制(InterativePre-Copy)。 在这一阶段 VM 仍然运行,主机 A 以迭代的方式将 VM 的内存页复制到主机 B 上。在第一轮迭代中,所有的页都要从 A 传送到 B,以后的迭代只复制前一轮传 送过程中被修改过的页面。 (4)步骤 4:停机复制(Stop-and-Copy)。 停止主机 A 上的 VM,把它的网络连接重定向到主机 B。CPU 状态和前一轮传 送过程中修改过的页都在这个步骤被传送。最后,主机 A 和主机 B 上有一致的 VM 映象。 (5)步骤 5:提交(Commitment)。 主机 B 通知主机 A 已经成功收到了 VM 的映像,主机 A 对这个消息进行确认, 然后主机 A 可以抛弃或销毁其上的 VM