版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 隔离运行模型本章提出了一种新的基于虚拟机技术的隔离运行模型SVEE,该模型满足满足操作系统隔离、应用透明、计算环境重现、隔离程序执行效果跟踪与操作系统信息重构等五个应用约束,平衡了安全隔离性、功能完整性、性能适应性和行为可监控性。同时,本章给出了该模型的形式化安全性分析和度量,通过理论分析阐明了 SVEE 能够满足 Bell-LaPadula 机密性模型和 Biba 完整性模型。并进一步论证了在此模型下,被保护的宿主环境的容侵能力也将得到有效提升。基于此模型,本章构造出以本地虚拟化技术为核心的满足 SVEE 隔离运行模型的体系结构,该体系结构独立于操作系统实现,具有很好的可移植性。通过
2、对现有虚拟机模型的详细分析,指出 Type II 虚拟机模型能够最有效地在个人计算平台下支持这五个约束条件。本章工作是后继章节所做工作的理论基础。3.1 隔离运行模型对于隔离运行非非可信软件的的运行环境而而言,为了实实现操作系统统与应用程序序透明的目标标,同时能够够重现已有的的软件运行环环境并支持操操作系统语义义信息的重构构,即在保证证安全隔离性性的前提下提提升隔离运行行环境的功能能完整性、性性能适应性与与行为可监控控性,该环境境必须满足以以下约束条件件。约束 1:操作作系统隔离:非可信软件件必须运行在在一个与宿主主操作系统隔隔离的虚拟计计算机系统中中,这是抵御御特权恶意代代码攻击、确确保安全
3、隔离离性的必要条条件。约束 2:应用用程序与操作作系统透明:现有操作系系统、应用程程序和将被隔隔离的非可信信软件均不需需作任何修改改即可直接布布署该隔离机机制,这一点点在个人计算算平台下尤其其重要。此约约束包含四个个子约束:约束 2A:无无需修改现有有操作系统与与应用程序及及其将被隔离离的非可信软软件的源代码码,因为通常常个人计算平平台上流行的的应用程序与与操作系统(如如 Winddows)都都未开放源代代码。约束 2B:不不能限制非可可信软件在隔隔离运行环境境内访问的资资源与执行的的特权操作,这这是保证隔离离运行环境的的功能完整性性的必要条件件。约束 2C:尽尽可能地将隔隔离机制对可可信代码
4、运行行环境造成的的性能影响最最小化,即在在确保安全隔隔离性的同时时兼顾系统的的可用性。约束 2D:无无需重新安装装现有操作系系统。个人用用户中绝大部部分不是计算算机专业技术术人员,所以以个人计算平平台上往往都都预装有操作作系统,所以以在布署隔离离运行技术时时必须保证能能够继续使用用原有操作系系统。约束 3:可配配置的计算环环境重现:由由于非可信软软件的正常执执行与执行效效果通常依赖赖于计算环境境,尤其是文文件系统内容容与操作系统统配置等,所所以在隔离运运行环境内重重现宿主操作作系统的计算算环境既是保保证隔离运行行环境的功能能完整性的要要求,也是减减少布署开销销的必要条件件。本约束可可细化为:约
5、束 3A:计计算环境的重重现不应通过过复制整个计计算机的软硬硬件系统的来来实现,这样样的布署开销销通常不能被被个人用户接接受。约束 3B:为为了提高系统统机密性,被被导出到隔离离运行环境中中的宿主计算算环境资源应应该是可配置置的,被隔离离软件只能访访问这些资源源,涉及敏感感信息的数据据不应在隔离离运行环境中中重现。这是是确保安全隔隔离性的必要要条件。约束 3C:尽尽可能地使隔隔离运行环境境的性能接近近宿主环境,这这是提升性能能适应性的要要求。约束 4:隔离离程序执行效效果的跟踪:隔离运行环环境必须能够够跟踪和记录录被隔离软件件对数据的修修改操作,从从而为分析程程序行为与提提交相应程序序的执行效
6、果果到宿主环境境提供依据,这这也是提高系系统可用性与与隔离运行环环境的行为可可监控性的关关键。约束 5:支持持操作系统语语义信息重构构:这里的语语义信息是指指操作系统抽抽象层的资源源的信息,如如进程、线程程、文件、用用户等。用户户或相关工具具程序只有借借助隔离运行行环境的这些些信息才能精精确分析隔离离运行环境内内应用程序和和操作系统的的行为,进而而提升隔离运运行环境的行行为可监控性性。(a) 基于 Type I VMMM 的 Naative 隔离运行模模型 (b)基于 Tyype III VMM 的 Hossted 隔隔离运行模型型图 3.1 SSVEE 的的基于不同 VMM 的的两种可选隔隔
7、离运行模型型为了满足约束 1,SVEEE 必须利利用虚拟机监监视器(Viirtuall Machhine MMonitoor,VMMM)来创建非非可信软件的的运行容器虚拟机。只只有这种基于于硬件抽象层层的虚拟机技技术才能实现现操作系统的的隔离。按照照 Golddberg 的定义,VVMM 是能能够为计算机机系统创建高高效、隔离的的副本的软件件。这些副本本即为虚拟机机(Virttual MMachinne,VM),在在虚拟机内处处理器指令集集的一个子集集能够直接在在物理处理器器上执行。GGoldbeerg 定义义了两种 VVMM:Tyype I VMM 和和Type II VMMM。Typpe
8、I VVMM 直接接运行在计算算机硬件系统统上,负责调调度和分配系系统硬件资源源,可以将其其理解为一个个实现了虚拟拟化机制的操操作系统。而而 Typee II VVMM则以一一个应用程序序的形式运行行在已有的传传统操作系统统之上,而这这个实际控制制系统资源的的操作系统被被称为宿主操操作系统(HHost OOS),运行行在 Typpe II 虚拟机中的的操作系统则则被称为客户户操作系统(GGuest OS)。基基于这两种不不同的虚拟机机监视器,SSVEE就有有了相应的两两种隔离运行行模型(如图图 3.1 所示):基基于 Typpe I VVMM 的 Nativve隔离运行行模型和基于于 Type
9、e II VVMM 的 Hosteed 隔离运运行模型。对于约束 2AA,作为硬件件抽象层的虚虚拟机,Naative 隔离运行模模型中的 TType IIVMM 与与 Hostted 隔离离运行模型中中的 Typpe II VMM 均均无需修改已已有应用程序序和将被隔离离的非可信软软件的源代码码。Typee II VVMM 的实实现不需要修修改宿主操作作系统,而 Type I VMMM 是否需要要修改操作系系统则依赖于于其实现技术术,如基于动动态指令转换换技术则无需需修改(如 VMwarre ESXX Servver),基基于半虚拟化化技术(Paara-Viirtuallizatiion)且没
10、没有硬件虚拟拟化技术的支支持则需要修修改运行在 VMM 之之上的操作系系统源代码(如如 Xen)。由于 Typee I VMMM 与 TType III VMMM 这两种虚虚拟机技术均均对上层应用用提供了完整整的虚拟化计计算机硬件平平台,VMMM 之上运行行的软件(操操作系统)就就像在真实的的物理计算机机系统上运行行一样,无需需限制代码访访问的资源与与执行的特权权操作,因此此这两种隔离离运行模型均均能满足约束束 2B。约束 2C 强强调的是保证证可信代码运运行环境的性性能。如图 3.1 (a)所示,在在 Natiive隔离运运行模型中,所所有操作系统统都运行于虚虚拟机之上,所所以不可避免免地导
11、致可信信代码运行环环境性能的下下降。而基于于 Typee II VVMM 的 Hosteed 隔离运运行模型的可可信代码运行行环境即为传传统的操作系系统,高效地地直接运行于于硬件系统之之上。因此,在在尽可能减少少影响可信代代码运行性能能这一点上,基基于 Typpe II VMM 的的 Hostted 隔离离运行模型优优于 Nattive 隔隔离运行模型型。而对于约束 22D,在 NNativee 隔离运行行模型中,需需要用 VMMM 替换原原有的操作系系统,这往往往对于个人用用户来说是无无法接受的,而而即使用户接接受,要替换换现在所有的的个人计算平平台上的操作作系统也是一一个非常漫长长的过程。
12、与与此相反,HHostedd 隔离运行行模型则可以以与已有操作作系统共存。约束 3C 关关注的是隔离离运行环境的的性能可适应应性。与 TType II VMM 相比,Tyype III 虚拟机中中的虚拟 II/O 设备备性能不及 Type I 虚拟机机。但是随着着硬件虚拟化化技术的普及及、应用与提提高,以及各各种虚拟 II/O 设备备优化技术研研究的不断发发展,这种性性能差距将逐逐渐缩小。约束 3(3AA 和 3BB)、约束 4 和约束束 5 均与与具体的虚拟拟机监视器模模型无关,而而对于这三个个约束,Naative 隔离运行模模型和 Hoosted 隔离运行模模型均需要添添加额外的机机制才能
13、支持持,这也是 3.2 节节(SVEEE 体系结构构)需要解决决的问题。此外,从软件开开发的角度来来看,Nattive 隔隔离运行模型型中的 Tyype I VMM 实实际上是将传传统操作系统统的硬件资源源管理功能下下移到 VMMM 中。但但在个人计算算平台下这种种机制有一个个明显的不足足:个人计算算平台上硬件件设备的多样样化将会极大大地增加Tyype I VMM 开开发的复杂性性。个人计算算平台开放的的体系结构导导致计算机系系统有类型繁繁多的硬件设设备,而直接接运行在硬件件系统之上 Type I VMMM 则需要管管理这些设备备,因此为它它们编写相应应的驱动程序序将是工程浩浩大的工作。与与此
14、不同,TType III VMMM 可以直接接利用操作系系统提供的设设备抽象接口口,极大简化化 VMM 的开发,从从而可以有效效提高 VMMM 的稳定定性。综上所述,除了了约束 2CC 和约束 2D,这两两种隔离运行行模型均能够够满足其他约约束。但是,由由于 SVEEE 主要针针对的是个人人计算平台,而而 Hostted 隔离离运行模型在在个人计算平平台下具有显显著优势,因因此 SVEEE 采用了了基于 Tyype III VMM 的 Hossted 隔隔离运行模型型。在这种模模型下,SVVEE VMMM 以 TType III VMMM 的形式运运行在宿主操操作系统之上上,并负责创创建本地化
15、启启动的 SVVEE 虚拟拟机作为执行行非可信软件件的运行环境境。运行在本本地化启动的的 SVEEE 虚拟机之之上的客户操操作系统是宿宿主操作系统统的一个副本本,因此非可可信软件在宿宿主操作系统统上的行为得得以精确重现现,同时将其其执行效果同同宿主运行环环境彻底隔离离。3.2 系统体体系结构为了满足前文中中描述的五个个约束,SVVEE 引入入了本地虚拟拟化技术(LLocal Virtuualizaation Technnologyy)以实现可可配置的计算算环境重现。SVEE 基于于 Typee II VVMM 的 Hosteed 体系结结构如图 33.2 所示示,SVEEE 由五个核核心组件构
16、成成:SVEEE 虚拟机监监视器(SVVEE VMMM)、基于于卷快照(VVolumee Snappshot)的的虚拟机简单单磁盘(Viirtuall Simpple Diisk)、操操作系统动态态迁移管理器器(OS DDynamiic Miggratioon Mannager)、修修改跟踪管理理器(Chaange TTrackiing Maanagerr)和隐式操操作系统信息息重构组件(IImpliccit OSS Infoormatiion Reeconsttructoor)。如 SVEE 隔离运行模模型所述,SSVEE VVMM 需要要以 Typpe II VMM 的的形式实现,即即在宿
17、主操作作系统之上运运行。SVEEE VMMM 负责创建建非可信软件件的隔离运行行环境SVVEE 虚拟拟机(SVEEE VM)。借助基于卷快照照的虚拟机简简单磁盘和操操作系统动态态迁移管理器器,SVEEE 实现了本本地虚拟化技技术,即 SSVEE 虚虚拟机中无需需重新安装操操作系统(这这是现有虚拟拟机软件的运运行模式),而而是直接从宿宿主操作系统统启动,启动动后的操作系系统即为“本本地启动操作作系统”(LLocal-Booteed OS)。图 3.2 SSVEE 体体系结构修改跟踪管理器器则记录 LLocal-Booteed OS 和宿主操作作系统(Hoost OSS)内的资源源(如文件、注注册
18、表等)变变化信息,为为进一步分析析被隔离软件件的行为或之之后将Loccal-Boooted OS 的数数据变化合并并到宿主操作作系统提供支支持。隐式操作系统信信息重构组件件不依赖于操操作系统提供供的接口,能能够利用硬件件层的数据(如如处理器寄存存器信息、MMMU、磁盘盘信息等)重重构出具有应应用层语义的的客户操作系系统信息。3.2.1 虚虚拟机监视器器如前所述,SVVEE 虚拟拟机即为采用用本地虚拟化化技术启动的的硬件抽象层层虚拟机,被被隔离的非可可信软件就在在由 SVEEE 虚拟机机启动的 LLocal-Booteed OS 中运行,而而可信程序则则直接在宿主主操作系统上上运行。为了满足不能
19、修修改操作系统统源代码的约约束(约束 2A),SSVEE VVMM 不能能采用半虚拟拟机技术,而而只能采用与与 VMwaare 虚拟拟机(包括 VMwarre Worrkstattion 和和VMwarre ESXX Servver)类似似的动态指令令转换技术。由于 Inteel Penntium 处理器(xx86 体系系结构)在目目前的个人计计算平台上最最为流行,因因此SVEEE VMM需需要重点解决决的就是如何何在Inteel Penntium处处理器上实现现基于动态指指令转换技术术的 Typpe II VMM。GGoldbeerg分析并并提出了适合合虚拟化的第第三代硬件体体系结构应该该满
20、足的四点点约束:1. 具有两个个以上的处理理器操作模式式。2. 非特权的的程序能够通通过一种方法法来调用特权权级的系统例例程。3. 具有内存存重定位或保保护机制,如如分段机制或或分页机制。4. 具有异步步的中断机制制。John Sccott RRobin 等人则提出出了关于处理理器支持 TType II VMM 和 Typpe II VMM需满满足的约束。由于 SVVEE VMMM 是以 Type II VMMM 的形式式实现的,因因此本文只讨讨论处理器支支持 Typpe II VMM 需需满足的约束束条件。约束 1(R11) 无论在在特权模式还还是非特权模模式下,非特特权指令的执执行语义都必
21、必须相同。例例如,处理器器不能通过在在指令代码内内添加特殊的的比特位来标标识处理器当当前的特权级级(Currrent PPrivillege LLevel,CCPL)。这这个约束实际际上是对 GGoldbeerg 提出出的约束 11 的一个扩扩展。约束 2(R22)处理器必必须提供一种种保护机制或或地址转换机机制,能够对对物理计算机机系统和虚拟拟机之间进行行隔离和保护护。这一约束束与 Golldbergg 提出的约约束 3 一一致。约束 3(R33)当虚拟机机试图执行敏敏感指令(SSensittive IInstruuctionn)时,处理理器必须提供供一种机制使使得虚拟机监监视器能够自自动得
22、到通知知,以便于其其模拟出该指指令的执行语语义。按照 Johnn Scottt Robbin 等的的定义,敏感感指令就是指指所有需要操操作虚拟机监监视器或宿主主操作系统状状态的指令,主主要包括如下下四类指令:1. 读写当前前虚拟机和物物理计算机系系统状态的指指令;2. 读写敏感感寄存器和内内存的指令,例例如读写时钟钟寄存器或中中断寄存器的的指令;3. 操作处理理器提供的保保护机制或是是地址转换机机制的状态的的指令;4. 所有 II/O 指令令。x86 处理器器满足 Gooldberrg 提出的的四个约束:具有从 00-3 四种种特权级(PPrivillege LLevel),操操作系统内核核运
23、行在 RRing 00 级,而应应用程序则运运行在最低特特权级上RRing 33 级;提供供了调用门(CCall GGate)机机制,用以支支持低特权级级的程序调用用高特权级的的代码;提供供了段/页式式内存管理机机制,以支持持内存重定位位和保护;提提供了中断(IInterrrupt)和和异常(Exxceptiion)两种种机制使得 I/O 设设备可以与处处理器异步通通信。图 3.3 处处理器指令分分类同理,Inteel x866 处理器也也满足 Joohn Sccott RRobin 约束 R11 和 R22,但是它依依然不支持虚虚拟化,这是是因为它不能能满足约束 R3。如图 3.3 所示,从
24、处处理器虚拟化化和处理器特特权级两个角角度审视指令令集,可将其其分为四类:特权非敏感感指令、非特特权非敏感指指令、特权敏敏感指令和非非特权敏感指指令。由于前前两种均为非非敏感指令,所所以可以在物物理处理器上上直接执行,无无需虚拟机监监视器做特殊殊处理。但是是,正如处理理器约束所规规定的,虚拟拟机监视器必必须解释执行行所有敏感指指令的语义而而不能在物理理处理器上直直接执行。对对于 x866 处理器而而言,所有特特权敏感指令令的执行均会会产生中断或或自陷(Trrap),因因此虚拟机监监视器可以通通过设置相应应的中断/自自陷响应函数数获得通知进进而进行指令令模拟。而使使得 x866 处理器不不支持虚
25、拟化化的就是第四四类指令非非特权敏感指指令,与其它它支持虚拟化化的处理器不不同,x866 处理器的的指令集中存存在非特权敏敏感指令,而而这类执行的的执行并不产产生任何中断断或自陷,从从而虚拟机监监视器无法获获取相应的通通知信息。John Sccott RRobin 等已经分析析了 x866 处理器的的所有指令,指指出其中包含含了 17条条非特权敏感感指令,即 SGDT、SSIDT、SSLDT、SSMSW、PPUSHF(PPUSHFDD)、POPPF(POPPFD)、LLAR、LSSL、VERRR、VERRW、POPP、PUSHH、CALLL, JMPP、INT n、RETT 和 STTR。综上
26、所述,在 x86 处处理器上实现现 SVEEE VMM(TType III VMMM)的关键就就是如何模拟拟执行敏感指指令,并且感感知非特权敏敏感指令的执执行。目前有有三种方法可可以处理非特特权敏感指令令:第一种技技术是Dennali 和和 Xen 的半虚拟化化技术,但是是这种技术需需要修改操作作系统源代码码,不能满足足 SVEEE 隔离运行行模型的约束束 2A;第第二种技术是是 Inteel 和 AAMD 提出出的硬件虚拟拟化技术,该该技术通过修修改处理器的的实现使得处处理器在虚拟拟化状态下执执行非特权敏敏感指令时能能够产生事件件通知虚拟机机监视器;但但是考虑支持持硬件虚拟化化技术的处理理器
27、尚未普及及,因此 SSVEE VVMM 采取取了第三种技技术,即“动动态指令转换换技术”,使使得SVEEE VMM 通过运行时时指令转换将将原本不产生生自陷的非特特权敏感指令令替换为具有有通知 VMMM 功能的的指令。3.2.2 基基于卷快照的的虚拟简单磁磁盘对于本地虚拟化化技术而言,关关键问题是如如何与宿主操操作系统共享享已安装在系系统卷上的操操作系统映像像。因为 SSVEE 虚虚拟机需要访访问系统卷以以启动 Loocal-BBootedd OS,而而此时宿主操操作系统也在在修改系统卷卷,前者对数数据的修改并并没有使用宿宿主操作系统统提供的访问问接口,后者者的修改信息息也无法及时时被 SVE
28、EE 虚拟机机内的文件系系统感知,这这就造成了文文件系统数据据与磁盘数据据的冲突,操操作系统关键键文件的不一一致将会导致致系统的崩溃溃。为了解决这个问问题,本文提提出了基于卷卷快照的虚拟拟简单磁盘(VVirtuaal Simmple DDisk)技技术。卷快照照是在其创建建时刻它所对对应的原始卷卷的一致性副副本,它提供供了与文件系系统标准卷相相同的访问接接口。而虚拟拟简单磁盘则则是卷快照(必必须包括系统统卷的快照)与与虚拟分区表表的集合,它它是将卷快照照以存储设备备的形式导出出到 SVEEE 虚拟机机的实现方式式。此外,在在将卷快照导导出到 SVVEE 虚拟拟机前,用户户可以安全删删除不允许在
29、在 Locaal-Boooted OOS 中访问问的目录、文文件等敏感数数据。从实现的角度,创创建整个磁盘盘的快照比导导出卷快照的的方式更加直直观。但是对对于 SVEEE 来说,组组合卷快照的的虚拟简单磁磁盘主要有如如下三个优势势:便于配置导出的的卷:如直接接使用磁盘快快照,则该磁磁盘内所有的的卷均会被导导出到SVEEE 虚拟机机中,这往往往违背了用户户的安全性和和可配置性的的需求。而通通过配置虚拟拟简单磁盘,只只有用户明确确需要导出的的卷才能在 SVEE 虚拟机中访访问;卷格式透明:目目前广泛应用用的操作系统统均支持多种种卷格式,如如单分区卷与与多分区卷等等,多分区卷卷包括镜像卷卷(Mirr
30、ror Voolume)、RRAID-00 卷和 RRAID-55 卷等。所所以如果直接接导出磁盘快快照,那么如如该磁盘内含含有多分区卷卷,则也必须须导出该卷依依赖的所有磁磁盘。但是以以卷快照为导导出的基本单单位则避免了了这个问题。便于操作快照数数据:卷是文文件系统加载载的基本单位位。通过加载载卷快照,用用户可以方便便直观地访问问快照数据。3.2.3 操操作系统动态态迁移管理器器基于卷快照的虚虚拟简单磁盘盘解决了文件件系统的冲突突问题,但本本地虚拟化技技术的实现还还需要解决软软件服务的不不兼容问题。由由于 SVEEE 虚拟机机是直接从宿宿主操作系统统启动,因此此所有启用的的系统服务和和开机自动
31、运运行的软件都都将在 SVVEE 虚拟拟机启动时运运行。由于 SVEE 虚拟机与宿宿主硬件环境境的差异,依依赖于硬件系系统的系统服服务可能会导导致 SVEEE 虚拟机机启动时挂起起甚至崩溃。为了解决这个问问题,本文引引入了隐式进进程标识技术术(将在第六六章介绍),该该技术能够在在虚拟层标识识客户操作系系统中的进程程(包括当前前进程),而而无需依赖于于任何操作系系统 APII。结合此技技术与 SVVEE VMMM 获取的的 Locaal-Boooted OOS 的内存存信息,操作作系统动态迁迁移管理器能能够确定导致致 Locaal-Boooted OOS 挂起或或崩溃的进程程,进而将这这些信息自
32、动动记录到不兼兼容服务数据据库。此后,在启动 SVEE 虚拟机前,操操作系统动态态迁移管理器器将在 Loocal-BBootedd OS中自自动禁用所有有不兼容服务务数据库中的的服务。3.2.4 修修改跟踪管理理器为了满足约束 4(隔离程程序执行效果果的跟踪),SSVEE 需需要监视 LLocal-Booteed OS中中的数据修改改信息,为此此本文引入了了修改跟踪过过滤驱动(CChangee Traccking Filteer Driiver,CCTFD)以以监视和记录录文件的修改改操作。而为为了支持提交交 Locaal-Boooted OOS中的修改改结果到宿主主操作系统,则则需要同时在在
33、这两个操作作系统中布署署 CTFDD。监视不同同对象的修改改信息需要实实现不同的过过滤驱动,如如需要文件系系统过滤驱动动来实现对文文件的监视,而而对 Winndows 注册表的监监视则需要利利用系统调用用拦截技术。SVEE 运行行结束时,可可以向用户提提供三种操作作:放弃 SSVEE 内内隔离程序的的执行结果、保保留执行结果果和提交执行行结果到宿主主操作系统。对对于第一种情情况,SVEEE 虚拟机机的整个运行行环境将被销销毁,之后启启动的 SVVEE 虚拟拟机均需要重重新创建新的的虚拟简单磁磁盘;若保留留执行结果,则则仅关闭 SSVEE 虚虚拟机,而不不销毁虚拟简简单磁盘;对对于第三种情情况,
34、需要利利用修改跟踪踪管理器来分分析和比较 SVEE 虚拟机从创创建到结束整整个过程中 Locall-Bootted OSS 和宿主操操作系统的数数据变化,进进而进行修改改合并,而合合并的同时还还需要解决可可能发生的各各种冲突。从安全的角度考考虑,提交来来源非可信软软件的执行结结果到宿主操操作系统是不不可取的,但但对于质量非非可信软件(不不稳定代码和和存在脆弱性性代码)的执执行结果而言言还是有应用用需求的。3.2.5 隐隐式操作系统统信息重构组组件为了满足约束 5(支持操操作系统信息息重构),SSVEE 需需要提供一种种能够在虚拟拟层获取操作作系统语义信信息的通用机机制,包括进进程、文件、网网络
35、、内存和和注册表等关关键的系统信信息。由于客客户操作系统统的内部状态态对虚拟机来来说是完全透透明的,因此此隐式操作系系统信息重构构组件需要利利用虚拟层有有限的硬件视视图信息,重重构出操作系系统的语义信信息。为此,本本文提出了一一种新的隐式式操作系统信信息重构平台台(Impllicit OS Innformaation Reconnstrucction Platfform,IIOIRP)。利利用该技术,隐隐式操作系统统信息重构组组件能够在不不借助操作系系统 APII 的情况下下,利用硬件件层的信息重重构出操作系系统的语义信信息。第四章 隔离运运行环境的功功能完整性问问题由于程序功能的的正常执行与
36、与执行效果通通常依赖于计计算环境,尤尤其是文件系系统内容与操操作系统配置置等。因此,提提升隔离运行行环境的功能能完整性需要要在该环境内内重现宿主操操作系统的计计算环境。本章将详细描述述实现计算环环境重现的基基础本地虚虚拟化技术。为了解决在 SSVEE 虚虚拟机中重用用已有软件环环境所带来的的文件系统冲冲突和软硬件件配置兼容性性等问题,本本章提出了基基于卷快照的的文件系统共共享技术与操操作系统动态态迁移技术。测试结果表明卷卷快照技术带带来的 I/O 性能下下降小于 110%,处理理器开销仅增增加约3%,而而动态迁移技技术使得 SSVEE 能能够有效支持持多种不同软软硬件配置的的计算机系统统。由于
37、目前个人计计算平台下最最普及的配置置是微软的WWindowws操作系统统与Inteel的x866 处理器,因因此,SVEEE 首先在在面向 x886 处理器器的 Winndows 平台下实现现原型系统。4.1 基于卷卷快照的文件件系统共享对于本地虚拟化化技术而言,关关键问题是如如何直接使用用宿主操作系系统的安装映映像。尽管 SVEE 虚拟机与宿宿主操作系统统共享系统卷卷,但是这二二者均不能感感知彼此对系系统卷数据的的修改,这将将导致 Looca-Boooted OS 和宿宿主操作系统统的文件系统统数据与磁盘盘数据的冲突突,进而使系系统崩溃。解决此冲突的充充要条件是这这两个操作系系统的文件系系统
38、对本系统统内磁盘数据据的修改均是是封闭的,即即不会影响另另一个操作系系统内的磁盘盘数据。为了了给出此充要要条件的形式式化定义并为为下一步的算算法正确性分分析做准备,首首先定义了如如下两个函数数:函数 Writte (OSS, Bloock, tt):表示时时刻 t,操操作系统 OOS 的文件件系统修改了了该操作系统统内的卷数据据块 Bloock。函数数的返回值即即为写入的内内容,若返回回值为,则表示时时刻 t 未未修改数据块块 Blocck。其中 OS Loccal-Boooted OS, HHost OOS。函数 Readd (OS, Blocck, t):表示时刻刻 t,操作作系统 OSS
39、 的文件系系统读该操作作系统内的卷卷数据块 BBlock,函函数的返回值值即为该数据据块的内容。基于上述定义,充充要条件可描描述为:1. 若对 O S, B locck , tt,有有 Writte (OSS, Bloock, tt)= ,则 RRead (OS,Bllock, t)= RRead (OS, BBlock, t)2. 若对 O S, 彐B locck , 彐tt,有有 Writte (OSS, Bloock, t) ,则 Read (OS, Blockk, t)= Wriite (OOS, Bllock, t), t=Maxtt| Wrrite (OS, BBlock, t)为
40、了满足上述充充要条件,SSVEE 引引入了卷快照照技术。顾名名思义,卷快快照即为在快快照创建时刻刻其对应的原原始卷的一致致性副本,一一致性是通过过写时复制(CCopy-oon-Wriite,COOW)技术保保存差异数据据来保证的。利利用这种机制制,宿主操作作系统(Hoost OSS)修改的是是原始卷,LLocal-Booteed OS 修改的则是是卷快照,因因此 SVEEE虚拟机解解决了与宿主主操作系统间间由于写操作作导致的数据据不一致问题题。作为虚拟存储设设备的实现基基础,卷快照照必须支持写写操作。此外外,它也必须须能够由宿主主操作系统的的文件系统加加载,也就是是必须提供与与文件系统标标准卷
41、一致的的访问接口。此此特性能够有有效实现宿主主操作系统内内对卷快照内内容的访问,从从而支持快照照导出到 SSVEE 虚虚拟机前的文文件配置、系系统卷内硬件件配置信息的的修改等功能能。图 SEQ 图 * ARABIC 1 快照驱驱动体系结构构SVEE 的卷卷快照采用了了 COW 机制,即在在原始卷的数数据被修改前前复制该数据据到特定的存存储空间。本本文称此存储储区域为快照照区域(Snnapshoots Arrea,SAArea)。图 4.1 描描述了在安装装了卷快照驱驱动后的 WWindowws 设备驱驱动栈。如图图所示,卷快快照驱动在 Windoows 设备备对象栈中位位于其对应的的原始卷设备
42、备对象之上,因因此它能够有有效地拦截写写原始卷的请请求并执行 COW 操操作。该驱动动创建了两类类设备对象;一类是加载载在原始卷设设备对象(OOriginnal Voolume Devicce Objject)之之上负责执行行 COW操操作的卷过滤滤设备对象(VVolumee Filtter Deevice Objecct);另一一类是卷快照照设备对象(SSnapshhot Voolume Devicce Objject),它它负责向文件件系统提供标标准卷的访问问接口,以便便于被文件系系统加载后用用户可以访问问快照数据,写写快照的数据据则被重定向向到快照区域域(SAreea)。4.1.1 算算
43、法描述卷快照驱动的核核心是处理操操作系统对原原始卷设备对对象和卷快照照设备对象的的读/写请求求。其中,对对原始卷设备备对象的读操操作最为直接接,卷过滤设设备对象直接接将读原始卷卷的 I/OO 请求包(II/O Reequestt Packkage,IIRP)发送送给相应的原原始卷,这是是因为此操作作不会影响原原始卷设备对对象和卷快照照设备对象二二者数据的一一致性。卷快照驱动以基基本块(Baasic BBlock)为为单位管理卷卷数据。它基基于两个数据据结构来管理理 COW 操作的信息息:一是快照照位图表(SSnapshhot Biitmap Tablee),这个位位图表每一比比特位标识一一个基
44、本块是是否已经被执执行了 COOW 操作,即即已被备份到到快照区域;另一个是原原始卷基本块块块号到对应应快照区域基基本块块号的的映射,该映映射以 AVVL树结构组组织信息,索索引值为原始始卷基本块块块号。Input: 原始卷设备备对象,写原原始卷的 IIRPOutput: 无Method:1. if IIRP 要写写的原始卷的的所有基本块块都已被执行行了 COWW 操作(位位图表中相应应比特位均已已经被置 1)2. 将该 IIRP 直接接转发到原始始卷设备对象象;3. elsee4. 挂起当前前写原始卷的的 IRP;5. for IRP 要要写的原始卷卷的所有基本本块6. if 当当前原始卷基
45、基本块未被执执行 COWW 操作7. 构造新的的读 IRPP,参数为原原始卷的当前前基本块;8. 异步执行行此 IRPP,读取原始始卷的当前基基本块的内容容,为备份做做准备;9. 利用快照照空间管理器器提供的接口口,从快照空空间申请新的的基本块;10. 构造新新的写 IRRP,目标为为快照空间的的对应基本块块;11. 异步执执行此 IRRP,将之前前读取的原始始卷的当前基基本块的内容容写入快 照照空间的对应应基本块,完完成 COWW 操作;12. 设置快快照位图表中中当前基本块块对应的比特特位;13. 将当前前基本块及其其对应的快照照空间的基本本块插入到 AVL 映映射树中;14. endd
46、if15. 将挂起起的写原始卷卷的 IRPP 转发给下下层的原始卷卷;16. endd for17. 完成被被挂起的 IIRP;18. endd ifEnd Alggorithhm 写原始始卷的 IRRP 的处理理算法图 SEQ 图 * ARABIC 2 写原始始卷的 IRRP 的处理理算法(COOW 算法)为了突出主要流流程,本章之之后描述的算算法均忽略了了错误和异常常处理,也没没有标识出相相应的同步操操作等。图44.2描述了了卷过滤设备备对象处理写写原始卷IRRP的算法。如如算法所示,当当截获写原始始卷的 IRRP 时,卷卷过滤设备对对象将检查 IRP 的的参数以判断断将要修改的的数据中是
47、否否存在未被复复制备份的部部分(第 11 行),存存在则阻塞该该 IRP(第第 4 行)直直到复制相应应数据到 SSArea 的操作完成成(5-166 行),否否则直接转发发此IRP 到下层原始始卷(第 22 行)。图 4.3 和和图 4.44 分别描述述了读/写卷卷快照设备对对象的处理算算法。如算法法 4.3 所示,读卷卷快照设备对对象时,将根根据欲读取的的基本块是否否被执行了 COW 操操作来判断该该块对应的实实际数据源是是原始卷还是是快照空间中中的对应块(66-13 行行)。算法 4.4 描描述的写卷快快照设备对象象的过程相对对复杂,对于于已经被执行行了 COWW 操作的基基本块,可以以
48、直接写快照照空间中的对对应块;而对对未被执行 COW 操操作的基本块块,则需要在在快照空间中中分配新的存存储块,并复复制原始卷中中的对应内容容到新分配的的存储块中,之之后才能写快快照空间的这这个新分配的的存储块(88-17 行行)。Input: 卷快照设备备对象(简称称为卷快照),读读卷快照设备备对象的 IIRPOutput: 无Method:1. if IIRP 要读读的卷快照的的所有基本块块所对应的原原始卷的那些些基本块都未未被执行了 COW 操操作(快照位位图表中相应应比特位均为为 0)2. 将该 IIRP 直接接转发到对应应的原始卷设设备对象;3. elsee4. 挂起当前前读卷快照的
49、的 IRP;5. for IRP 要要读的卷快照照的所有基本本块6. if 当当前卷快照基基本块对应的的原始卷的基基本块已经被被执行 COOW 操作(通通过查快照位位图表)7. 根据当前前块号在 AAVL 映射射树查找在快快照空间中对对应的基本块块块号;8. 构造新的的读 IRPP,目标参数数为快照空间间中对应的基基本块;9. 异步执行行此 IRPP;10. elsse11. 构造新新的读 IRRP,目标为为当前卷快照照基本块对应应的原始卷的的基本块;12. 异步执执行此 IRRP;13. endd if14. endd for15. 完成被被挂起的 IIRP;16. endd ifEnd A
50、lggorithhm 读卷快快照设备对象象的 IRPP 处理算法法图 4.3 读读卷快照设备备对象的 IIRP 处理理算法Input: 卷快照设备备对象(简称称为卷快照),写写卷快照设备备对象的 IIRPOutput: 无Method:1. 挂起当前前写卷快照的的 IRP;2. for IRP 要要写的卷快照照的所有基本本块3. if 当当前卷快照基基本块对应的的原始卷的基基本块已经被被执行 COOW 操作(通通过查快照位位图表)4. 根据当前前块号在 AAVL 映射射树查找在快快照空间中对对应的基本块块块号;5. 构造新的的写 IRPP,目标参数数为快照空间间中对应的基基本块;6. 异步执行
51、行此 IRPP;7. elsee8. 利用快照照空间管理器器提供的接口口,从快照空空间申请新的的基本块;9. if 当当前要写的长长度等于基本本块10. 构造新新的写 IRRP,目标为为快照空间中中新分配的基基本块;11. 异步执执行此 IRRP;12. elsse (当前前要写的长度度小于基本块块)13. 构造新新的写 IRRP,目标为为当前块在原原始卷中对应应的基本块;14. 异步执执行此 IRRP;15. 合并从从原始卷读取取的内容到当当前要写的内内容(长度为为一个基本块块);16. 构造新新的写 IRRP,目标为为快照空间中中新分配的基基本块,写的的内容为前一一步内并的内容;17. 异
52、步执执行此 IRRP;18. enddif19. 设置快快照位图表中中当前基本块块对应的比特特位;20. 将当前前基本块及其其对应的快照照空间的基本本块插入到 AVL 映映射树中;21. endd if22. endd if23. 完成被被挂起的 IIRP;End Alggorithhm 写卷快快照设备对象象的 IRPP 处理算法法图 4.4 写写卷快照设备备对象的 IIRP 处理理算法通过算法所述过过程,卷快照照设备对象向向文件系统提提供了标准卷卷的访问接口口。因此,应应用程序能够够以操作通用用卷的方式访访问卷快照设设备对象的数数据。4.1.2 算算法正确性分分析结合卷快照设备备对象的读/写
53、算法与写写原始卷的 COW 算算法,现分析析卷快照技术术满足解决宿宿主操作系统统与 Loccal-Boooted OS 间数数据不一致问问题所需的充充要条件,本本节分别针对对充要条件的的两个部分进进行了分析。1. 对 BBlock,tta) 对 Hoost OSS 有 Wrrite (Host OS, BBlock, t)= (此时 BBlock 表示的是原原始卷中的数数据块):此此时若 Wrrite (Locall-Bootted OSS, Bloock, tt)= ,则显然原原始卷中 BBlock 块的数据不不会改变,即即 Readd (Hosst OS, Blocck,t)= Readd
54、 (Hosst OS, Blocck, t);若 WWrite (Locaal-Boooted OOS, Bllock, t) ,由于于算法 4.4(写卷快快照设备对象象的 IRPP 处理算法法)保证了将将写操作重定定位到 SAArea 中中,因此 LLocal-Booteed OS 不会直接修修改原始卷,此此时原始卷中中 Blocck 块的数数据也不会改改变,即 RRead (Host OS,Bllock, t)= RRead (Host OS, BBlock, t)。b) 对 Loocal-BBootedd OS 有有 Writte (Loocal-BBootedd OS, Blockk,
55、 t)= (此时Bllock 表表示的是卷快快照设备中的的数据块):此时若 WWrite (Hostt OS,BBlock, t)= ,则卷快照照设备中 BBlock 块的数据是是直接从原始始卷中读取(算算法 4.33,“读卷快快照设备对象象的 IRPP 处理算法法”的 1-2 行),因因此 Reaad (Loocal-BBootedd OS, Blockk, t)= Readd (Loccal-Boooted OS, BBlock,t);若若 Writte (Hoost OSS, Bloock, tt) ,由于算法法 4.2(写写原始卷的 IRP的处处理算法)通通过 COWW 操作保证证了原
56、始数据据复制到 SSArea 中,此后读读快照设备均均是读 SAArea 中中的备份数据据,因此 RRead (Locall-Bootted OSS,Blocck, t)= Reaad (Loocal-BBootedd OS, Blockk, t)。2. 若对 Blockk,tta) 对 Hoost OSS 有 Wrrite (Host OS, BBlock, t) (此时时 Blocck 表示的的是原始卷中中的数据块):此时若 WWrite (Locaal-Boooted OOS, Bllock, t)= ,则显然然原始卷中 Blockk 块的数据据即为最后写写入的数据,即即 Readd (
57、Hosst OS, Blocck, tt)=Wriite (HHost OOS, Bllock, t),tt=Maaxt| Writte (Hoost OSS,Blocck, tt) ;若 WWrite (Locaal-Boooted OOS, Bllock, t) ,由于算算法 4.44(写卷快照照设备对象的的 IRP 处理算法)保保证了将写操操作重定位到到 SAreea 中,因因此 Loccal-Boooted OS 不会会直接修改原原始卷,此时时原始卷中 Blockk 块的数据据也仍为最后后写入的数据据,即 Reead (HHost OOS,Bloock, t)=Wrrite (Host
58、 OS, BBlock, t),t=Maxtt| Wrrite (Host OS,Bllock, t) 。b) 对 Loocal-BBootedd OS 有有 Writte (Loocal-BBootedd OS, Blockk, t) (此时BBlock 表示的是卷卷快照设备中中的数据块),此此时卷快照设设备中 Bllock块的的数据是直接接写到 SAArea(算算法 4.44,“写卷快快照设备对象象的 IRPP 处理算法法”),同时时读快照设备备也是读 SSArea 中的相应块块,因此无论论是Writte (Hoost OSS, Bloock, tt)= 或 Wriite (HHost O
59、OS, Bllock, t) ,均有RRead (Locall-Bootted OSS, Bloock, tt)= Reead (LLocal-Booteed OS, Blocck, t)。综上所述,卷快快照技术保证证 SVEEE 满足了解解决文件系统统冲突所需的的充要条件。4.1.3 算算法复杂性分分析如前所述,卷快快照技术的CCOW操作增增加了发送给给原始卷的写写IRP的处处理流程,因因此创建了快快照的原始卷卷的 I/OO 性能将有有所下降。为为了定量分析析 SVEEE 的卷快照照技术带来的的磁盘 I/O 性能下下降,本文做做了如下定义义:函数 IoTiime (OOp, Taarget)
60、: Op 定义了 II/O 操作作类型,主要要包括读写两两种操作,TTargett 表示 II/O 操作作针对的卷,因因此 IoTTime 实实际定义了读读写卷 Taarget 某一数据块块BlockkNo 所需需的 I/OO 时间。常量 TesttTime:表示卷快照照驱动判断了了指定逻辑块块是否已经进进行了 COOW 操作所所需的时间。常常量 LocckBitmmapTabbleTimme:表示锁锁/解锁快照照位图表所需需的时间。常常量 LocckMapTTableTTime:表表示锁/解锁锁原始卷基本本块块号到对对应快照区域域基本块块号号的映射表所所需的时间。常常数 RTiimetarr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论