虚拟机快照处理方法、装置及系统与流程

文档序号:17661040发布日期:2019-05-15 22:22阅读:229来源:国知局
虚拟机快照处理方法、装置及系统与流程

本申请涉及存储技术领域,尤其涉及一种虚拟机快照处理方法、装置及系统。



背景技术:

虚拟机(virtualmachine,vm)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。vm运行在主机上,具有独立的运行环境,有利于提高主机的安全性,而且使得单个主机上可以运行多个操作系统,因此越来越受欢迎。

基于vm的一系列优势,越来越多的互联网应用开始运行在vm上。互联网应用的业务流量波动较大,当互联网应用的业务高峰到来时,需要在短时间内启动大量vm。vm启动时依赖于某个磁盘快照,磁盘快照包含vm运行所需的操作系统和其它数据。磁盘快照一般存储在快照中心中。

对于vm启动过程中需要读磁盘块时,首先要在vm的磁盘中读取,当未在vm的磁盘中读取到时,向快照中心请求。当短时间内启动大量vm时,快照中心可能需要并发处理大量请求,快照中心的并发压力较大。



技术实现要素:

本申请的多个方面提供一种虚拟机快照处理方法、装置及系统,用以减轻快照中心的并发压力。

本申请实施例提供一种虚拟机快照处理方法,包括:

接收第一虚拟机在启动过程中发出的读磁盘请求,所述读磁盘请求用于请求所述第一虚拟机启动所需磁盘快照中的第一磁盘块;

分别在所述第一虚拟机的磁盘和快照缓存中查询所述第一磁盘块;所述快照缓存存储有所述磁盘快照中使用频率符合设定要求的磁盘块;

当在所述第一虚拟机的磁盘或所述快照缓存中查询到所述第一磁盘块时,向所述第一虚拟机返回所述第一磁盘块。

本申请实施例还提供一种虚拟机快照处理装置,包括:

接收第一虚拟机在启动过程中发出的读磁盘请求,所述读磁盘请求用于请求所述第一虚拟机启动所需磁盘快照中的第一磁盘块;

分别在所述第一虚拟机的磁盘和快照缓存中查询所述第一磁盘块;所述快照缓存存储有所述磁盘快照中使用频率符合设定要求的磁盘块;

当在所述第一虚拟机的磁盘或所述快照缓存中查询到所述第一磁盘块时,向所述第一虚拟机返回所述第一磁盘块。

本申请实施例还提供一种电子设备,包括:存储器和处理器;

所述存储器,用于存储程序;

所述处理器,耦合至所述存储器,用于执行所述程序以用于:

接收第一虚拟机在启动过程中发出的读磁盘请求,所述读磁盘请求用于请求所述第一虚拟机启动所需磁盘快照中的第一磁盘块;

分别在所述第一虚拟机的磁盘和快照缓存中查询所述第一磁盘块;所述快照缓存存储有所述磁盘快照中使用频率符合设定要求的磁盘块;

当在所述第一虚拟机的磁盘或所述快照缓存中查询到所述第一磁盘块时,向所述第一虚拟机返回所述第一磁盘块。

本申请还提供一种云计算系统,包括:计算集群、存储集群和快照中心;

所述计算集群,用于提供第一虚拟机的计算资源,所述第一虚拟机运行于所述计算集群中;

所述存储集群,用于提供所述第一虚拟机的磁盘以及快照缓存,所述快照缓存存储有所述第一虚拟机启动所需磁盘快照中使用频率符合设定要求的磁盘块;

所述快照中心,用于存储所述磁盘快照;

所述存储集群包括存储管理设备,所述存储管理设备用于:

接收第一虚拟机在启动过程中发出的读磁盘请求,所述读磁盘请求用于请求所述第一虚拟机启动所需磁盘快照中的第一磁盘块;

分别在所述第一虚拟机的磁盘和快照缓存中查询所述第一磁盘块;所述快照缓存存储有所述磁盘快照中使用频率符合设定要求的磁盘块;

当在所述第一虚拟机的磁盘或所述快照缓存中查询到所述第一磁盘块时,向所述第一虚拟机返回所述第一磁盘块。

在本申请实施例中,为虚拟机增加快照缓存,存储虚拟机启动过程中所需磁盘快照中使用频率符合设定要求的磁盘块,基于此,当接收到虚拟机在启动过程中发出的读磁盘请求时,分别在虚拟机的磁盘和快照缓存中查询虚拟机请求的磁盘块,当在虚拟机的磁盘或快照缓存中查询到虚拟机请求的磁盘块时返回给虚拟机。由于快照缓存中存储的是磁盘快照中使用频率符合设定要求的磁盘块,可以增大读磁盘请求命中所需磁盘块的概率,降低向快照中心请求磁盘块的概率,从而减轻快照中心的整体并发压力。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请一示例性实施例提供的示例性存储计算分离的云计算架构的示意图;

图2a为本申请另一示例性实施例提供的io线程和lazyload线程在第一vm启动过程中处理磁盘块的一过程示意图;

图2b为本申请又一示例性实施例提供的io线程和lazyload线程在第一vm启动过程中处理磁盘块的另一过程示意图;

图3a为本申请又一示例性实施例提供的虚拟机快照处理方法的流程示意图;

图3b为本申请又一示例性实施例提供的虚拟机快照处理方法的流程示意图;

图4为本申请又一实施例提供的一种虚拟机快照处理装置的结构示意图;

图5为本申请又一实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

针对现有技术存在的快照中心并发压力较大的问题,本申请实施例提供一种解决方案,主要原理是:为vm增加快照缓存,存储vm启动过程中所需磁盘快照中使用频率符合设定要求的磁盘块,基于此,当接收到vm在启动过程中发出的读磁盘请求时,分别在vm的磁盘和快照缓存中查询vm请求的磁盘块,当在vm的磁盘或快照缓存中查询到vm请求的磁盘块时返回给vm。由于快照缓存中存储的是磁盘快照中使用频率符合设定要求的磁盘块,可以增大读磁盘请求命中所需磁盘块的概率,降低向快照中心请求磁盘块的概率,从而减轻快照中心的整体并发压力。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1为本申请一示例性实施例提供的存储计算分离的云计算架构的示意图。如图1所示,该架构10包括:计算集群101、存储集群(ebs)102以及快照中心103。计算集群101可以是一个或多个。存储集群102也可以是一个或多个。快照中心103一般为一个,但不限于一个。

计算集群101包括多个计算节点。计算节点是具有一定计算能力的设备,一般包括处理器、内存和以太网控制器等组件。举例说明,计算节点可以是个人计算机、台式计算机、服务器等。计算集群101中的计算节点可以由同类型设备实现,也可以由不同类型设备实现。计算集群101主要负责向vm提供计算资源,vm可运行在计算集群101中的计算节点上。

存储集群102包括多台存储设备。存储设备是具有一定存储能力的设备,一般包括处理器、系统总线以及硬盘、内存等至少一块物理存储介质。举例说明,存储设备可以是服务器、台式计算机、个人计算机、手机、平板电脑、数据库等。服务器可以是常规服务器、云服务器、云主机、虚拟中心等。存储集群102中的存储设备可以是相同类型,也可以是不同类型。

除存储设备之外,存储集群102还包括存储管理设备。存储管理设备主要负责存储集群102的存储管理逻辑。在部署实现上,存储管理设备可独立于各存储设备,单独部署,或者,也可以部署于某个或某些存储设备上。存储集群102主要负责向vm提供存储资源,例如为各vm提供磁盘(vmdisk),即运行于计算集群101中的vm所需的磁盘位于存储集群102中,实现存储计算分离的架构。

快照中心103主要负责存储vm启动所需的磁盘快照,该磁盘快照包括vm启动过程中所需的操作系统和其它数据,但并不限于此。可选地,快照中心103可以采用存储代价较低的对象存储(objectstorage)方式。

计算集群101的计算节点上可以运行多个vm。在这些vm中,有些vm使用相同的磁盘快照,有些vm使用不同的磁盘快照。快照中心103中存储有各vm需要使用的磁盘快照。对不同vm来说,无论使用的磁盘快照是否相同,其依赖于磁盘快照的启动过程均类似。为便于描述和区分,本实施例以第一vm为例进行说明。其中,第一vm可以是计算节点上运行的任一vm。

在用户需要运行第一vm的情况下,可在存储集群102中为第一vm创建磁盘。例如,用户可以通过存储管理设备提供的命令界面,向存储管理设备输入磁盘创建指令。磁盘创建指令会因存储系统的不同而不同。存储管理设备可根据磁盘创建指令,在某个或某些存储设备中为第一vm创建一磁盘。其中,在第一vm启动过程中,第一vm的磁盘主要用于存储第一vm启动过程中所需的磁盘快照。

在本实施例中,磁盘快照包括多个磁盘块(block),每个磁盘块按照顺序被分配一个索引号(index)。其中,磁盘块是磁盘快照的最小存储单位,也是最小加载单位。其中,不同磁盘块的大小可以相同,也可以不相同。在磁盘块大小相同的情况下,并不限定磁盘块的大小,例如可以一个磁盘块是200mb、300mb或500mb等。

在第一vm启动过程中,第一vm需要使用某个磁盘块(即需要读磁盘)时,可以向存储管理设备发出读磁盘请求。存储管理设备根据该读磁盘请求,在第一vm的磁盘中查询第一vm请求的磁盘块。当在第一vm的磁盘中查询到第一vm请求的磁盘块时,向第一vm返回查询到的磁盘块;当未在第一vm的磁盘中查询到第一vm请求的磁盘块时,向快照中心103请求该磁盘块。

在短时间内启动大量vm的情况下,若在各vm的磁盘中均未查询到各vm请求的磁盘块,此时存储管理设备需要集中向快照中心103为各vm请求磁盘块,从而造成快照中心103的并发压力较大。

为解决快照中心103并发压力较大的问题,存储管理设备在存储集群102中选择一块存储空间作为快照缓存(cache)。该快照缓存主要用于存储磁盘快中使用频率符合设定要求的磁盘块。可选地,使用频率符合设定要求的磁盘块可以是使用频率最高的若干个磁盘块,或者可以是使用频率大于设定频率阈值的若干个磁盘块,或者可以是使用频率在某个区间内的若干个磁盘块。其中,磁盘块的使用频率可以是磁盘块在一定时间内的使用频率,例如最近一周内的使用频率,或者最近一个月内的使用频率等。快照缓存中存储的磁盘块在第一vm读磁盘过程中被命中的概率较高,例如高于设定概率阈值。

基于此,在第一vm启动过程中,第一vm需要使用某个磁盘块(即需要读磁盘)时,可以向存储管理设备发出读磁盘请求,该请求携带有磁盘块的索引号,指向读磁盘请求所请求的磁盘块。为便于描述和区分,将读磁盘请求所请求的磁盘块称为第一磁盘块,第一磁盘块是第一vm启动所需磁盘快照中的某个磁盘块。存储管理设备接收第一vm在启动过程中发出的读磁盘请求,可以分别在第一vm的磁盘和快照缓存中查询第一磁盘块。当在第一vm的磁盘或快照缓存中查询到第一磁盘块时,向第一vm返回查询到的第一磁盘块,而不用向快照中心103请求第一磁盘块。当在第一vm的磁盘和快照缓存中都未查询到第一磁盘块时,向快照中心103请求第一磁盘块,并将快照中心103返回的第一磁盘块存储至第一vm的磁盘中,以供第一vm使用。

在本实施例中,通过快照缓存中存储磁盘快照中使用频率较高的磁盘块,一定程度上可增加第一vm在读磁盘时直接在存储集群102中命中所需磁盘块的概率,进而降低向快照中心103请求磁盘块的概率,减轻快照中心103的并发压力。

其中,快照缓存和第一vm的磁盘都是存储集群102中的存储空间上,存储管理设备查询快照缓存和第一vm的磁盘的性能基本相同,因此可以不对查询快照缓存和第一vm的磁盘的顺序做限定。例如,可以先查询快照缓存,当在快照缓存中未查询到第一磁盘块时,再查询第一vm的磁盘。或者,也可以先查询第一vm的磁盘,当在第一vm的磁盘中未查询到第一磁盘块时,再查询快照缓存。

进一步,考虑到第一vm的磁盘是第一vm专享的,而快照缓存是所有vm共享的,因此可以先查询第一vm的磁盘,当在第一vm的磁盘中查询到第一磁盘块时,无需查询快照缓存,这样可以减轻快照缓存的压力。

在上述实施例或下述实施例中,存储管理设备可以在第一vm启动之前,根据其它vm在启动过程中对磁盘快照中各磁盘块的使用情况,获得磁盘块中各磁盘块的使用频率;将各磁盘块中使用频率符合设定要求的磁盘块存储至快照缓存中。其它vm是指与第一vm使用相同磁盘快照且在第一vm之前启动的vm。当然,在第一vm启动过程中,存储管理设备也可以根据第一vm、除第一vm之外当前启动的其它vm以及在第一vm之前启动的其它vm在启动过程中对磁盘快照中各磁盘块的使用情况,获得磁盘块中各磁盘块的使用频率,根据各磁盘块的使用频率实时更新快照缓存中的磁盘块。快照缓存中存储的磁盘块是动态变化的。例如,存储管理设备可以统计各vm在最近一段时间内对磁盘快照中各磁盘块的使用情况,将使用频率最高的n个磁盘块存储至快照缓存中。n是预先设置的数值,是一正整数。

在一些实施例中,在第一vm启动过程中,存储管理设备一方面可以响应第一vm的读磁盘请求向第一vm提供磁盘块,另一方面可以以磁盘块为粒度采用懒加载(lazyload)向第一vm的磁盘中加载磁盘快照。这两方面的操作可以并行执行。

在一实现方式中,存储管理设备可以启动两个线程:lazyload线程和io线程。其中,lazyload线程主要负责以lazyload方式按照磁盘块加载顺序向第一vm的磁盘中加载磁盘快照中的磁盘块。io线程主要负责处理第一vm发出的读磁盘请求。

参见图2a,当第一vm需要读磁盘时,向io线程发出读磁盘请求(如图2a中的读磁盘请求①),该读磁盘请求携带有需要读取的磁盘块的索引号。io线程根据该读磁盘请求,依次查询第一vm的磁盘(如图2a中的读磁盘块②)和快照缓存(如图2a中的读磁盘块③);若在第一vm的磁盘或快照缓存查询到磁盘块索引号所标识的磁盘块,则返回给第一vm(如图2a中的返回磁盘块④);若未在第一vm的磁盘和快照缓存中查询到磁盘块索引号所标识的磁盘块,则指示lazyload线程向快照中心103请求磁盘块索引号所标识的磁盘块(如图2a中的读磁盘块⑤)。对lazyload线程来说,在接收到指示之前,以lazyload方式按照磁盘块加载顺序向第一vm的磁盘中加载磁盘快照中的磁盘块。当接收到指示时,lazyload线程可以优先从快照中心103读取该磁盘块索引号所标识的磁盘块并存储至第一vm的磁盘中(如图2a中的写磁盘块⑥),以便第一vm尽快使用到该磁盘块。在从快照中心103中读取到该磁盘块索引号所标识的磁盘块之后,lazyload线程可以继续以lazyload方式按照磁盘块加载顺序向第一vm的磁盘中加载磁盘快照中的磁盘块。

值得说明的是,在图2a中,假设快照缓存包括磁盘块d1、磁盘块d2、….磁盘块dk,快照中心包括磁盘块d1、磁盘块d2、….磁盘块dn,这仅作为示例并不限于此。

由上述可见,结合快照缓存中存储的磁盘快照中使用频率较高的磁盘块,io线程的命中率将有极大地提高,可以降低vm对lazyload线程的依赖度,因此可以控制lazyload线程的速度尽可能的慢,尽量降低lazyload线程对存储集群102和快照中心103的影响,甚至做到基本没有影响。

在一示例性实施例中,在快照缓存的基础上,lazyload线程以lazyload方式按照磁盘块加载顺序加载磁盘块的方式包括:按照磁盘块加载顺序,在快照缓存中查询需要向第一vm的磁盘中加载的磁盘块(如图2a中的读磁盘块⑦)。当未在快照缓存中查询到所述需要向第一vm的磁盘中加载的磁盘块时,向快照中心103请求所述需要向第一vm的磁盘中加载的磁盘块(如图2a中的读磁盘块⑤),并将快照中心103返回的所述需要向第一vm的磁盘中加载的磁盘块存储至第一vm的磁盘中(如图2a中的写磁盘块⑥)。当在快照缓存中查询到所述需要向第一vm的磁盘中加载的磁盘块时,将在快照缓存中查询到所述需要向第一vm的磁盘中加载的磁盘块存储至第一vm的磁盘中(如图2a中的写磁盘块⑥)。由此可见,当从快照缓存中读取到所述需要向第一vm的磁盘中加载的磁盘块时,无需向快照中心103请求,可以减少向快照中心103请求磁盘块的次数,进一步减轻快照中心103的压力。

进一步,lazyload线程在按照磁盘块加载顺序向第一vm的磁盘中加载磁盘块之前,可以从快照缓存或快照中心103中读取磁盘块优先列表,该磁盘块优先列表中存储有第一vm对磁盘快照中各磁盘块的使用顺序;将第一vm对所述各磁盘块的使用顺序作为磁盘块加载顺序。其中,将第一vm使用各磁盘块时的先后顺序作为lazyload线程加载磁盘块的顺序,有利于使第一vm启动过程中优先使用的磁盘块被优先加载至第一vm的磁盘中,有利于提高第一vm的读磁盘请求在磁盘中的命中概率,降低因第一vm读磁盘请求而查询快照缓存的次数,减轻快照缓存的压力,尤其是在短时间内大量vm启动的场景中,可减轻各vm的读磁盘请求对快照缓存造成的并发压力。

在一示例性实施例中,一种获得磁盘块优先列表的方式,包括:预先对第一vm在历史启动过程中对磁盘快照中各磁盘块的使用情况进行统计,获得第一vm对各磁盘块的使用顺序;根据第一vm对各磁盘块的使用顺序,将各磁盘块的索引号存储至磁盘块优先列表中;并将磁盘块优先列表存储至快照缓存或快照中心103中,以供lazyload线程使用。

进一步可选地,一种对第一vm在历史启动过程中对磁盘快照中各磁盘块的使用情况进行统计的方式包括:统计第一vm在历史启动过程中发出的读磁盘请求以及读磁盘请求的先后顺序;将读磁盘请求所请求的磁盘块的索引号收集起来,然后按照读磁盘请求的先后顺序,将各读磁盘请求所请求的磁盘块的索引号按序存储至磁盘块优先列表中。

在上述实施例中,主要描述了第一vm在启动过程中读磁盘的情况。除此情况之外,第一vm在启动过程中还会写磁盘。在第一vm启动过程中,可能需要对某个磁盘块进行写操作,例如修改某些数据。这些写操作可能涉及第一vm的磁盘中已经存在的磁盘块,也可能涉及第一vm的磁盘中不存在的磁盘块。对于需要对第一vm的磁盘中不存在的磁盘块进行写操作的情况,可以先将需要写操作的磁盘块加载到第一vm的磁盘中,然后在对该磁盘块执行写操作,但这种效率较低。对此,存储管理设备为第一vm的磁盘创建一稀疏文件(shadowfile),该稀疏文件主要用来临时存储第一vm磁盘中某些磁盘块的增量数据。可选地,该稀疏文件的大小与第一vm的磁盘的大小相同。

基于上述稀疏文件,当第一vm需要写磁盘时,可以向存储管理设备发出写磁盘请求,该请求会携带需要执行写操作的磁盘块的索引号,指向需要执行写操作的磁盘块。为便于描述,将写磁盘请求涉及的磁盘块称为第二磁盘块。存储管理设备接收写磁盘请求,根据该写磁盘请求,判断第一vm的磁盘中是否存在第二磁盘块。当在第一vm的磁盘中包含第二磁盘块时,直接在该第二磁盘块中执行写操作;当第一vm的磁盘中未包含第二磁盘块时,则将写磁盘请求的增量数据写入第一vm的磁盘对应的稀疏文件中。在该实施例中,在需要对第一vm的磁盘中不存在的磁盘块进行写操作的情况下,无需等待磁盘块加载完成即可完成写操作,有利于提高写操作的效率。

进一步,还可以采用一个位图文件(bitmapfile)来记录稀疏文件上增量数据的位置。位图文件中每一个位(bit)对应稀疏文件中的一个扇区(sector),用于记录该扇区的使用状态。若一扇区中存储有增量数据,则位图文件中相应位置为有效,例如置为1。基于此,在将写请求的增量数据写入第一vm的磁盘对应的稀疏文件中之后,还可以在稀疏文件对应的位图文件中记录增量数据在稀疏文件中的位置,即将相应扇区对应的位置为有效。

在上述实施例中,分别描述了基于快照缓存的读磁盘过程和基于稀疏文件的写磁盘过程。快照缓存和稀疏文件可以单独使用,也可以结合使用。在下面实施例中,将重点描述存储管理设备结合使用快照缓存和稀疏文件在第一vm启动过程中对磁盘块进行处理的过程。

参考图2b,当第一vm在启动过程中发出读磁盘请求时,存储管理设备(例如io线程)可以分别在第一vm的磁盘中查询第一vm所请求的第一磁盘块(参见图2b中的读磁盘块②)。当在第一vm的磁盘中查询到第一磁盘块时,进一步在第一vm的磁盘对应的稀疏文件中查询第一磁盘块的增量数据(参见图2b中的读增量数据⑤)。若未在稀疏文件中查询到第一磁盘块的增量数据,则向第一vm返回查询到的第一磁盘块。若在稀疏文件中查询到第一磁盘块的增量数据,将第一磁盘块与第一磁盘块的增量数据进行合并,以得到合并后的磁盘块数据;将合并后的磁盘块数据返回给第一vm。

当在第一vm的磁盘查询到第一磁盘块时,继续在快照缓存中查询第一磁盘块(参见图2b中的读磁盘块①)。当在快照缓存中查询到第一磁盘块时,进一步在第一vm的磁盘对应的稀疏文件中查询第一磁盘块的增量数据(参见图2b中的读增量数据⑤)。若未在稀疏文件中查询到第一磁盘块的增量数据,则向第一vm返回查询到的第一磁盘块。若在稀疏文件中查询到第一磁盘块的增量数据,将第一磁盘块与第一磁盘块的增量数据进行合并,以得到合并后的磁盘块数据;将合并后的磁盘块数据返回给第一vm。

当在快照缓存中未查询到第一磁盘块时,存储管理设备(例如lazyload线程)向快照中心103请求第一磁盘块(参见图2b中的读磁盘块⑥),并在第一vm的磁盘对应的稀疏文件中查询第一磁盘块的增量数据(参见图2b中的读增量数据⑤)。若未在稀疏文件中查询到第一磁盘块的增量数据,则将快照中心103返回的第一磁盘块存储至第一vm的磁盘中,以供第一vm使用。若在稀疏文件中查询到第一磁盘块的增量数据,将第一磁盘块与第一磁盘块的增量数据进行合并,以得到合并后的磁盘块数据;将合并后的磁盘块数据存储至第一vm的磁盘中。

另外,存储管理设备(例如lazyload线程)还可以以lazyload方式按照磁盘块加载顺序向第一vm的磁盘中加载磁盘块。该过程包括:按照磁盘块加载顺序,在快照缓存中查询需要向第一vm的磁盘中加载的磁盘块(参见图2b中的读磁盘块①)。当未在快照缓存中查询到所述需要向第一vm的磁盘中加载的磁盘块时,向快照中心103请求所述需要向第一vm的磁盘中加载的磁盘块(参见图2b中的读磁盘块⑥),并在稀疏文件中查询所述需要向第一vm的磁盘中加载的磁盘块的增量数据(参见图2b中的读增量数据⑤)。若未在稀疏文件中查询到所述需要向第一vm的磁盘中加载的磁盘块的增量数据,则将快照中心103返回的所述需要向第一vm的磁盘中加载的磁盘块存储至第一vm的磁盘中(参见图2b中的读增量数据③)。若在稀疏文件中查询到所述需要向第一vm的磁盘中加载的磁盘块的增量数据,将快照中心103返回的所述需要向第一vm的磁盘中加载的磁盘块和在稀疏文件中查询到的所述需要向第一vm的磁盘中加载的磁盘块的增量数据进行合并,形成新的磁盘块数据,将新的磁盘块数据存储至第一vm的磁盘中(参见图2b中的读增量数据③)。

当在快照缓存中查询到所述需要向第一vm的磁盘中加载的磁盘块时,在稀疏文件中查询所述需要向第一vm的磁盘中加载的磁盘块的增量数据(参见图2b中的读增量数据⑤)。若未在稀疏文件中查询到所述需要向第一vm的磁盘中加载的磁盘块的增量数据,则将在快照缓存中查询到的所述需要向第一vm的磁盘中加载的磁盘块存储至第一vm的磁盘中(参见图2b中的读增量数据③)。若在稀疏文件中查询到所述需要向第一vm的磁盘中加载的磁盘块的增量数据,将在快照缓存中查询到的所述需要向第一vm的磁盘中加载的磁盘块和在稀疏文件中查询到的所述需要向第一vm的磁盘中加载的磁盘块的增量数据进行合并,形成新的磁盘块数据,将新的磁盘块数据存储至第一vm的磁盘中(参见图2b中的读增量数据③)。

其中,在结合使用快照缓存和稀疏文件的场景中,第一vm写磁盘的过程与前面基于稀疏文件写磁盘的过程相同(参见图2b中的写增量数据④),在此不再赘述。

值得说明的是,在图2b中,假设快照缓存包括磁盘块d1、磁盘块d2、….磁盘块dk,快照中心包括磁盘块d1、磁盘块d2、….磁盘块dn,vm磁盘包括磁盘块d1、磁盘块d2、….磁盘块dj,稀疏文件包括增量数据d1、增量数据d2、….增量数据dm,这仅作为示例并不限于此。其中,以相同符号表示的增量数据和磁盘块具有所属关系,例如增量数据d1是磁盘块d1的增量数据,增量数据d2是磁盘块d2的增量数据等。

由此可见,将快照缓存和稀疏文件相结合,既可以保证读写磁盘的效率,又可以减轻快照中心103的并发压力。

图3a为本申请一示例性实施例提供的虚拟机快照处理方法的流程示意图。该方法主要由存储管理设备执行,如图3a所示,该方法包括:

301、接收第一虚拟机vm在启动过程中发出的读磁盘请求,读磁盘请求用于请求第一vm启动所需磁盘快照中的第一磁盘块。

302、分别在第一vm的磁盘和快照缓存中查询第一磁盘块;快照缓存存储有磁盘快照中使用频率符合设定要求的磁盘块。

303、当在第一vm的磁盘或快照缓存中查询到第一磁盘块时,向第一vm返回第一磁盘块。

在本实施例中,通过一快照缓存(cache)存储磁盘快中使用频率符合设定要求的磁盘块。可选地,使用频率符合设定要求的磁盘块可以是使用频率最高的若干个磁盘块,或者可以是使用频率大于设定频率阈值的若干个磁盘块,或者可以是使用频率在某个区间内的若干个磁盘块。其中,磁盘块的使用频率可以是磁盘块在一定时间内的使用频率,例如最近一周内的使用频率,或者最近一个月内的使用频率等。快照缓存中存储的磁盘块在第一vm读磁盘过程中被命中的概率较高,例如高于设定概率阈值。

基于快照缓存,当第一vm在启动过程中发出读磁盘请求时,可以分别在第一vm的磁盘和快照缓存中查询第一vm所请求的磁盘块。当在第一vm的磁盘或快照缓存中查询到第一vm所请求的磁盘块时,向第一vm返回查询到的磁盘块,而不用向快照中心103请求磁盘块。当在第一vm的磁盘和快照缓存中都未查询到第一vm所请求的磁盘块时,向快照中心103请求磁盘块,并将快照中心103返回的磁盘块存储至第一vm的磁盘中,以供第一vm使用。

在本实施例中,通过快照缓存存储磁盘快照中使用频率符合设定要求的磁盘块,一定程度上可增加第一vm在快照缓存中命中所需磁盘块的概率,进而降低向快照中心请求磁盘块的概率,减轻快照中心的并发压力。

在一可选实施方式中,步骤302的一种实现方式为:先查询快照缓存,当在快照缓存中未查询到第一磁盘块时,再查询第一vm的磁盘。或者,也可以先查询第一vm的磁盘,当在第一vm的磁盘中未查询到第一磁盘块时,再查询快照缓存。考虑到第一vm的磁盘是第一vm专享的,而快照缓存是所有vm共享的,因此可以先查询第一vm的磁盘,当在第一vm的磁盘中查询到第一磁盘块时,无需查询快照缓存,这样可以减轻快照缓存的并发压力。

进一步,当未在第一vm的磁盘和快照缓存中查询到第一磁盘块时,可以向存储有磁盘快照的快照中心请求第一磁盘块;将快照中心返回的第一磁盘块存储至第一vm的磁盘中。

在一可选实施方式中,在第一vm启动之前,可以根据其它vm在启动过程中对磁盘快照中各磁盘块的使用情况,获得第一磁盘块中各磁盘块的使用频率;将各磁盘块中使用频率符合设定要求的磁盘块存储至快照缓存中。这样,在第一vm启动过程中,可以使用快照缓存中的磁盘块。

在一可选实施方式中,除了根据第一vm的读磁盘请求,为第一vm查询第一磁盘块之外,还可以在第一vm的启动过程中,以lazyload方式,按照磁盘块加载顺序向第一vm的磁盘中加载磁盘快照中的磁盘块。

进一步,可以按照磁盘块加载顺序,在快照缓存中查询需要向第一vm的磁盘中加载的磁盘块;当未在快照缓存中查询到需要向第一vm的磁盘中加载的磁盘块时,向快照中心请求需要向第一vm的磁盘中加载的磁盘块,并将快照中心返回的需要向第一vm的磁盘中加载的磁盘块存储至第一vm的磁盘中。

更进一步,在按照磁盘块加载顺序,在快照缓存中查询需要向第一vm的磁盘中加载的磁盘块之前,可以从快照缓存或快照中心中读取磁盘块优先列表,磁盘块优先列表中存储有第一vm对磁盘快照中各磁盘块的使用顺序;将第一vm对各磁盘块的使用顺序作为磁盘块加载顺序。进而,以第一vm对磁盘快照中各磁盘块的使用顺序,向第一vm的磁盘中加载的磁盘块。

在一可选实施方式中,在从快照缓存或快照中心中读取磁盘块优先列表之前,可以获得磁盘块优先列表。一种获得盘块优先列表的方式包括:

对第一vm在历史启动过程中对各磁盘块的使用情况进行统计,以获得第一vm对各磁盘块的使用顺序;

根据第一vm对各磁盘块的使用顺序,将各磁盘块的索引号存储至磁盘块优先列表中;

将磁盘块优先列表存储至快照缓存或快照中心中。

在上述方法实施例中,主要描述了第一vm在启动过程中读磁盘的情况。除此情况之外,第一vm在启动过程中还会写磁盘。在第一vm启动过程中,可能需要对第一vm的磁盘中不存在的磁盘块进行写操作。对于这种情况,可以先将需要执行写操作的磁盘块加载到第一vm的磁盘中,然后在对该磁盘块执行写操作,但这种效率较低。对此,在本实施例中,为第一vm的磁盘创建一稀疏文件,该稀疏文件主要用来临时存储第一vm磁盘中某些磁盘块的增量数据。

基于上述稀疏文件,一种在写磁盘操作过程中进行快照处理的方法流程如图3b所示,包括以下步骤:

304、接收第一vm在启动过程中发出的写磁盘请求,写磁盘请求用于请求对磁盘快照中的第二磁盘块进行写操作。

305、判断第一vm的磁盘中是否包含第二磁盘块;若判断结果为否,则执行步骤306;若判断结果为是,则执行步骤307。

306、将写磁盘请求的增量数据写入第一vm的磁盘对应的稀疏文件中。

307、将写磁盘请求的增量数据写入第二磁盘块中。

在本实施例中,当第一vm需要写磁盘时,可以向存储管理设备发出写磁盘请求,该请求会携带需要执行写操作的磁盘块的索引号。存储管理设备根据该写磁盘请求,判断第一vm的磁盘中是否存在第一vm需要写操作的磁盘块。当在第一vm的磁盘中包含第一vm需要写操作的磁盘块时,直接在该磁盘块中执行写操作;当第一vm的磁盘中未包含第一vm需要写操作的磁盘块时,则将写磁盘请求的增量数据写入第一vm的磁盘对应的稀疏文件中。在该实施例中,在需要对第一vm的磁盘中不存在的磁盘块进行写操作的情况下,无需等待磁盘块加载完成即可完成写操作,有利于提高写操作的效率。

进一步,还可以采用一个位图文件(bitmapfile)来记录稀疏文件上增量数据的位置。位图文件中每一个位(bit)对应稀疏文件中的一个扇区(sector),用于记录该扇区的使用状态。若一扇区中存储有增量数据,则位图文件中相应位置为有效,例如置为1。基于此,在将写请求的增量数据写入第一vm的磁盘对应的稀疏文件中之后,还可以在稀疏文件对应的位图文件中记录增量数据在稀疏文件中的位置,即将相应扇区对应的位置为有效。

值得说明的是,上述快照缓存和稀疏文件可以单独使用,也可以结合使用。结合使用的过程可参见图2b所示,在此不再赘述。

需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤301至步骤303的执行主体可以为设备a;又比如,步骤301和302的执行主体可以为设备a,步骤303的执行主体可以为设备b;等等。

另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

图4为本申请又一实施例提供的一种虚拟机快照处理装置的结构示意图。如图4所示,虚拟机快照处理装置包括:接收模块401、查询模块402以及提供模块403。

接收模块401,用于接收第一vm在启动过程中发出的读磁盘请求,该读磁盘请求用于请求第一vm启动所需磁盘快照中的第一磁盘块。

查询模块402,用于分别在第一vm的磁盘和快照缓存中查询第一磁盘块;其中快照缓存存储有磁盘快照中使用频率符合设定要求的磁盘块。

提供模块403,用于当在第一vm的磁盘或快照缓存中查询到第一磁盘块时,向第一vm返回第一磁盘块。

在一可选实施方式中,提供模块403还用于:当未在第一vm的磁盘和快照缓存中查询到第一磁盘块时,向存储有磁盘快照的快照中心请求第一磁盘块;将快照中心返回的第一磁盘块存储至第一vm的磁盘中。

在一可选实施方式中,虚拟机快照处理装置还包括统计模块,用于在第一vm启动之前,根据其它vm在启动过程中对磁盘快照中各磁盘块的使用情况,获得第一磁盘块中各磁盘块的使用频率;将各磁盘块中使用频率符合设定要求的磁盘块存储至快照缓存中。

在一可选实施方式中,查询模块402还用于在第一vm的启动过程中,以lazyload方式,按照磁盘块加载顺序向第一vm的磁盘中加载磁盘快照中的磁盘块。

进一步,查询模块402在加载磁盘快照的磁盘块时,具体用于:

按照磁盘块加载顺序,在快照缓存中查询需要向第一vm的磁盘中加载的磁盘块;

当未在快照缓存中查询到需要向第一vm的磁盘中加载的磁盘块时,向快照中心请求需要向第一vm的磁盘中加载的磁盘块,并将快照中心返回的需要向第一vm的磁盘中加载的磁盘块存储至第一vm的磁盘中。

进一步,查询模块402在按照磁盘块加载顺序,在快照缓存中查询需要向第一vm的磁盘中加载的磁盘块之前,还用于:

从快照缓存或快照中心中读取磁盘块优先列表,该磁盘块优先列表中存储有第一vm对磁盘快照中各磁盘块的使用顺序;

将第一vm对各磁盘块的使用顺序作为磁盘块加载顺序。

更进一步,统计模块在查询模块402从快照缓存或快照中心中读取磁盘块优先列表之前,还用于:

对第一vm在历史启动过程中对各磁盘块的使用情况进行统计,以获得第一vm对各磁盘块的使用顺序;

根据第一vm对各磁盘块的使用顺序,将各磁盘块的索引号存储至磁盘块优先列表中;

将磁盘块优先列表存储至快照缓存或快照中心中。

在一可选实施方式中,接收模块401还用于:

接收第一vm在启动过程中发出的写磁盘请求,且该写磁盘请求用于请求对磁盘快照中的第二磁盘块进行写操作;

当第一vm的磁盘中未包含所述第二磁盘块时,将写磁盘请求的增量数据写入第一vm的磁盘对应的稀疏文件中。

进一步,接收模块401还用于:在稀疏文件对应的位图文件中记录增量数据在稀疏文件中的位置。

相应地,查询模块402具体用于:在稀疏文件中查询第一磁盘块的增量数据;当在稀疏文件中查询到第一磁盘块的增量数据时,将第一磁盘块与第一磁盘块的增量数据进行合并,以得到合并后的磁盘块数据。

相应地,基于上述合并后的磁盘块数据,提供模块403在向第一vm返回第一磁盘块时具体用于:将合并后的磁盘块数据返回给第一vm。

本实施例提供的虚拟机快照处理装置,可用于执行上述快照方法实施例中的流程,其工作原理不再赘述,详见方法实施例的描述。

本申请实施例提供的虚拟机快照处理装置,为vm增加快照缓存,存储vm启动过程中所需磁盘快照中使用频率符合设定要求的磁盘块,基于此,当虚拟机快照处理装置接收到vm在启动过程中发出的读磁盘请求时,分别在vm的磁盘和快照缓存中查询vm请求的磁盘块,当在vm的磁盘或快照缓存中查询到vm请求的磁盘块时返回给vm。由于快照缓存中存储的是磁盘快照中使用频率符合设定要求的磁盘块,该虚拟机快照处理装置可以增大读磁盘请求命中所需磁盘块的概率,降低向快照中心请求磁盘块的概率,从而减轻快照中心的整体并发压力。

以上描述了虚拟机快照处理装置的内部功能和结构,如图5所示,实际中,该快照处理装置可实现为电子设备,包括:存储器500、处理器501以及通信组件502;

通信组件502,用于接收第一vm在启动过程中发出的读磁盘请求,该读磁盘请求用于请求第一vm启动所需磁盘快照中的第一磁盘块;

存储器500,用于存储程序;

处理器501,耦合至存储器500,用于执行程序以用于:

分别在第一vm的磁盘和快照缓存中查询第一磁盘块;其中快照缓存存储有磁盘快照中使用频率符合设定要求的磁盘块;

当在第一vm的磁盘或快照缓存中查询到所述第一磁盘块时,通过通信组件502向第一vm返回第一磁盘块;

通信组件502,还用于向第一vm返回第一磁盘块。

在一可选实施方式中,处理器501还用于:

当未在第一vm的磁盘和快照缓存中查询到第一磁盘块时,通过通信组件502向存储有磁盘快照的快照中心请求第一磁盘块,并通过通信组件502将快照中心返回的第一磁盘块存储至第一vm的磁盘中。相应地,通信组件502还用于向存储有磁盘快照的快照中心请求第一磁盘块,并将快照中心返回的第一磁盘块存储至第一vm的磁盘中。

在一可选实施方式中,在第一vm启动之前,处理器501还用于:

根据其它vm在启动过程中对磁盘快照中各磁盘块的使用情况,获得第一磁盘块中各磁盘块的使用频率;

将各磁盘块中使用频率符合设定要求的磁盘块存储至快照缓存中。

在一可选实施方式中,处理器501在第一vm的启动过程中,还用于:以lazyload方式,按照磁盘块加载顺序向第一vm的磁盘中加载磁盘快照中的磁盘块。

进一步,处理器501在加载磁盘快照的磁盘块时,具体用于:

按照磁盘块加载顺序,在快照缓存中查询需要向第一vm的磁盘中加载的磁盘块;

当未在快照缓存中查询到需要向第一vm的磁盘中加载的磁盘块时,通过通信组件502向快照中心请求需要向第一vm的磁盘中加载的磁盘块,并通过通信组件502将快照中心返回的需要向第一vm的磁盘中加载的磁盘块存储至第一vm的磁盘中。相应地,通信组件502还用于向快照中心请求需要向第一vm的磁盘中加载的磁盘块,并将快照中心返回的需要向第一vm的磁盘中加载的磁盘块存储至第一vm的磁盘中。

进一步,处理器501在按照磁盘块加载顺序,在快照缓存中查询需要向第一vm的磁盘中加载的磁盘块之前,还用于:

从快照缓存或快照中心中读取磁盘块优先列表,该磁盘块优先列表中存储有第一vm对磁盘快照中各磁盘块的使用顺序;

将第一vm对各磁盘块的使用顺序作为磁盘块加载顺序。

更进一步,处理器501在从快照缓存或快照中心中读取磁盘块优先列表之前,还用于:

对第一vm在历史启动过程中对各磁盘块的使用情况进行统计,以获得第一vm对各磁盘块的使用顺序;

根据第一vm对各磁盘块的使用顺序,将各磁盘块的索引号存储至磁盘块优先列表中;

将磁盘块优先列表存储至快照缓存或快照中心中。

在一可选实施方式中,通信组件502还用于接收第一vm在启动过程中发出的写磁盘请求,且该写磁盘请求用于请求对磁盘快照中的第二磁盘块进行写操作。相应地,基于通信组件502接收的写磁盘请求,处理器501还用于:当第一vm的磁盘中未包含所述第二磁盘块时,将写磁盘请求的增量数据写入第一vm的磁盘对应的稀疏文件中。

进一步,处理器501在将写请求的增量数据写入第一vm的磁盘对应的稀疏文件中之后,还用于:在稀疏文件对应的位图文件中记录增量数据在稀疏文件中的位置。

相应地,处理器501还用于:在稀疏文件中查询第一磁盘块的增量数据;当在稀疏文件中查询到第一磁盘块的增量数据时,将第一磁盘块与第一磁盘块的增量数据进行合并,以得到合并后的磁盘块数据;并通过通信组件502将合并后的磁盘块数据返回给第一vm。相应地,通信组件502具体用于将合并后的磁盘块数据返回给第一vm。

进一步,如图5所示,电子设备还包括:显示器503、电源组件504以及音频组件505等其它组件。图5中仅示意性给出部分组件,并不意味着电子设备只包括图5所示组件。

在图5中的通信组件,可被配置为便于通信组件所属设备和其他设备之间有线或无线方式的通信。通信组件所属设备可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

在图5中的显示器,可以包括屏幕,其屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。

在图5中的电源组件,为电源组件所属设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所属设备生成、管理和分配电力相关联的组件。

在图5中的音频组件,被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(mic),当音频组件所属设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。

本申请实施例提供的电子设备,用于对虚拟机快照进行处理。为vm增加快照缓存,存储vm启动过程中所需磁盘快照中使用频率符合设定要求的磁盘块,基于此,当电子设备接收到vm在启动过程中发出的读磁盘请求时,分别在vm的磁盘和快照缓存中查询vm请求的磁盘块,当在vm的磁盘或快照缓存中查询到vm请求的磁盘块时返回给vm。由于快照缓存中存储的是磁盘快照中使用频率符合设定要求的磁盘块,可以增大读磁盘请求命中所需磁盘块的概率,降低向快照中心请求磁盘块的概率,从而减轻快照中心的整体并发压力。

相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被执行时能够实现:

接收第一vm在启动过程中发出的读磁盘请求,该读磁盘请求用于请求第一vm启动所需磁盘快照中的第一磁盘块;

分别在第一vm的磁盘和快照缓存中查询第一磁盘块;其中快照缓存存储有磁盘快照中使用频率符合设定要求的磁盘块;

当在第一vm的磁盘或快照缓存中查询到第一磁盘块时,向第一vm返回第一磁盘块。

上述计算机程序被执行时,除了可以实现上述步骤之外,还可以实现其前述方法实施例中的其它步骤,具体不再赘述。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1