一种在虚拟化环境中管理资源的系统及其实现方法

文档序号:6354839阅读:645来源:国知局

专利名称::一种在虚拟化环境中管理资源的系统及其实现方法
技术领域
:本发明涉及计算机虚拟化技术及应用领域,尤其涉及一种在虚拟化环境中集中管理虚拟资源的系统及其实现方法。
背景技术
:现在流行的虚拟化技术VMM,全称虚拟机管理器(Virtualmachinemonitor),在硬件和操作系统之间提供了一个虚拟抽象层,VMM也称之为主机操作系统,VMM之上是客户机操作系统,也称为虚拟机(VM)。这些VM都是一些相互隔离的操作系统,可以共享硬件资源。VMM允许多个相互隔离的虚拟机同时运行在一个主机上,因而可以提高服务器的利用率,减少购买服务器的成本,提高硬件和应用程序的可用性,因而成为近年来IT行业的热点。随着VMM技术的成熟以及广泛应用,如何对虚拟机池中的大量虚拟机进行集中统一管理以为用户提供按需交付的虚拟资源服务日益成为关注的焦点。企业或组织使用各种不同的方法来分布和管理计算环境中不同类型的资源,该资源包括软件、硬件或两者的结合。通常,企业会雇佣不同的管理员负责不同类型的资源的管理。例如,一部分管理员负责服务器(host)的安装和管理,以及在服务器上安装各种软件资源,如操作系统,应用程序,进一步对软件进行更新维护等。这样对于大的公司而言,就需要雇佣大量的不同的系统管理员来管理组织内的上百个计算系统,企业通过对每个系统管理员分配key(钥匙)和访问策略来使管理员有效地履行其职责。除了上述系统管理员角色,组织可能安排一组系统管理员仅仅管理特定的存储设备。在这些管理员中,企业可能会进一步指派一部分管理员来管理某些分布在不同地理位置和网络的存储服务器等等。相似的,企业可能会安排一部分管理员仅仅管理网络访问部分。这个组可能仍然会通过特定的用户名和密码来指派管理员在某个地理和网络位置内的责任。因而,在传统的网络环境中,访问系统中特定资源的用户往往首先需要获得各种潜在的不同层次的多个管理员的许可,同时,还需要同更高层的管理员进行交互。在每个instance(请求)中,每个系统管理员可能会审核用户的请求能否被授权,如果不能,传递该请求到更高层的系统管理员。这必然增加了管理员的负担,该负担可以通过增加管理员层级来解决,但是却带来了管理开销问题。特别是随着硬件性能的快速提高,硬件越发强大,以及充分利用硬件能力的虚拟机管理器(VMM)技术的出现,一个服务器上可以安装大量的虚拟机。每个虚拟机都是逻辑上独立的,它能被分配一定比例的主机内存和处理能力,并可以很容易地与其它的虚拟机区分开来,甚至也可以与安装该虚拟机的主机区分。对于网络上的用户而言,虚拟机本身就是一个分离的可寻址的计算机系统。虚拟机可以有多种用途,既可以用作网络上的另一个服务器,用于软件或硬件测试,作为瘦客户端的主要的计算机系统等等。虚拟机还有其它的优点,易于创建和删除,这对于管理员而言,可以通过手工来创建和删除虚拟机。正因为虚拟机的灵活性和强大的能力等优点,虚拟机得到了广为应用,很多组织都在原来的物理服务器上安装十台甚至上百台虚拟机,使得组织内的计算机系统的数目成十倍甚至百倍的扩张。因而传统的层级管理员方式也难以管理如此数目众多的虚拟机,而且,传统的管理方式不能充分地管理对虚拟机的额外的请求,每个虚拟机内的许可控制,每个虚拟机的操作。这就需要一种集中的自动化的管理虚拟机的方法。针对虚拟机管理问题,众多国外大公司和研究机构纷纷推出自己的解决方案。VMWare公司的VirtualCenter(虚拟中心)是一套构建于虚拟平台之上的虚拟管理软件,实现了分布在各处的服务器和虚拟机的集中管理和资源协调,资源动态分配,灾难恢复等等。Oracle也开发出了自己的VMManager(虚机管理器),可以管理众多虚机池以及池中的虚拟机,VMManager提供了基于web的访问界面,Oracle也采用了Master-Slave(主-从管理)的体系。针对Xen虚拟机也有一些管理软件,英国剑桥大学在Xen的基础上实现了虚拟机迁移机制。华盛顿大学的Denali(德纳里)项目专注于提供网络服务所需的虚拟机,能够在一个独立的物理机器上运行数量众多的轻量级虚拟机。全球的PlanetLaM互联网计划)平台计划使用了LinuxVkrver(Linux虚拟服务器)技术,为用户提供全球服务的结点,每一个用户都可以有分布于全球的结点来运行自己的应用。有不少机构研究了虚拟机在分布式环境下的应用,剑桥大学基于Xen的Parallax项目可以管理大量的虚拟机,消除写共享,增加客户端的缓存,利用模版映像来构建整个系统;Ventana系统利用集中的存储来保证虚拟服务的多版本,隔离性和移动性;美国Florida大学的研究人员首次提出将传统的虚拟机应用于网格等分布式环境下,并提出了基于虚拟机的网格服务体系结构。目前,国际上基于虚拟机的分布式计算已经成为了研究白勺^^;^^ο另一方面,对虚拟资源的集中管理是为了灵活快速有效地响应用户的应用请求,特别是大量的并发性请求。而事务(Transaction)是构建可靠性应用的基本组成元素,是一种用来确保应用程序中的所有参与方都能达到彼此已达成协定的输出结果的机制。传统上,事务都共同具有以下被称作ACID的属性原子性(Atomicity)如果成功,则所有操作都发生,如果不成功,则所有操作都不发生;一致性(Consistency):应用程序在完成的时候才进行有效状态的转变;隔离性(Isolation)在事务成功完成之前,各项操作的结果都不能被外界共享;持续性(Durability):事务一旦成功完成,各项修改都能从失败中恢复过来。当应用包括多个分布式的子系统,或应用由多个独立的成分组成时,事务可以帮助应用在每个分离的不同的块中来清晰地处理失败。传统的事务处理技术主要应用于数据库系统。然而随着计算机科学技术的发展,事务处理的概念已经被引入了更为广泛的分布式网络计算环境,出现了对分布式事务的处理。分布式事务指一个事务可能涉及多个数据存储,数据存储可以基于块(一个Um(逻辑单元号)或一组Iun)、基于文件(本地或远程文件系统)或者是关系型(数据库)操作,是一个分布式操作序列,被操作的数据分布在网络的不同站点上,以实现相应站点上数据存储的存取操作。当一个应用有单独的功能需要在多个事务资源中访问或更新数据,它应该使用分布式的事务,应用从一个数据库移动数据到另一个数据库要求分布式的事务。X/Open组织定义了分布式事务处理参考模型(DTP),包括应用程序(ApplicationProgram,AP),资源管理器(ResourceManagement,RM),事务管理器(TransactionManagement,TM),通信资源管理器(CommunicationResourceManagement,CRM)和通信规程。虚拟机资源是一种特别的资源,不同于一般的数据资源,每个虚拟机都有其生命周期,当虚拟机poweroff(断电)时,它以一种文件形式存储在磁盘上,当虚拟机处于runtime(运行时)状态时,每个虚拟机都是一个独立运行的计算机系统,被分配一定的内存和处理器能力,一个VMinstance(虚机实例)可能同时需要VM(虚拟机),LUN(逻辑单元号),Raid(独立磁盘冗余阵列),vswitch(虚拟交换机),Nic(网卡)等各种资源,这又会涉及到对多种资源的管理。为了确保对各种底层资源的访问,尤其是底层block(块)级的存储资源,需要提供事务级的保证,因而需要用到分布式事务管理方法。研究人员和设计人员们意识到支持分布式事务会影响设计系统的伸缩性和可用性,数据库是伸缩性的瓶颈,因为数据库服务器不易于伸缩,因此,为了满足application(应用)的伸缩性要求,设计人员往往会牺牲支持分布式事务的能力。因而出现了基于key-value(关键值)模式的更简单的数据存储的设计,在此表格可以看做大量的key-value入口的集合,这些值可能有一些结构,或者能被看作没法解释的字节串。这些系统的典型例子包括Bigtable(大表)、Dynamo、PNUTS,FacebookCassandra,等等。亚马逊用到了数据库,它也能伸缩,但是SimpleDB(简单数据库)和相似的伸缩性key-value像Bigtable和Dynamo那样存储,尽管有伸缩性,但是没有提供事务级的保证,甚至在一个单独的行中。这些系统限制了对singlekey(单个钥匙)的访问粒度,来提供multi-key(多个钥匙)上的微型的(小的)一致性和原子级保证。这允许系统水平地分割表格,而不必担心分布式同步的需要。同事务型数据库的比较,这些系统能看作另一种数据管理解,数据管是指数据管理的解决方法。这些系统的最大特色是其高伸缩性和可用性,但没有传统的数据库的一致性事务属性以及恢复性特征。因而为了满足系统的伸缩性需求,同时为系统提供事务级的保证,需要一种同时满足伸缩性和事务性需求的数据存储和管理方式。
发明内容本发明的目的在于克服现有技术的缺陷而提供一种在虚拟化环境中管理资源的系统及其实现方法,该系统可以高效可靠地对虚拟机资源、虚拟存储资源、虚拟网络资源进行统一管理,从而对外提供虚拟基础设施级的服务,本发明可以实现虚拟化环境中各种资源的事务级的管理,以及可以保证系统的伸缩性。实现上述目的的技术方案是本发明之一的一种在虚拟化环境中管理资源的系统,其中,包括OSS以及与其相连的TMN,还包括服务交付平台、master,slave、网络交换机以及共享存储设备,所述的slave上运行有至少一个虚拟机,其中所述的服务交付平台与所述的OSS相连,并且向所述的master请求资源;所述的master分别与所述的网络交换机和slave相连并且接收所述的服务交付平台发出的请求信号,它控制slave及slave上运行的虚拟机;所述的slave的数量至少为一个,它与所述的网络交换机、共享存储设备以及所述的TMN相连,并且与所述的master进行交互;所述的共享存储设备作为共享存储,分别与所述的网络交换机、slave以及master相连。上述的在虚拟化环境中管理资源的系统,其中,所述的TMN包括相连的匪S和EMS,所述的WS与所述的OSS相连,所述的EMS与所述的slave相连,所述的EMS管理的设备包括物理设备和虚拟设备。上述的在虚拟化环境中管理资源的系统,其中,所述的每一slave包括若干个虚拟机、与所述的若干个虚拟机相连的VMM以及与所述的VMM相连的若干个硬件,所述的每一slave里的VMM与其所在的slave里的虚拟机相连,或者除了与其所在的slave里的虚拟机相连还与其他的slave里的虚拟机相连。上述的在虚拟化环境中管理资源的系统,其中,所述的VMM包括一vSwitch,所述的硬件包括Nic,所述的Nic分别与所述的vSwitch以及所述的网络交换机相连,所述的共享存储设备存储VMimage和用户文件信息。上述的在虚拟化环境中管理资源的系统,其中,所述的master包括JSDL代理模块、ApplicationProgram、资源管理器和事务管理器,其中所述的JSDL代理模块对JSDL文件中用户定义的请求与policy信息进行解析,将其应用请求分解成transaction,并求解出每个transaction执行所需的资源,将事务请求发送给所述的ApplicationProgram,所述的JSDL文件是从服务交付平台通过JSDL协议传到JSDL代理模块的;所述的ApplicationProgram接收JSDL代理模块传过来的请求,定义事务边界内的事务和访问资源,并指定一系列的包括资源的operations;所述的资源管理器集中管理计算机资源,包括主机资源、虚拟机资源、存储资源和网络资源,负责资源的统一定位和安全;所述的事务管理器对transaction的生命周期进行控制,包括确定事务的开始和结束,以及对transaction的调度和资源管理器中的信息进行交互来确定transaction的路由。上述的在虚拟化环境中管理资源的系统,其中,所述的事务管理器包括一事务监控器,该事务监控器用于监控transaction,采用虚拟时间机制来统一transaction的时间,并将transaction放到等待队列中。上述的在虚拟化环境中管理资源的系统,其中,所述的事务管理器还包括一事务调度器,该事务调度器计算transaction执行所需的计算机资源,确定transaction的优先级别,将优先执行的transaction打上标记;确定可并行执行的transaction并标记;规划transaction执行的先后顺序;通过查看资源管理器中的资源信息来确定transaction可否执行以及在哪台slave上执行。上述的在虚拟化环境中管理资源的系统,其中,所述的事务管理器还包括一事务路由器,该事务路由器确定事务路由;当某个slave不可用时,该事务路由器将transaction路由到另一可用的slave上。上述的在虚拟化环境中管理资源的系统,其中,所述的资源管理器包括一资源状态机,该资源状态机存储事务运行所需的资源的状态信息。上述的在虚拟化环境中管理资源的系统,其中,所述的资源状态机存储的状态信息包括虚拟机状态、主机状态、存储状态以及网络状态。上述的在虚拟化环境中管理资源的系统,其中,所述的资源状态机包括状态机控制器以及分别与该状态机控制器相连的检测器、比较器、时钟、注册器和虚机状态机表格,所述的检测器和比较器实现对状态及其改变进行审核和比较,所述的状态机控制器通过配置所述的注册器来获得所需的功能。上述的在虚拟化环境中管理资源的系统,其中,所述的虚机状态机表格存储的虚拟机状态有Running、Off、Paused以及Sle印ing四个主状态,其中,Running状态中进一步包括用户自定义的可编程状态。上述的在虚拟化环境中管理资源的系统,其中,所述的资源管理器还包括一资源引用模型,该资源引用模型采用树形结构的元数据表来表示资源的统一标记符与资源的具体位置的映射关系,建立资源的引用关系。上述的在虚拟化环境中管理资源的系统,其中,所述的资源引用模型包括相连的资源引用表格和资源信息表格,其中所述的资源引用表格中包括资源的身份、资源描述以及资源的元数据信息,给每个资源一个唯一的身份标记,通过资源的名字来找到资源,将全局的资源构成一个逻辑的整体,所述的元数据信息里包括资源的逻辑地址信息,通过分布式hash表来实现资源的逐层引用,直至找到该资源的具体位置;所述的资源信息表格是各类资源的信息描述,所述的资源包括网络资源、存储资源以及服务器资源。上述的在虚拟化环境中管理资源的系统,其中,所述的资源管理器还包括一资源管理模块,该资源管理模块统一管理物理和虚拟资源。上述的在虚拟化环境中管理资源的系统,其中,所述的资源管理模块所管理的资源包括资源访问验证、访问控制以及资源配置信息。上述的在虚拟化环境中管理资源的系统,其中,所述的slave还包括一资源管理器代理模块,与所述的资源管理器相连,通过TCP协议向master汇报资源状态信息,通过CEPH-ext向master汇报资源位置信息;—事务实现模块,与所述的事务管理器相连,负责事务的提交;一Libvirt模块,与所述的事务实现模块相连,它为受支持的VMM实现的常用功能提供通用的API。上述的在虚拟化环境中管理资源的系统,其中,还包括与所述的master相连的Host代理、DFSAPI和网络API,其中Host代理,向master汇报slave上的虚拟机的状态信息,并在状态发生改变时上艮至1Jmaster;DFSAPI,向master提供系统中存储资源信息的接口;网络API,向master提供系统中网络资源信息的接口。上述的在虚拟化环境中管理资源的系统,其中,所述master以及若干slave位于一个组中,若干个组均设置于一个数据中心里,资源引用的顺序为从数据中心到一个组,从一个组到slave,然后到虚拟机,最后到虚拟机中的硬件;或从数据中心到一个组,从一个组到一个slave,最后到slave上的物理硬件;对每个资源都进行唯一的身份标记,每个资源都有唯一的身份标记符;采用伪随机数的方法对资源进行引用。本发明之二的一种伤述的在虚拟化环境中管理资源的系统的实现方法,其中,该方法采用分布式事务处理实现虚拟化环境中的资源管理,包括将事务运行在虚拟机上,事务的执行首先需要虚拟机的资源,还需要支持事务执行的master上存储的slave的服务器资源、网络资源以及存储资源;事务的执行改变上述各种资源的状态。上述的在虚拟化环境中管理资源的系统的实现方法,其中,该方法进一步包括事务监控器监控事务的到达后,启动事务调度器到资源管理器的资源状态机中查看资源状态信息;根据资源的状态和策略判断事务是否可以执行。上述的在虚拟化环境中管理资源的系统的实现方法,其中,所述的根据资源的状态和策略判断事务是否可以执行,即如果没有可用的资源,将拒绝该事务的执行;如果有可用的资源,事务将继续执行;如果是写事务,则对资源加锁。上述的在虚拟化环境中管理资源的系统的实现方法,其中,还包括确定有可用的资源后,事务调度器通过策略确定事务应该在哪些slave上执行;通过资源引用模型找到资源的位置;通过路由协议将事务路由到执行的slave上。上述的在虚拟化环境中管理资源的系统的实现方法,其中,还包括事务被拒绝后,将事务放在等待队列中,等待下一次的执行;再次查询资源状态机,看是否有可用的资源。上述的在虚拟化环境中管理资源的系统的实现方法,其中,还包括以下步骤对文件备份以保证文件支持事务的原子性,对文件加锁以保证文件支持事务的隔离性,从而确保在文件环境中的事务的二次提交。上述的在虚拟化环境中管理资源的系统的实现方法,其中,还包括事务的执行提交后,资源状态信息、资源路由信息和资源配置信息发生改变,通过资源管理器代理模块将新的资源信息上报到master。上述的在虚拟化环境中管理资源的系统的实现方法,其中,还包括设定时间机制,当事务到达超过该设定的时间,将彻底终止事务的执行。上述的在虚拟化环境中管理资源的系统的实现方法,其中,用户的实现方法包括用户端定义policy,多用户复用同一个app,一个app对应一个domain,一个domain下有多个components,多个components可以复用一个虚拟机,一个虚拟机使用多个物理资源,通过外围的Monitor监控物理资源的状态;Component为虚机实例。本发明的有益效果是本发明采用master-slave的管理体系来管理虚拟机,一个组中有一个master和多个slave,master运行在一个有别于slave并与slave分离的主机上,该主机上不运行虚拟机,当slave应该有足够好的性能时,也可以运行在slave上;slave上有若干虚拟机,master可以对组中的slave及slave上的虚拟机进行集中统一管理,用户请求使用虚拟机,通过该体系可以完成用户发出的各种使用虚拟机的请求。将分布式事务处理(DTP)架构引入到管理核心模块master中以处理大规模并行事务的请求。其中的事务管理器负责事务的监控、调度、路由、通信及提交。资源管理器中的资源管理模块负责资源的验证、访问控制、安全。虚拟机状态机的使用可以实现并发性操作,有效折中资源冲突。资源引用模型中存储资源的状态信息,资源的使用信息,以及资源的寻址信息。资源管理器为事务监控器提供API。Slave上的Agent向master中的资源管理器汇报slave上的各种资源信息,并在master上实时更新信息。该体系可以高效可靠地对虚拟机资源、虚拟存储资源、虚拟网络资源进行统一管理,从而对外提供虚拟基础设施级的服务。图Ia是本发明之-一的虚拟化环境中管理资源的系统的结构示意图Ib是本发明之-一的虚拟化环境中管理资源的系统的逻辑体系框图2是本发明之一-的事务管理器的具体组成框图3是本发明之一-的资源管理器的具体组成框图4是本发明之二的从用户请求提交到执行结果返回的总流程图5是本发明之二的Master的工作流程图6a是本发明之:二的Slave的读事务工作流程图6b是本发明之:二的Slave的写事务工作流程图7是本发明之二的事务监控器的工作流程图8是本发明之二的事务调度器的工作流程图9是本发明之二的资源状态机的状态转移生命周期图10是本发明之:二的虚拟资源引用的逻辑图11是本发明之:二的事务提交策略;图12是本发明之:二的用户请求到达虚拟资源直至物理资源的层次逻辑图。具体实施例方式下面将结合附图对本发明作进一步说明。请参阅图la,为本发明之一的总图,反映了各种资源,包括硬件资源和软件资源之间的连接及管理关系,本发明的一个或多个实施例可以在此实施。一种在虚拟化环境中管理资源的系统,包括0SS(运营支撑系统)08以及与其相连的TMN(电信管理网络),还包括服务交付平台01、master(主管理程序)04、slave(被master管理的主机)05、网络交换机06以及共享存储设备07,slave05上运行有至少一个虚拟机051,其中服务交付平台01与0SS08相连,并且向maSter04请求资源;master04分别与网络交换机06和slaVe05相连并且接收服务交付平台01发出的请求信号,它控制slaVe05及slaVe05上运行的虚拟机051;slave05的数量至少为一个,它与网络交换机06、共享存储设备07以及TMN相连,并且与master04进行交互,每一slaVe05包括若干个虚拟机051、与若干个虚拟机051相连的VMM(虚拟机监控程序)052以及与VMM052相连的若干个硬件053,每一slave05里的VMM052与其所在的slave05里的虚拟机051相连,或者除了与其所在的slave05里的虚拟机051相连还与其他的slaVe05里的虚拟机051相连。共享存储设备07作为共享存储,分别与网络交换机06、slaVe05以及maSter04相连;TMN包括相连的匪S(网络管理系统)09和EMS(设备管理系统)10,匪S09与0SS08相连,EMSlO与slave05相连,其中匪S09从整个网络的层面来控制网元之间的关系,负责网元之间的协同工作;EMSlO负责对单独网元的控制,它管理一组设备,EMSlO管理的设备包括物理设备和虚拟设备。VMM052包括一vSwitch(虚拟交换机)0521,硬件053包括有CPU0531、Memory(内存)0532、Nic(网卡)0533和HBAs(主机总线适配器)0534,Nic0533分别与vSwitch0521以及网络交换机06相连,HBAs0534与共享存储设备07相连,该共享存储设备07存储VMimage(虚拟机镜像)和用户文件信息,其中虚拟机051由VMM053进行控制,并通过该VMM052共享硬件资源。vSwitch0521是一个由软件实现的虚拟交换机,它具有多个端口,连接同一个slave上或不同slave上的多个虚拟机,并且该vSwitch还与Nic相连,vSwitch0521与所有的虚拟机051都相连。本发明中,采用电信中广为应用的运营支撑系统0SS08作为管理的总的指导思想,0SS08是电信服务提供商使用的计算机系统,0SS08多指处理电信网络自身的“网络系统”,支持一些过程诸如维持网络inventory,提供服务,配置网络元素,管理错误。0SS08可以对各操作进行管理,防止越级情况的发生。电信管理网络TMN是由ITU-T推荐M.3000于1985年提出作为一种应用于电信服务供应商所持有的运营支持系统(OSS)的参考模型。TMN包括匪S09和EMSlO两个层次,匪S09主要从整个网络的层面来管理网元之间的关系,负责网元之间的协同工作。EMSlO主要负责对单独的网元的管理,如,设置/获取网元属性,向网元发送指令等。EMSlO是设备管理子系统,它从硬件的角度管理一组设备,这里的设备不仅包括物理设备,同时也包括虚拟设备,如VM(虚拟机)。但EMSlO不关心VM和业务相关的操作,如克隆等。它只关心设备的几个方面故障、配置、性能、安全。EMSlO来划分cluster(集群)。硬件也是可编程的,这使得对硬件资源的划分是可变的,可用NMS09、EMSlO等来划分。0SS08可以管理多个NMS09,NMS09可以管理多个EMSlOoOSS08连接到服务交付平台01,服务交付平台01用于对通讯和IT的能力进行集成,以及远在技术和网络边界外的服务的创造。服务交付平台01—般指特定的技术或网络域中的服务的交付,例如web,IMS(IP多媒体子系统),IPTV(IP电视),mobileTV(移动电视)等,服务交付平台01可以典型地提供服务控制环境,服务创造环境,服务编制和执行环境,以及对媒体控制、寻址,甚至其它低层的通讯能力的抽象。在本发明的实施例中,服务交付平台01作为一附加的外部成分,本发明的发明主体可以接受所有的来自服务交付平台01的请求。服务交付平台01有少量的交互请求会发送给EMS10,主要包括以下几个方面查询哪一台服务器是master04,哪几台是备份的master04。maSter04是一个程序,运行在一个单独的服务器上,或与虚拟机051共享一个服务器,只要这个服务器的性能足够,masterCM中不能运行虚拟机。masterCM通常在memory0532中,当poweron的时候,master04开始在内存中运行,poweroff后,master04中的数据消失。在一个组中只有一个master04,master04可以管理一个组中的多个slave05,以及每个slave05上的多个虚拟机051,所有到虚拟机051的transaction(事务),不管是读事务还是写事务都要经过master04,对虚拟机051的各种操作功能都是通过masterCM操控来完成的,如启动虚拟机051,关闭虚拟机051,增加虚拟机051,删除虚拟机051,显示虚拟机051信息,等等。master04还负责管理虚拟机051的各种image(镜像)信息,配置信息,VM身份信息等等。master04工作在VMinstance(虚拟机实例)的范围,由于VMinstance的运行需要服务器、存储或虚拟存储、网络或虚拟网络资源,VMimage的存储也需要存储设备,则maSter04也会涉及到部分对这些资源的管理,包括对这些资源的reference(引用),以及这些资源出错信息会上报到。master04与slave05相连,请求经过master04传到下面的slave05oslave05艮口服务器或称之为host(主机)或node(节点)。虚拟机051中的应用和操作系统的执行使用vCPU(虚拟CPU)、Wtorage(虚拟存储)以及virtual1/0(虚拟输入/输出设备)设备,通过VMM052具体分配到使用底层硬件中的一定比例的CPU处理能力、存储容量、1/0流量。VSwitch0521是一种用软件实现的虚拟交换机,与物理网络交换机相同,上面有多个端口,可以连接同一个slave05上或不同slave05上的多个虚拟机051,vSwitch0521连接到真实的Nic0533,Nic0533又连接到真实的网络交换机06,一个网络交换机06上可以连接多个主机。在本发明的一个或多个实施例中,一般会设置一台备份的网络交换机06,以应对使用单个网络交换机06可能出现的一些故障问题。用于虚机中的标准的文件系统是VirtualDisk(虚拟磁盘),虚拟磁盘提供了和物理磁盘相同的block(块设备)层的接口。VD的最大的优点是其兼容性,版本化、隔离性、封装性等,这些也可以通过网络文件系统来实现。虚拟机051中的diskstorage(磁盘存储)可能映射到共享存储设备07中的某个文件,通过HBAS0534连接到共享存储设备07,LUN是共享存储中执行scsi命令的单位。也可以映射到可访问的硬件中的存储设备上的文件,或直接映射到可访问的硬件中的存储设备。例如,网络存储设备可能包括NAS(NetworkAttachedStorage)(网络附加存储)禾口SAN(StorageAreaNetwork)(存储域网络)设备,或Raid(独立磁盘冗余阵列)。请参阅图lb,图中示出了本发明之一的逻辑示意图,图中以masterCM与一个slave05为例来说明。master04包括JSDL(工作提交描述语言)代理模块041、ApplicationProgram(应用程序)042、资源管理器043和事务管理器044,其中JSDL代理模块041对JSDL文件中用户定义的请求与policy(策略)信息进行解析,将其应用请求分解成trarnsaction(事务),并求解出每个transaction执行所需的资源,将事务请求发送给所述的ApplicationProgram042,JSDL文件是从服务交付平台01通过JSDL协议传到JSDL代理模块041的;ApplicationProgram042接收JSDL代理模块041传过来的请求,定义事务边界内的事务和访问资源,并指定一系列的包括资源的operations(操作);资源管理器043集中管理计算机资源,包括主机资源、虚拟机资源、存储资源和网络资源,负责资源的统一定位和安全;事务管理器044对transaction的生命周期进行控制,包括确定事务的开始和结束,以及对transaction的调度和资源管理器中的信息进行交互来确定transaction的路由,最后Committransaction(提交事务)。事务管理器044包括事务监控器0441、事务调度器0442和事务路由器0443,其中事务监控器0441用于监控transaction,采用虚拟时间机制来统一transaction的时间,并将transaction放到等待队列中。事务调度器0442计算transaction执行所需的计算机资源,确定transaction的优先级别,将优先执行的transaction打上标记,确定可并行执行的transaction并标记,采用算法和策略来规划transaction执行的先后顺序,算法和策略是一般的事务调度器0422都有的功能,本发明中用到一些公用的算法,如最高优先权优先(FPF)调度算法和抢占式最高优先权优先调度算法等,通过查看资源管理器中的资源信息来确定transaction可否执行以及在哪台slaVe05上执行;事务路由器0443确定事务路由,当某个slaVe05不可用时,该事务路由器0443将transaction路由到另一可用的slave05上。资源管理器043包括资源状态机0433、资源管理模块0431和资源引用模型0432,其中资源状态机0433存储事务运行所需的资源的状态信息,资源状态机0433存储的状态信息包括虚拟机状态、主机状态、存储状态以及网络状态;资源管理模块0431统一管理物理和虚拟资源,资源管理模块0431所管理的资源包括资源访问验证、访问控制以及资源配置信息;资源引用模型0432采用树形结构的元数据表来表示资源的统一标记符与资源的具体位置的映射关系,建立资源的引用关系。本发明中,slave05还包括资源管理器代理模块054,与资源管理器043相连,通过TCP(Transportcontrollprotocol传输控制协议)协议向master04汇报资源状态信息,通过CEPH-ext向master04汇报资源位置信息;事务实现模块055,与事务管理器044相连,负责事务的提交;一Libvirt模块056,与事务实现模块055相连,它为受支持的VMM实现的常用功能提供通用的API。图Ib是本发明的逻辑体系框图。描述了对用户发出的应用请求的逻辑处理框架,工作在分布式网络环境下。服务交付平台01提交用户使用的请求,在本发明中,所有请求的操作都是对虚拟机051的。这里的服务交付平台01管理的对象以虚拟机051为单位,服务交付平台01接收到用户的请求,然后对这些请求进行scheduling(调度),传到下面的master04,应用请求可以是lamp、sqid、apache等,Lamp是linux,apache,mysql,PHP的简称,而masterCM向上面的服务交付平台01告知其能力。请求的传送通过JSDL协议(JobSubmissionDescriptionLanguage)传至Ijmaster04中的JSDL代理模块041。JSDL是一禾中用于描述计算任务对资源的需求的语言,尤其使用在网格环境中,但不限于网格环境。JSDL语言包括词组和规范的XML模式,可用于优化一组XML元素对资源需求的表达。JSDL代理模块041对JSDL.doc中用户定义的请求与policy信息进行解析,将应用分解成transaction,并求解出每个Transaction执行所需的资源。事务(Transaction)是完整的工作单元,具有自身的ACID特性,一个transaction可能由多个计算任务组成,这些任务可能包括用户接口,数据查询,以及通信等,其中一个任务失败,所有组成该事务的任务都不能完成,数据会被驳回到它的先前的状态。事务管理器043提供工具来简化和自动化应用编程、执行、以及复杂、分布式应用的管理。为了规范对分布式事务的处理,X/Open组织定义了分布式事务处理模型(DTP)。DTP参考模型是业界公认的分布式事务处理的标准,为本发明的分布式的事务监控器0441提供了一个标准的体系框架。在这个体系框架下,不同的应用程序之间能够共享由各种各样资源管理器提供的资源,并保证系统内各种资源均衡、有效地运转,能够在全局事务中进行分工协作。ApplicationProgram042是一种应用商业层,可以定义transaction的边界,并制定组成transaction的action(动作),该层只关心商业层逻辑,无需知道下面的具体资源。ApplicationProgram042将全局事务传到事务管理器044,事务管理器044由分布式的事务监控器0441,事务调度器0442,事务路由器0443组成,ApplicationProgram042和事务管理器044之间通过API(应用编程接口)进行通信。事务管理器044中的分布式的事务监控器0441监控到事务请求,将事务放到等待队列中,同时引发事务调度器0442对事务进行调度。事务监控器0441负责给该事务分配唯一的标记符,记录事务的生命周期,从事务到达到事务提交。当事务提交时,事务监控器0441从事务记录中消除读和写集合,定义要求唤醒的阻住的事务,聚集地址集合,从事务索引中消除定义的事务,从地址索引中消除定义的事务,重试阻住的事务。事务调度器0442处理事务级别的调度,首先根据一定的调度算法,确定transaction的优先级别,对队列(queue)中的transaction进行调度。然后与资源管理器043进行通信,通过资源管理器043提供的API查看资源状态机0433中的资源状态信息,包括虚拟机状态信息、主机状态信息、存储状态信息、网络状态信息,这些状态机都采用分布式哈希表(DHT)的格式,存储在内存中。资源状态机0433主要是为了实现并发性的操作,将分布式的管理变为集中的管理。资源引用模型0432中存放的是资源路由信息、元数据信息以及资源身份信息。资源管理模块0431中存放的是各种资源管理的信息,包括资源配置信息等。分布式事务调度器(scheduler)根据资源状态机中的信息,以及执行该transaction所需要的资源,来确定transaction是否可以执行,如果transaction不能执行,则拒绝该transaction,否则继续transaction的执行。由于VMinstance(虚拟机实例)的运行同时需要虚拟机资源、主机资源、存储资源、网络资源,所以需要根据这些资源的信息来进行判断,资源状态机0433中存储的具体信息将在下面详细说明。事务被拒绝后,将拒绝信息返回到客户端,该事务执行终止(失败的事务)。事务继续执行后,分布式的事务调度器(scheduler)0442根据资源引用模型0432中的资源路由信息和一定的策略来确定将transaction路由到哪台slaVe05上的哪台虚拟机051上。事务路由器0443根据一定的路由协议将transaction传送到执行的slaVe05上。事务在slave05中实施,调用Iibvirt模块056对虚拟机051进行操作,事务在slaVe05的某台虚拟机051中执行,事务的执行会耗用服务器、存储和网络资源,执行完成后修改资源管理器043中各存储库中的数据,并通知事务管理器044。然后进行事务的提交,在第一阶段,事务管理器044请求资源管理器043中所有相关数据存储准备提交或预提交各自的事务分支,以确认是否所有相关数据存储都可以提交各自的事务分支。当某一数据存储收到预提交后,如果可以提交属于自己的事务分支,则将自己在该事务分支中所做的操作固定记录下来,并给事务管理器044—个同意提交的应答,此时数据存储将不能再在该事务分支中加入任何操作,但此时数据存储并没有真正提交该事务,数据存储对共享资源的操作还未释放,即处于上锁状态。如果由于某种原因数据存储无法提交属于自己的事务分支,它将回滚自己的所有操作,释放对共享资源上的锁,并返回给资源管理器043失败应答。这里我们需要在事务存储上写上支持两阶段提交的功能,即要支持ACID。如果事务时读事务,则只有一阶段提交,因为读事务不会改变数据资源的状态,因而不需要对资源上锁,等待第二阶段的提交。在第二阶段,事务管理器044审查所有数据存储返回的预提交结果,如所有数据存储都可以提交,事务管理器044将要求所有数据存储做正式提交,这样该全局事务被提交。而如果有任一数据存储预提交返回失败,事务管理器044将要求所有其它数据存储回滚其操作,这样该全局事务被回滚,即至资源管理器043中的虚拟资源状态表格,资源管理表格,资源引用表格。请参阅图2,图中示出了本发明之一的事务管理器044的细节图。事务管理器(TM)044管理分布式事务,负责分布事务对象的生存期管理和操作管理,可以横跨多个资源管理器043,并管理两阶段的提交,通过协商来决定是否提交或滚回分布式事务,或协商失败恢复。事务管理器044由分布式的事务监控器0441、事务调度器0442和事务路由器0443三部分组成,其中事务监控器0441由服务接口04411、监控控制器04412组成。监控控制器04412的主要任务是监控事务请求,判断该请求能做或不能做,以及如何在分布式体系中为请求提供服务。服务接口04411是ApplicationProgram042与事务管理器044的接口,当一个事务到达时,服务接口04411为该事务建立到事务管理器044的连接,当事务结束时,服务接口04411关闭该连接。在本发明中,有三种情况的结束,事务被拒绝,事务被提交,或事务被滚回。在本发明的一个或多个实施例中,事务请求有两种,分别为虚拟设备事务和虚拟存储事务,虚拟设备事务即针对虚拟设施的操作,包括虚拟机、虚拟存储、虚拟网络等,虚拟存储事务即存储操作。监控控制器04412负责事务的性能计量,统计有多少事务到达,有多少事务执行成功或失败,并负责将事务到达的事务放到等待队列中。事务监控器0441主要负责事务操作的管理、事务身份的管理,事务生命周期的管理以及二次提交的管理。事务操作指的是一个事物包括哪些操作,这些操作作用于哪些数据源。事务身份管理负责为每个事务分配一个唯一的身份标记符,可通过表格方法来实现,以区分事务,方便对事务的管理,本发明中通过事务身份管理模块0444实现。事务生命周期管理负责对事务的到达,拒绝,执行,提交或滚回等整个生命周期进行管理,本发明中通过一事务生命周期管理模块0445实现。事务两阶段提交管理负责管理事务的两阶段提交,由于本发明采用了资源状态机0433,通过资源状态机0433来判断事务是否可以执行,该判断机制使得事务被滚回的可能性很低。由于本发明的数据源都是表格或文件系统,这两种不支持两阶段提交,本发明采用了对文件进行备份和上锁的方法来保证事务的原子性和隔离性,支持两阶段的提交。事务调度器0442处理事务级别的调度,首先根据一定的调度契约算法确定事务的优先级别,不同的事务所耗的资源不同,根据事务可能会耗用的资源,来决定事务的优先级别,对队列(queue)中的事务进行调度,本发明中通过一存储有契约算法的契约算法模块0446实现。事务调度器0442会根据资源管理器043中的资源状态信息确定事务是否可以执行,以及在哪台slaVe05的那个虚拟机051上执行。事务路由器0443通过路由协议0447将事务路由到slave05上实施。若同一个host上有两个虚拟机051,可以用sharedmemory(共享内存)来做upload(上传)。事务路由器0443与slaVe05中的事务实现模块055相连。请参阅图3,图中示出了本发明之一的资源管理器043的细节图,资源管理器(ResourceManager)043负责管理运行虚拟机实例(VMinstance)所需的资源,包括虚拟机(VM)、主机(host)、存储(storage)以及网络(network)资源,提供对资源的访问,为虚拟机实例的运行提供数据管理服务,并保证数据的完整性与一致性。资源管理器043向事务管理器044提供API(XAResource),以实现对资源启动和停止的控制,事务管理器044通过该接口来实现事务两阶段提交协议。在本发明的一个或多个实施例中,数据资源是存储在表格中的,表格是在内存中的。其中资源状态机0433能通过所有的状态,因为比较器04333或外部事件的作用。资源状态机0433中包括虚拟机状态机(图中未示出)、主机状态机(图中未示出)、存储状态机(图中未示出)以及网络状态机(图中未示出)。资源状态机0433的作用是作为资源控制器,来决定事务能否被执行,若不能执行,则在第一回合停止该事务,若能执行,才继续下面的动作。资源状态机0433也可以将分布式的管理变成集中的管理,实现并行事务的实施,保护核心资源。资源状态机0433包括一状态机控制器04331以及分别与该状态机控制器04331相连的检测器04332、比较器04333、时钟04334、注册器04335和虚机状态机表格04336,检测器04332和比较器04333实现对状态及其改变进行审核和比较,资源状态机0433能够改变状态,一来是因为内部时针器函数,二来是外部的事件异步。状态机控制器04331通过配置注册器04335来获得所需的功能,该功能是指实现对资源状态机0433的配置。虚机状态机表格04336存储的虚拟机状态有Running(运行)、Off(断电)、Paused(暂停)以及Sle印ing(睡眠)四个主状态,其中,Running状态中进一步包括用户自定义的可编程状态。资源引用模型0432包括相连的资源引用表格04321和资源信息表格04322,其中资源引用表格04321中主要包括资源的身份043211、资源描述043212以及资源的元数据信息043213,可以对时间片、内存、资源等进行抽象,然后直接找下面的资源,有路由的作用。资源引用表格04321给每个资源一个唯一的身份标记,这个通过全局身份系统来实现,不管资源移动到何处,都可以通过资源的名字来找到资源,将全局的资源构成一个逻辑的整体,这些信息采用表格来存储,而不用数据库,因为数据库是高级的,结构化的存储,却不适合分布式存储的情况,元数据信息043213里主要包括资源的逻辑地址信息,通过分布式hash(哈希)表来实现资源的逐层引用,直至找到该资源的具体位置;还包括与master04相连的Host(主机)代理361、DfsAPI(分布式文件系统API)351和网络API(应用编程接口)341,其中Host代理361向master04汇报slave05上的虚拟机051的状态信息,并在状态发生改变时上报到master04;DfsAPI351,向maSter04提供系统中存储资源信息的接口;网络API341,向master提供系统中网络资源信息的接口。资源信息表格04322是各类资源的信息描述,这些资源也是运行虚拟机实例所需的资源,资源包括网络资源043221、存储资源043222以及服务器资源043223等。服务器资源043223主要包括CPU资源0432231,内存资源0432232,以及其它各种设备资源0432233,这些资源信息由下面的host36上的host代理361提供,每次资源发生变化时,host代理361都会负责更新maSter04中的资源管理器043上的相关资源信息。存储资源043222包括Disk(磁盘)资源0432221,Raid资源0432222,Lun(逻辑单元号)资源0432223等,这些资源信息由下面的Morage(存储)35中的DfsAPI351提供给master04中的资源管理器043,并在每次资源信息发生改变时,改变资源管理器043中的存储资源信息。网络资源043221包括switch(网络交换机)资源0432213、vswitch资源0432212和Nic资源0432211,这些是由下面的网络34中的网络API341提供,并在每次网络资源发生变化,或出错时,上报给上面的资源管理器043。资源管理模块0431中主要是各种资源管理信息,包括对访问资源的身份验证04311,访问控制04312以及资源配置信息04313等。资源配置04313用来描述一个host上有多个虚拟机等信息,下面的host和VM的状态改变也会上报到资源配置04313信息中。本发明中,master04以及若干slaVe05位于一个组中,若干个组均设置于一个数据中心(图中未示出)里,资源引用的顺序为从数据中心到一个组,从一个组到slaVe05,然后到虚拟机051,最后到虚拟机051中的硬件053;或从数据中心到一个组,从一个组到一个slave05,最后到slave05上的物理硬件053,具体指CPU,Memory,1/0等。对每个资源都进行唯一的身份标记,每个资源都有唯一的身份标记符;采用伪随机数的方法对资源进行引用。本发明之二的一种如本发明之一在虚拟化环境中管理资源的系统的实现方法,该方法采用分布式事务处理实现虚拟化环境中的资源管理,包括将事务运行在虚拟机051上,事务的执行首先需要虚拟机051的资源,还需要支持事务执行的masterCM上存储的slaVe05的服务器资源、网络资源以及存储资源;事务的执行改变上述各种资源的状态,例如通过执行事务,比如关闭虚拟机,则此时虚拟机状态就发生了改变。当事务监控器0441监控事务的到达后,启动事务调度器0442到资源管理器043的资源状态机0433中查看资源状态信息;根据资源的状态和策略判断事务是否可以执行,即如果没有可用的资源,将拒绝该事务的执行,若事务被拒绝后,将事务放在等待队列中,等待下一次的执行;再次查询资源状态机,看是否有可用的资源。如果有可用的资源,事务将继续执行,若事务的执行提交后,资源状态信息、资源路由信息和资源配置信息发生改变,通过资源管理器代理模块OM将新的资源信息上报到master04o如果是写事务,则对资源加锁。确定有可用的资源后,事务调度器0442通过策略确定事务应该在哪些slaVe05上执行;通过资源引用模型0432找到资源的位置;通过路由协议0447将事务路由到执行的slaVe05上。对文件备份以保证文件支持事务的原子性,对文件加锁以保证文件支持事务的隔离性,从而确保在文件环境中的事务的二次提交。还包括设定时间机制,当事务到达超过该设定的时间,将彻底终止事务的执行。用户的实现方法包括用户端定义policy(策略),多用户复用同一个app(应用),一个app对应一个domain(域),一个domain下有多个components(组件),多个components可以复用一个虚拟机,一个虚拟机使用多个物理资源,通过外围的Monitor(监控器)(图中未示出)监控物理资源的状态;Component为虚机实例(virtualinstance),即虚拟机实例。请参阅图4,是本发明之二的从用户请求提交到执行结果返回的总流程图,是transaction执行的总流程图。服务交付平台(SDP)01提交用户的请求,请求的传送通过JSDL协议传到master04中的JSDL代理模块041。ApplicationProgram042将全局事务传到事务管理器044,事务管理器044中的事务监控器0441监控到事务请求,给该事务分配唯一的标记符,记录事务的生命周期,并将事务放到等待队列中。同时引发事务调度器0442对事务进行调度,事务调度器0442确定事务的优先级别,比如,不同的事务可以设置不同的优先级别,比如有些事务可能耗费的资源比较多,可以等其它轻量级的事务执行完成后再执行该事务,确定优先级别后,事务调度器0442在资源状态机0433中查看虚拟机051的状态,同时在资源引用模型0432中查看host、存储、网络资源的状态信息,通过事务监控器0441监控各种资源的使用情况,通过这些资源状态确定transaction是否可以执行。如果transaction可以执行,则根据元数据信息043213中的routing(路由)确定transaction的路由。之后采用路由协议将transaction提交出去。具体步骤如下步骤401,master04收到用户的Request(请求)。步骤402,JSDL.doc将request翻译成多个transaction,并计算每个transaction执行所需的资源。步骤403,事务监控器0441监控到transaction,并将transaction放在队列中。步骤404,引发scheduler(调度器),采用一定的算法确定事务的先后执行顺序,这里的算法是指前面所说到的现有的通用算法。步骤405,kheduler在ResourceStateTable(资源状态表格)中查看资源的状态。步骤406,判断事务是否可以执行,若可以执行,则转到步骤408,否则转到步骤407步骤407,当前不可执行,拒绝(Rollback)该事务请求。步骤408,scheduler根据ResourceReferenceTable中的信息和调度策略确定transactionroutingIj^yIvslave05Jl。步骤409,Router(路由器)通过RoutingProtocol(路由协议)将transactioncommit出去。步骤410,transaction在slave05中实施步骤411,判断事务是否是读事务,如果是,转到步骤413,否则转到事务412;步骤412,RMAgent(资源管理器代理)将资源更新的信息上报到masterOl并在RM(资源管理器)中的RRT(资源引用表格)和RST(资源状态表格)中更新信息;步骤413,整个过程结束。请参阅图5,图5给出了master04的工作流程图。master04中的PublicReceiver(公共接收器)收到事务请求,区分是读事务还是写事务,如果是读事务,则将事务发送到I^ransaHandler(事务处理器),查看ResultQueue(结果队列)中是否有用户请求的读信息,若有,则查看结果,并返回到客户端。如果是写事务,则将事务放到WaitingQueue(等待队列)中,通过TransFilter(事务过滤器)对事务进行过滤,过滤完成后将事务放在发送队列中,将事务发送到slave中。系统中有以下几类数据1、完全不会变化的数据比如Host的imid(通用唯一识别码)之类的数据,只要产生以后就不可能变化。2、很少变化的数据比如vm(虚拟机)的cpu、内存等属性,虽然也会发生变化,但是不会经常性地变化。3、经常变化的数据比如vm的状态,经常发生变化。针对的数据不同,采用不同的策略来处理它们。针对第一、二类的数据,可以持久化在系统中,同时采用一个简单的同步策略,将数据同步到本地。对第三类的数据,不持久化在本地,但是可以采用缓存的策略来减少系统向后台的访问次数。优化的方案是维护若干个socket(套接字)对象,形成一个socket池,每次需要发送指令的时候就到socket池里面获取一个socket对象,用完后便放回池里。这样,可以通过维护少量的socket,从而改善性能。详细步骤如下步骤501,PublicReceiver收至Ijtransaction请求;步骤502,判断是否是写请求,若是,转到步骤503,否则转到步骤509;步骤503,将transaction放在等待队列中;PM504,TransactionFiltertransactioniiifiliit;步骤505,判断事务是否过滤成功,若是,则转到步骤506,否则转回到事务503;步骤506,将transaction放在发送队列中;步骤507,transactionSender将事务发送给Slave;步骤508,Slave05将处理事务,并将事务处理结果返回给PrivateReceiver(公共);步骤509,transaction发至IjTransHandler;步骤510,查看Cache(缓存)的信息结果队列;步骤511,判断是否找到请求的虚拟机信息,若是,转到步骤514,否则换到步骤503;步骤512,将结果发到结果队列中,并cache结果信息;步骤513,在master04中更新VM(虚拟机)和Host信息;步骤514,通过ResultSender(结果发送器)将结果返回到客户端,即指服务交付平台SDPO1。master04将事务传送到slave05中实施,slave05中调用Iibvirt来执行对虚机的操作,并将执行的结果返回到master04中。图6a给出了slave的读事务的工作流程图。读事务的执行过程步骤如下步骤6101,master04将写事务传到PrivateReceiver;步骤6102,写事务进入写等待队列;步骤6103,将即将执行的事务传送到TransactionWHandler(写事务处理器);步骤6104,TransactionWHandler(写事务处理器)将事务传到Libvert;步骤6105,Libvert调用VMM执行事务;步骤6106,Hypervisor将执行结果返回到Libvert;步骤6107,进入到VMEventCallback(虚机事件回调);步骤6108,返回结果到ResultR(读的结果)队列中;步骤6109,结果返回到master04;步骤6110,结果返回到I^rivateSender(私有发送者)。图6b给出了slave的写事务的工作流程图。写事务的执行过程步骤如下步骤6201,master04将读事务传到PrivateReceiver;步骤6202,读事务进入读等待队列;步骤6203,将即将执行的事务传送到Transaction!Handler;步骤6204,判断所需读取的是否是CachedVM(缓存的虚机)状态信息,若是,转入到步骤6210,否则转入到步骤6205;步骤6205,判断虚机是否是空闲的,若是,转入到步骤6206,否则转入到步骤6209;步骤6206,调用Libvirt;步骤6207,Libvert调用VMM处理事务;步骤6208,将结果返回到结果队列;步骤6209,等待虚机到空闲状态;步骤6210,在结果队列中查看信息;步骤6211,将结果发送到PrivateReceiver;步骤6212,将结果返回到master04。图7是事务监控器0441的工作任务流程图。事务监控器0441是事务管理器044的核心,它首先负责监控事务从到达到提交或rollkick,整个过程中事务的生命周期。当该事务到达时,记录事务的状态为到达状态;当事务经资源状态机判断不能提交时,则记录事务状态为失败状态,并清空事务记录;当事务执行后,根据执行的成功与否,分别设置为成功或失败状态,并清空事务记录。具体过程如下步骤701,TM(事务管理器)监控到transaction请求;步骤702,为transaction分配一个UniqueIdentifier(唯一标记符);步骤703,将transaction放到队列中,并设置transaction的状态为“等待”;步骤704,判断事务是否被rollkick了,若是,转入到步骤705,否则转入到步骤708;步骤705,设置transaction的状态为“运行”状态(master中);步骤706,返回错误信息;步骤707,判断事务是否被Commitment了,若是,转入到步骤708,否则转入到步骤706;步骤708,清空transaction记录。图8给出了事务调度器0442的执行过程图。事务调度器0442负责事务级别的调度。具体过程如下一个负载出去要经历的过程,做scheduler(调度器)就要考虑这些因素。可以考虑将20多个请求分成几类,每一类设置一个不同的优先级别,比如对于某些轻量级的请求,占用资源和时间不多,则可以让这些请求先执行。若是将每一个请求都设置不同的优先级别,则由于算法本身就耗CPU,也未必是一个最佳的折中。衡量标准在进程、线程级别,所耗CPU、Memory、硬盘资源。事务调度器0442的执行过程如下步骤801,收到事务监控器0441传送过来的事务请求。步骤802,采用调度算法确定事务的优先级;步骤803,判断事务是否可以潜在地并行执行,若是,转入到步骤804,否则转入到步骤809;步骤804,确定可以并行执行的事务,并打上相同的彩色标记;步骤805,采用资源冲突调度方法,确定并行事务的优先级别;步骤806,确定事务的路由;步骤807,在RRB(资源引用表格)中查看资源信息;步骤808,在Matemachine(状态机)中查看资源的状态;步骤809,判断事务是否现在可以运行,若是,转入到步骤808,否则转入到步骤810;步骤810,判断事务是否是循环等待事务,若是,转入到步骤811,否则转入到步骤809;步骤811,通过状态窗口给该事务设置一定的优先级;步骤812,将事务放在等待队列中。图9给出了资源状态机0433中的虚拟机状态转移图。虚拟机状态的转移图以逻辑的网络形式来实施。有限状态机是一种非常广泛的软件设计模式,是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种消息事件。与其他常用的设计模型有所不同,程序员要想在自己的软件中加入有限状态机,必须再额外编写一部分用于逻辑控制的代码。有限状态机分为确定的有限状态机和非确定的有限状态机。FSM(有限状态机)经常用来模型化反应式系统。反应式系统对外部消息和内部事件作出反应,属于外部消息和内部事件驱动系统。在确定性的反应式系统中,输入消息和事件的顺序和数值决定了系统响应的顺序和数值。分析每个状态,看其是否应该分解。通过对状态的层次结构分解,将一个大的状态分解为若干子状态,分解层数的多少取决于系统的复杂程度;再逐步细化,直到所有的状态都是不可再分解的,确定各状态之间的转移形成。这里采用状态机的主要目的是为了在体系中增加一层资源控制器,使得可以在二次提交之前确定事务是否可以执行,并可以处理并发性事务,将分布式处理变成集中处理。在本发明的一个或多个实施例中,状态机包括如下几个状态,Running901,Off903,Sle印ing904,Paused902状态以及这些状态的转移机制及生命周期。Rurming901状态是指虚拟机的运行状态,0ff903状态是指虚拟机处于关闭的状态(Poweroff),Sle印in904g状态在这种状态下,所有风扇全部停转,只是显示灯偶尔亮一下,这种状态根本不需要关机,在真实的电脑中,这种状态和0ff903状态可能还是有一定的区别,但是在VM的情况下,则已经不占用资源了,无需再用关机操作了,PauSed902状态是一种暂停状态,可能还在耗用部分资源,所以需要关机。Running901下的子状态是由用户自定义的可编程状态(Programmablestate)9011,这个状态是在running901状态中的子状态,比如中断等等(中断的类型很多),与具体的需求有关。这个可编程的状态9011之所以增加在我们的发明中,因为虚拟机在运行时,用户可以定义各种策略,每一种策略,比如中断等都是可编程的。状态机的跳转路线算法,通过命令操纵虚机转移到何种状态。当action发生时,有些action导致虚拟机051转移到另一个状态,有些action不会使虚机状态发生转移。状态迁移表通过表的方式表示出状态之间的转换。当虚拟机运行在rUnning901状态时,通过操作Suspend(暂停)可以转移到Paused902状态,通过操作Sle印可以转移到Sle印ing904状态,通过操作Poweroff可以转移到0ff903状态,也即Running901状态在不同的操作下可以转移到其它的三种状态。虚拟机在Rurming901状态时,还可以迁移到其它的主机(Host)上,并且状态不变。(当虚拟机运行在Paused902状态时,通过操作Resume可以转移到Rurming901状态,通过操作Poweroff可以转移到0ff903状态。当虚拟机运行在Sle印ing904状态时,通过操作Wakeup可以转移到Running901状态,通过操作Poweroff可以转移到0ff903状态。当虚拟机运行在0ff903状态时,通过操作Mart可以转移到RUnning901状态。在本发明中,状态之间的转换通过表的查找过程完成,当要在状态机中增加新的状态和控制逻辑,只需在状态表中修改即可,甚至可以动态修改,在状态变化不是很复杂的情况下,这是一种非常可取的方法。该方法的代价是速度。对迁移表的遍历要花费时间,而且需要编写大量的代码支持迁移表。创建一个描绘迁移的数据表,该表被一个处理时间的引擎解释。该引擎负责查找与实践匹配的迁移,并调用响应的动作,并更改状态,这种实现的好处是状态机的逻辑全部集中在一个地方,并且动作使用与实现分离,允许运行时动态改变状态机逻辑。图10给出了资源引用的模型图。资源引用模型的目的是为了从上到下引用资源,包括VM资源、host上的资源、存储资源、网络资源等等,通过分布式哈希表的方式来实现。资源的引用从数据中心,到group,到host,到VM,到虚拟硬件;或从数据中心,到group,到host,到物理硬件资源;对每个资源都进行唯一的身份标记,每个资源都有唯一的身份标记符;采用伪随机数的方法对资源进行引用。如图所示,对于一个数据中心而言,其根地址1011就是数据中心101的地址;一个数据中心下有多个组Group102,可以通过根地址1011引用到组地址11021,组地址21022,组地址η10;—个groupl02下有多个主机host103,可以通过组地址1021引用到主机地址11031,主机地址21032,主机地址η103η;一个host103上有多个虚机104,可以通过主机地址11031引用到虚机地址11041,虚机地址21042,虚机地址31043。虚机上有多个虚拟硬件。同样的引用方法也可以用到对主机资源,存储资源,网络资源的引用。引用采用分布式哈希表DHT实现,在大规模的资源索引和查找中,DHT的速度远快于关系型数据库。为了实现资源的引用,这里采用统一资源身份系统,对于要引用的每一个资源,都有一个唯一的身份标记符,在本发明的所用资源信息中都应该有identitysystem,通过identitysystem把整个系统结合起来。引用模型和元数据关系密切,两者是直接相连的。通过dfs实现referencemodel,里面有所有节点的管理信息。由ID系统来做逻辑路由,把name和IP分开,可以实现网络的save。每一个component标记一个IP地址,相当于一层overlay,由ID系统建立逻辑图,逻辑方法。在本发明的一实施例中,会配置两套lamp,两套instance,一套给用户,一套给开发人员用。图11给出了本发明的分布式事务提交策略。本发明使用虚拟机状态机对标准DTP进行简化,当事务到达后,首先经过状态机来判断事务是否可以执行,如果事务不能执行,则拒绝该事务,则以此机制来保证事务执行后被rollkick的几率几乎为0,。但是不可避免,资源可能会在事务运行过程中出现异常现象,从而导致transaction的部分分支执行失败,这里再采用文件系统上的模拟方法来支持二阶段事务提交。传统的事务处理技术主要应用于数据库系统。而文件系统则不支持事务处理,这使得多数据存储事务处理变得异常复杂。可以在文件系统上模拟支持两阶段事务提交。具体过程如下步骤1101,查看状态机中的资源状态信息;步骤1102,根据资源状态机中的状态来判断transaction是否可以执行,若可以执行,转移到步骤1104,否则转移到步骤1103;步骤1103,拒绝该事务的执行,不存在事务提交的情况,在该种情况下,事务提前被返回;步骤1104,在虚拟机中执行事务,执行过程中会耗用host资源,网络资源、存储资源;步骤1105,为了防止回滚的发生,事先对文件表格进行备份;步骤1106,对事务执行所用到的共享资源上锁;步骤1107,事务管理器判断事务执行是否结束,如果结束,转移到步骤1109,否则转移到步骤1108;步骤1108,等待,直到事务执行结束;步骤1109,事务管理器通知资源管理器准备第一阶段提交;步骤1110,判断是否所有数据存储都可以提交,若可以,转移到步骤1112,否则转移到步骤1111;步骤1111,通知所有数据存储回滚其操作,回滚事务;步骤1112,第二阶段提交事务。图12给出了用户请求执行的逻辑关系和层次。该图描述了用户请求执行的逻辑关系和层次,其中所涉及到的资源,从用户、应用、事务、域,到虚机实例、物理设施能被统一地定位。UserID(用户ID)121指用户登录后为用户分配的一个用户号,APP122指用户请求使用的应用程序,Domain指一个逻辑的网络,比如,在一个公司内部,不同的部门使用不同的虚拟网络,即domain,Component指VMinstance。从图中可以看出,由用户端定义policy,一个用户可以同时运行多个应用,UserID11211同时对应应用Appl1221和App21222;多用户可复用同一个app,UserIDl1211和UserID21212复用一个应用App21222;—个app对应一个domain,Appl1221对应Domain(域)11231;一个domain下有多个components,Domaill231下有Componentl1241禾口Component〗1242,component中运行的是虚机实例程序;component弓丨用下面的VM,一个component可以引用一个VM,一个VM可以被多个Component引用,Componentl1241引用VMl1251,Component21242和Component31243同时引用VM21252,从而实现一个VM可以同时被多个Domain使用,而在用户看来,一个VM只能为一个Domain使用,VM没有跨domain,保证了domain之间的逻辑上的隔离性。VM下面是物理资源,Monitor监控物理资源的状态。通过ID系统,用户可以reference下面的物理资源。同时也可以实现从下到上的引用,若某个物理资源出错,需要向上报到某一个用户,这里采用资源分层的策略来实现。如图所示,分为IaaS,PaaS,MaS层,IaaS是基础设施资源层,PaaS是平台层,SaaS是应用服务层。虚拟机125和物理资源1处于资源的最底层IaaS层,因为它们是运行用户应用的载体,这里通过建立虚拟机和其运行所需要的物理资源之间的逻辑对应关系,采用树形结构来实现。中间的Domain123和Component124处于I^aaS层,该层中的Domain123指一个虚拟网络,比如在一个公司内,财务部和市场部分别用不同的虚拟网络,Component1是指VMinstance,一个domain123下可以跑多个虚拟机实例,这样可以建立domain123和虚拟机实例的逻辑对应关系,同时虚拟机实例运行的载体是虚拟机125,这样便可以建立component1与下面的VM125之间的逻辑关系,一个VM125可以给多个component124使用,这多个component124既可以属于同一个domain123内,也可以属于不同的domain123,这样就可以实现一个虚拟机125被多个domain123使用,而在用户看来domain123之间是隔离的,没有任何联系的。最上层定位为^aS层,包括用户ID和应用,用户是应用的发起者,定义使用应用的各种策略,一个用户可以使用多个应用,一个应用也可以被多个用户使用,这也是应用的复用,也称之为多房客。综上所述,本发明公开了一种对虚拟机、虚拟网络、虚拟存储资源进行集中管理来响应大规模并行事务请求,为用户提供按需交付的虚拟基础设施服务的方法。具体而言,用户通过web浏览器(客户端)发出应用请求,请求到达管理核心模块,管理核心模块分析用户的请求,计算出执行请求所需的虚拟资源,将请求提交到下面的虚拟资源执行,执行完成后将结果返回到客户端。大规模的应用请求可以并行执行,分布式事务处理体系的使用避免了资源使用冲突,虚拟机状态机的使用可以实现并发性事务的处理。需要一个定位系统,逻辑地定位虚机和存储单元,更深一步的安全目的。上述实施例是提供给熟悉本领域内的人员来实现或使用本发明的,熟悉本领域的人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。权利要求1.一种在虚拟化环境中管理资源的系统,其特征在于,包括OSS以及与其相连的TMN,还包括服务交付平台、master、slave、网络交换机以及共享存储设备,所述的slave上运行有至少一个虚拟机,其中所述的服务交付平台与所述的OSS相连,并且向所述的master请求资源;所述的master分别与所述的网络交换机和slave相连并且接收所述的服务交付平台发出的请求信号,它控制slave及slave上运行的虚拟机;所述的slave的数量至少为一个,它与所述的网络交换机、共享存储设备以及所述的TMN相连,并且与所述的master进行交互;所述的共享存储设备作为共享存储,分别与所述的网络交换机、slave以及master相连。2.根据权利要求1所述的在虚拟化环境中管理资源的系统,其特征在于,所述的TMN包括相连的WS和EMS,所述的WS与所述的OSS相连,所述的EMS与所述的slave相连,所述的EMS管理的设备包括物理设备和虚拟设备。3.根据权利要求1所述的在虚拟化环境中管理资源的系统,其特征在于,所述的每一slave包括若干个虚拟机、与所述的若干个虚拟机相连的VMM以及与所述的VMM相连的若干个硬件,所述的每一slave里的VMM与其所在的slave里的虚拟机相连,或者除了与其所在的slave里的虚拟机相连还与其他的slave里的虚拟机相连。4.根据权利要求1或3所述的在虚拟化环境中管理资源的系统,其特征在于,所述的VMM包括一vSwitch,所述的硬件包括Nic,所述的Nic分别与所述的vSwitch以及所述的网络交换机相连,所述的共享存储设备存储VMimage和用户文件信息。5.根据权利要求1所述的在虚拟化环境中管理资源的系统,其特征在于,所述的master包括JSDL代理模块、ApplicationProgram、资源管理器和事务管理器,其中所述的JSDL代理模块对JSDL文件中用户定义的请求与policy信息进行解析,将其应用请求分解成transaction,并求解出每个transaction执行所需的资源,将事务请求发送给所述的ApplicationProgram,所述的JSDL文件是从服务交付平台通过JSDL协议传到JSDL代理模块的;所述的ApplicationProgram接收JSDL代理模块传过来的请求,定义事务边界内的事务和访问资源,并指定一系列的包括资源的operations;所述的资源管理器集中管理计算机资源,包括主机资源、虚拟机资源、存储资源和网络资源,负责资源的统一定位和安全;所述的事务管理器对transaction的生命周期进行控制,包括确定事务的开始和结束,以及对transaction的调度和资源管理器中的信息进行交互来确定transaction的路6.根据权利要求5所述的在虚拟化环境中管理资源的系统,其特征在于,所述的事务管理器包括一事务监控器,该事务监控器用于监控transaction,采用虚拟时间机制来统一transaction的时间,并将transaction放到等待队列中。7.根据权利要求5或6所述的在虚拟化环境中管理资源的系统,其特征在于,所述的事务管理器还包括一事务调度器,该事务调度器计算transaction执行所需的计算机资源,确定transaction的优先级别,将优先执行的transaction打上标记;确定可并行执行的transaction并标记;规划transaction执行的先后顺序;通过查看资源管理器中的资源信息来确定transaction可否执行以及在哪台slave上执行。8.根据权利要求5或6或7所述的在虚拟化环境中管理资源的系统,其特征在于,所述的事务管理器还包括一事务路由器,该事务路由器确定事务路由;当某个slave不可用时,该事务路由器将transaction路由到另一可用的slave上。9.根据权利要求7所述的在虚拟化环境中管理资源的系统,其特征在于,所述的资源管理器包括一资源状态机,该资源状态机存储事务运行所需的资源的状态信息。10.根据权利要求9所述的在虚拟化环境中管理资源的系统,其特征在于,所述的资源状态机存储的状态信息包括虚拟机状态、主机状态、存储状态以及网络状态。11.根据权利要求9所述的在虚拟化环境中管理资源的系统,其特征在于,所述的资源状态机包括状态机控制器以及分别与该状态机控制器相连的检测器、比较器、时钟、注册器和虚机状态机表格,所述的检测器和比较器实现对状态及其改变进行审核和比较,所述的状态机控制器通过配置所述的注册器来获得所需的功能。12.根据权利要求11所述的在虚拟化环境中管理资源的系统,其特征在于,所述的虚机状态机表格存储的虚拟机状态有Running、0ff、PauSed以及Sloping四个主状态,其中,Running状态中进一步包括用户自定义的可编程状态。13.根据权利要求5或9所述的在虚拟化环境中管理资源的系统,其特征在于,所述的资源管理器还包括一资源引用模型,该资源引用模型采用树形结构的元数据表来表示资源的统一标记符与资源的具体位置的映射关系,建立资源的引用关系。14.根据权利要求13所述的在虚拟化环境中管理资源的系统,其特征在于,所述的资源引用模型包括相连的资源引用表格和资源信息表格,其中所述的资源引用表格中包括资源的身份、资源描述以及资源的元数据信息,给每个资源一个唯一的身份标记,通过资源的名字来找到资源,将全局的资源构成一个逻辑的整体,所述的元数据信息里包括资源的逻辑地址信息,通过分布式hash表来实现资源的逐层引用,直至找到该资源的具体位置;所述的资源信息表格是各类资源的信息描述,所述的资源包括网络资源、存储资源以及服务器资源。15.根据权利要求5或9或13所述的在虚拟化环境中管理资源的系统,其特征在于,所述的资源管理器还包括一资源管理模块,该资源管理模块统一管理物理和虚拟资源。16.根据权利要求15所述的在虚拟化环境中管理资源的系统,其特征在于,所述的资源管理模块所管理的资源包括资源访问验证、访问控制以及资源配置信息。17.根据权利要求1或5所述的在虚拟化环境中管理资源的系统,其特征在于,所述的slave还包括一资源管理器代理模块,与所述的资源管理器相连,通过TCP协议向master汇报资源状态信息,通过CEPH-ext向master汇报资源位置信息;一事务实现模块,与所述的事务管理器相连,负责事务的提交;一Libvirt模块,与所述的事务实现模块相连,它为受支持的VMM实现的常用功能提供通用的API。18.根据权利要求1所述的在虚拟化环境中管理资源的系统,其特征在于,还包括与所述的master相连的Host代理、DFSAPI和网络API,其中Host代理,向master汇报slave上的虚拟机的状态信息,并在状态发生改变时上报到master;DFSAPI,向master提供系统中存储资源信息的接口;网络API,向master提供系统中网络资源信息的接口。19.根据权利要求1或2所述的在虚拟化环境中管理资源的系统,其特征在于,所述master以及若干slave位于一个组中,若干个组均设置于一个数据中心里,资源引用的顺序为从数据中心到一个组,从一个组到slave,然后到虚拟机,最后到虚拟机中的硬件;或从数据中心到一个组,从一个组到一个slave,最后到slave上的物理硬件;对每个资源都进行唯一的身份标记,每个资源都有唯一的身份标记符;采用伪随机数的方法对资源进行引用。20.一种如权利要求1所述的在虚拟化环境中管理资源的系统的实现方法,其特征在于,该方法采用分布式事务处理实现虚拟化环境中的资源管理,包括将事务运行在虚拟机上,事务的执行首先需要虚拟机的资源,还需要支持事务执行的master上存储的slave的服务器资源、网络资源以及存储资源;事务的执行改变上述各种资源的状态。21.根据权利要求20所述的在虚拟化环境中管理资源的系统的实现方法,其特征在于,该方法进一步包括事务监控器监控事务的到达后,启动事务调度器到资源管理器的资源状态机中查看资源状态信息;根据资源的状态和策略判断事务是否可以执行。22.根据权利要求20或21所述的在虚拟化环境中管理资源的系统的实现方法,其特征在于,所述的根据资源的状态和策略判断事务是否可以执行,即如果没有可用的资源,将拒绝该事务的执行;如果有可用的资源,事务将继续执行;如果是写事务,则对资源加锁。23.根据权利要求22所述的在虚拟化环境中管理资源的系统的实现方法,其特征在于,还包括确定有可用的资源后,事务调度器通过策略确定事务应该在哪些slave上执行;通过资源引用模型找到资源的位置;通过路由协议将事务路由到执行的slave上。24.根据权利要求22所述的在虚拟化环境中管理资源的系统的实现方法,其特征在于,还包括事务被拒绝后,将事务放在等待队列中,等待下一次的执行;再次查询资源状态机,看是否有可用的资源。25.根据权利要求20所述的在虚拟化环境中管理资源的系统的实现方法,其特征在于,还包括以下步骤对文件备份以保证文件支持事务的原子性,对文件加锁以保证文件支持事务的隔离性,从而确保在文件环境中的事务的二次提交。26.根据权利要求20所述的在虚拟化环境中管理资源的系统的实现方法,其特征在于,还包括事务的执行提交后,资源状态信息、资源路由信息和资源配置信息发生改变,通过资源管理器代理模块将新的资源信息上报到master。27.根据权利要求20所述的在虚拟化环境中管理资源的系统的实现方法,其特征在于,还包括设定时间机制,当事务到达超过该设定的时间,将彻底终止事务的执行。28.根据权利要求20所述的在虚拟化环境中管理资源的系统的实现方法,其特征在于,用户的实现方法包括用户端定义policy,多用户复用同一个app,一个app对应一个domain,一个domain下有多个components,多个components可以复用一个虚拟机,一个虚拟机使用多个物理资源,通过外围的Monitor监控物理资源的状态;Component为虚机实例。全文摘要本发明公开了一种在虚拟化环境中管理资源的系统,包括OSS以及与其相连的TMN、服务交付平台、master、slave、网络交换机及共享存储设备。slave上运行虚拟机,服务交付平台与OSS相连,并向master请求资源;master分别与网络交换机和slave相连并且接收服务交付平台发出的请求信号,它控制slave及其上运行的虚拟机;slave与网络交换机、共享存储设备及TMN相连;共享存储设备作为共享存储,分别与网络交换机、slave以及master相连。本发明可以高效可靠地对虚拟机资源、虚拟存储资源、虚拟网络资源进行统一管理,实现虚拟化环境中各种资源的事务级的管理。文档编号G06F9/455GK102103518SQ201110043959公开日2011年6月22日申请日期2011年2月23日优先权日2011年2月23日发明者汤传斌,熊丽,王彦新申请人:运软网络科技(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1