磁盘快照创建方法和磁盘快照创建装置与流程

文档序号:15517628发布日期:2018-09-25 18:44阅读:454来源:国知局

本申请涉及计算机存储技术领域,特别涉及一种磁盘快照创建方法和磁盘快照创建装置。



背景技术:

快照的主要作用是能够进行在线数据恢复,当存储设备发生应用故障或者文件损坏时可以进行及时数据恢复,将数据恢复成快照产生时间点的状态。另外,快照为存储用户提供了一个新的数据访问通道,当原数据进行在线应用处理时,用户可以访问快照数据,还可以利用快照进行测试等工作

在云计算业务蓬勃发展的时代,快照技术作为一种重要的容灾手段,已经不可或缺。特别是针对磁盘的快照,更是重中之重,当用户的虚拟机被入侵、误操作等原因导致数据丢失,快照就是救命稻草。

现有的快照技术通过如下方式实现:

第一步,在停止应用之后,将磁盘进行快照冷备份,

第二步,利用虚拟机的挂起功能,将虚拟机暂停后,对磁盘进行快照创建,再恢复虚拟机的工作。

第三步,对虚拟机的磁盘第一次进行全量备份,后面将每块虚机磁盘划分成一定大小的定长数据段,并追踪用户使用中对每一个数据段的改动信息。如果一个数据段在备份时被认定为自上次备份快照以来未作改动,则不备份这块数据。

然而,在云计算环境下,由于大量的磁盘托管在云服务提供商手里,上述方案均有不足。

第一种和第二种方案中,需要用户停服务器或应用,这会导致用户的应用有一定时间的不可用;在第三种方案中,由于大量的磁盘都是使用云服务提供商的镜像创建出来初始化出来的,特别是虚拟机的系统盘,如果针对每一个磁盘都先全量备份,后面再增量备份,创建的快照占用了大量的存储空间,并且第一次全量快照创建的时间过长。



技术实现要素:

鉴于上述问题,本发明一实施例提出一种磁盘快照创建方法和磁盘快照创建装置,以解决现有技术存在的问题。

为了解决上述问题,本申请一实施例公开本申请实施例公开一种磁盘快照创建方法,包括:

提供多个公共镜像以及所述公共镜像对应的初始快照,所述公共镜像关联有公共镜像id;

接收终端发送的创建终端磁盘中的数据文件快照的指令;

根据所述数据文件关联的公共镜像id,确定所述公共镜像id关联的公共镜像所对应的初始快照;

对比所述数据文件与所述初始快照,获取增量数据;

基于所述初始快照和所述增量数据,创建所述数据文件的当前快照。

本发明另一实施例提出一种磁盘快照的创建方法,所述方法包括:

提供多个公共镜像以及所述公共镜像对应的初始快照,所述公共镜像关联有公共镜像id;

接收终端发送的创建终端磁盘中的数据文件快照的指令;

根据所述数据文件关联的公共镜像id,确定所述公共镜像id关联的公共镜像所对应的初始快照;

当所述数据文件与对应于所述公共镜像的初始快照相同时,将所述初始快照作为数据文件的当前快照。

为了解决上述问题,本申请一实施例还公开一种磁盘快照创建装置,包括:

初始快照提供模块,用于提供多个公共镜像以及所述公共镜像对应的初始快照,所述公共镜像关联有公共镜像id;

指令接收模块,用于接收终端发送的创建终端磁盘中的数据文件快照的指令;

初始快照确定模块,用于根据所述数据文件关联的公共镜像id,确定所述公共镜像id关联的公共镜像所对应的初始快照;

增量数据获取模块,用于对比所述数据文件与所述初始快照,获取增量数据;

当前快照创建模块,用于基于所述初始快照和所述增量数据,创建所述数据文件的当前快照。

本发明另一实施例提出一种磁盘快照的创建装置,所述方法包括:

初始快照提供模块,用于提供多个公共镜像以及所述公共镜像对应的初始快照,所述公共镜像关联有公共镜像id;

指令接收模块,用于接收终端发送的创建终端磁盘中的数据文件快照的指令;

初始快照确定模块,用于根据所述数据文件关联的公共镜像id,确定所述公共镜像id关联的公共镜像所对应的初始快照;

当前快照创建模块,用于当所述数据文件与对应于所述公共镜像的初始快照相同时,将所述初始快照作为数据文件的当前快照。

本发明实施例还提出一种电子装置,包括:

存储器,用于存储计算机可读指令;

处理器,所述处理器执行上述存储器中的计算机可读指令,使所述电子装置执行下述操作,包括:

提供多个公共镜像以及所述公共镜像对应的初始快照,所述公共镜像关联有公共镜像id;

接收终端发送的创建终端磁盘中的数据文件快照的指令;

根据所述数据文件关联的公共镜像id,确定所述公共镜像id关联的公共镜像所对应的初始快照;

对比所述数据文件与所述初始快照,获取增量数据;

基于所述初始快照和所述增量数据,创建所述数据文件的当前快照。

本发明实施例还提出一种电子装置,包括:

存储器,用于存储计算机可读指令;

处理器,所述处理器执行上述存储器中的计算机可读指令,使所述电子装置执行下述操作,包括:

提供多个公共镜像以及所述公共镜像对应的初始快照,所述公共镜像关联有公共镜像id;

接收终端发送的创建终端磁盘中的数据文件快照的指令;

根据所述数据文件关联的公共镜像id,确定所述公共镜像id关联的公共镜像所对应的初始快照;

当所述数据文件与对应于所述公共镜像的初始快照相同时,将所述初始快照作为数据文件的当前快照。

由上述可知,本申请实施例提出的磁盘快照创建方法和装置,至少还包括以下优点:

由此可知,采用本发明第一实施例提供的磁盘快照的创建方法,可以在磁盘是已存在初始快照的公共镜像初始化出来的时候,直接使用已经存在的公共镜像的快照作为一部分快照,只需在存储服务器追加用户改写的部分,或在用户无改写时直接将初始快照作为当前快照。从而快速创建磁盘的当前快照,通过减少上传数据量来提高创建快照的速度;另一方面,利用存储服务器已有的初始快照生成终端磁盘的当前快照,可以避免在存储服务器重复存储已有数据,从而减少占用存储服务器的空间。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请第一实施例的一种磁盘快照的创建方法的流程图;

图2是本申请第二实施例的一种磁盘快照的创建方法的流程图;

图3是本申请第二实施例的一种磁盘快照的创建方法的示意图;

图4是本申请第三实施例的一种磁盘快照的创建方法的流程图;

图5是本申请第四实施例的一种磁盘快照的创建装置的方框图;

图6是本申请第五实施例的一种磁盘快照的创建装置的方框图;

图7是本申请第六实施例的一种磁盘快照的创建装置的方框图;。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。

本申请的核心思想之一在于,提出一种磁盘快照创建方法和磁盘快照创建装置,可以判断磁盘是否是由线存储服务器提供商提供的公共镜像初始化出来的;如果是,则直接使用已经存在的公共镜像的快照作为一部分快照,只需追加用户改写的部分作为增量快照,或者在用户无改写时以初始快照作为当前快照。从而在减少大量的存储空间的同时还可以提高创建快照的速度。

第一实施例

本发明第一实施例提出一种磁盘快照的创建方法。图1所示为本发明第一实施例的磁盘快照的创建方法的步骤流程图。如图1所示,本发明第一实施例的磁盘快照的创建方法包括如下步骤:

s101,提供多个公共镜像以及所述公共镜像对应的初始快照,所述公共镜像关联有公共镜像id;

在这一步骤中,服务器中存储有多个公共镜像,以及该公共镜像对应的初始快照。在一个具体示例中,用户希望从存储服务器下载一个公共镜像到磁盘,利用该公共镜像初始化磁盘并创建一个虚拟机,用户下载某一数据文件的公共镜像的步骤即是将服务器中的该数据文件的公共镜像复制到客户端中的步骤。在这一步骤中,由于服务器中的公共镜像是关联有公共镜像id的,在这一步骤中可以同时获取该公共镜像对应的公共镜像id。

s102,接收终端发送的创建终端磁盘中的数据文件快照的指令;

在这一步骤中,终端发送创建终端磁盘中的数据文件快照的指令至服务器,服务器接收该终端发送的创建终端磁盘中的数据文件快照的指令。该数据文件可以包括操作系统、大型或小型数据文件以及其他文件,本发明并不特别限制。

s103,根据所述数据文件关联的公共镜像id,确定所述公共镜像id关联的公共镜像所对应的初始快照;

在这一步骤中,例如在前述具体示例中,虚拟机创建成功之后,用户可以在该虚拟机上修改其系统程序或者安装新的应用程序。一段时间,用户希望将当前时刻修改后的磁盘内的数据,在存储服务器生成一个对应的当前快照,以便当用户的虚拟机由于被入侵、误操作等原因导致数据丢失时,快速恢复磁盘内的数据。此时,由于用户是从客户端内下载的公共镜像,终端磁盘当前快照的创建服务端可以通过终端或服务器中的程序,利用查询数据库的方式,获取该磁盘在初始化时使用的存储在存储服务器的公共镜像,然后通过所述公共镜像的公共镜像id确定该公共镜像对应的初始快照。

可选地,服务器中可以存储有公共镜像、公共镜像id和初始快照的对应关系。

s104,对比所述数据文件与所述初始快照,获取增量数据;

在步骤s102中提到,用户在终端磁盘中创建的虚拟机上可以更改系统程序或者安装新的应用程序;此时,不同于从存储服务器下载下来的内容,用户更改系统数据以及安装新的应用程序等的操作,就构成了这个步骤中的增量数据,会存储在磁盘中作为当前数据的一部分。

s105,基于所述初始快照和所述增量数据,创建所述数据文件的当前快照。

在这一步骤中,终端磁盘当前快照的创建服务端可以通过终端或服务器中的程序,将对比得到的,存储服务器当前未存储的增量数据上传到存储服务器,并基于所述初始快照和增量数据,创建所述数据文件的当前快照。

由上述可知,采用本发明第一实施例提供的磁盘快照的创建方法,可以在磁盘是已存在初始快照的公共镜像初始化出来的时候,直接使用已经存在的公共镜像的快照作为一部分快照,只需在存储服务器追加用户改写的部分,或在用户无改写时直接将初始快照作为当前快照。从而快速创建磁盘的当前快照,通过减少上传数据量来提高创建快照的速度;另一方面,利用存储服务器已有的初始快照生成终端磁盘的当前快照,可以避免在存储服务器重复存储已有数据,从而减少占用存储服务器的空间。

第二实施例

本发明第二实施例提出一种磁盘快照的创建方法。图2所示为本发明第二实施例的磁盘快照的创建方法的步骤流程图。如图2所示,本发明第二实施例的磁盘快照的创建方法包括如下步骤:

s201,提供多个公共镜像以及所述公共镜像对应的初始快照,所述公共镜像关联有公共镜像id;

s202,接收终端发送的创建终端磁盘中的数据文件快照的指令;

s203,根据所述数据文件关联的公共镜像id,确定所述公共镜像id关联的公共镜像所对应的初始快照;

s204,对比所述数据文件与所述初始快照,获取增量数据;

s205,基于所述初始快照和所述增量数据,创建所述数据文件的当前快照。

上述步骤s201至步骤s205与上一实施例的步骤s101至步骤s105相同或相似,在此不再赘述。本实施例重点说明与上一实施例的不同之处。

在本发明一实施例中,该公共镜像id可以是从指令中获得的,也可能是在接收到指令之后服务器从终端磁盘中搜索获得的。因此,在步骤s202,即接收终端发送的创建终端磁盘中的数据文件快照的指令的步骤后,所述方法还可以包括:

从所述创建终端磁盘中的数据文件快照的指令中获取所述终端磁盘中的数据文件关联的公共镜像id;或

在所述终端磁盘中获取所述终端磁盘中的数据文件关联的公共镜像id。

在本发明一实施例中,在s202,即接收终端发送的创建终端磁盘中的数据文件快照的指令的步骤之前,所述方法还可以包括如下步骤:

s200a,利用元数据生成初始快照;

s200b,根据所述初始快照在存储服务器中创建公共镜像,并分配公共镜像id;

s200c,将存储服务器中的所述公共镜像作为数据文件写入所述终端磁盘;

s200d,将所述数据文件与所述公共镜像id关联。

元数据(metadata),又称中介数据、中继数据,为描述数据的数据(dataaboutdata),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据可以用来生成初始快照。之后,利用初始快照,可以在存储服务器中创建公共镜像并分配公共镜像id。

用户例如通过从存储服务器下载而来的centos7.0系统的公共镜像,创建了一个虚拟机。在终端磁盘中,将下载获得的该数据文件(虚拟机)与存储服务器中的公共镜像的公共镜像id关联。

在本发明一实施例中,所述步骤s200a,即利用元数据生成初始快照的步骤可以包括如下子步骤:

s2001a,将元数据按照预设规则划分为多个元数据段;

s2001b,建立对应于每一个元数据段的元数据段id;

s2001c,将所述多个元数据段id写入第一索引文件;

s2001d,将每一个元数据段写入存储服务器,以生成初始快照;

s2001e,将所述初始快照与所述第一索引文件关联。

在上述子步骤中,元数据的服务端可以将服务端存储器上的元数据内容拆分成多个数据段,每一个数据段对应唯一的元数据段id,每一个数据段例如为2mb的定长数据段,元数据段id例如设置为b-1-1、b-1-2……b-1-n。将所述元数据段id写入第一索引文件,例如:s1.meta。

值得说明的是,磁盘上的数据内容也可以不设置为定长数据段,并且每一个数据段的长度也不限于2mb,例如也可以是1mb或者4m。参照图3所示,为了便于定位,数据段和数据段之间紧密排列,中间不可能再插入内容,只能覆盖或写入新数据。例如,数据段b-1-1包含的编号从0a00000到0f00000的数据,数据段b-1-2包含编号从00a0000到00f0000的数据,此处举例仅为方便理解,不作为对数据段的具体限定。

在写入第一索引文件之后,将每个元数据段写入存储服务器,并利用写入存储服务器的元数据生成初始快照。在生成后,将所生成的初始快照与第一索引文件s1.meta进行关联。

在本发明一实施例中,在步骤s200d,即将所述数据文件与所述公共镜像id关联的步骤之后,所述方法还包括如下步骤:

s200e,将终端磁盘的所述数据文件按照所述预设规则划分为多个终端数据段;

s200f,建立对应于每一个终端数据段的终端数据段id;以及

s200g,将所述多个终端数据段id写入第二索引文件;

s200h,利用所述第一索引文件和第二索引文件,对比每一个元数据段和对应的终端数据段,获得修改数据段和新增数据段;

s200i,将所述修改数据段和所述新增数据段作为增量数据。

在上述步骤中,用户例如通过从存储服务器下载而来的centos7.0系统的公共镜像,创建了一个虚拟机。在用户下载数据文件(虚拟机)后,将该数据文件按照预设规则划分为多个终端数据段,并建立对应于每一个终端数据段的终端数据段id,并将这些终端数据段id写入在第二索引文件:s2.meta。

参照图3所示,当用户在虚拟机内修改了某个系统应用程序,包括该系统应用程序的第一数据段的数据段id,例如为b-1-2,也就是字节00a0000到00f0000的数据被修改,为了与原始数据区分开,修改后系统应用程序数据的数据段对应的数据段id不能再使用已有的数据段id:b-1-2,而是新增一个终端数据段id:b-2-2,用于表示终端磁盘内字节00a0000到00f0000的数据。

又例如,当用户在虚拟机内安装了新的应用程序,也就相当于在s2中写入了新的数据段,例如终端数据段id为b-2-100和b-2-200的数据段。那么所述被修改的数据段b-2-2以及新写入的数据段b-2-100和b-2-200内的数据即为终端磁盘多于初始快照的增量数据。

在本发明一实施例中,步骤s205,即基于所述初始快照和所述增量数据,创建所述数据文件的当前快照的步骤可以包括如下子步骤:

s2051,对比所述第一索引文件和所述第二索引文件;

s2052,当所述第二索引文件中的终端数据段id存在于所述第一索引文件时,以所述元数据段id对应的初始快照作为第一部分当前快照;

s2053,当所述第二索引文件中的终端数据段id不存在于所述第一索引文件时,以所述终端数据段id对应的数据文件的快照作为第二部分当前快照。

在上述子步骤中,简单地说,当前快照是由两部分组成的:第一部分是原本已存在于存储服务器中的初始快照,第二部分是用户在终端磁盘上进行修改或新增的内容,这一部分内容(增量数据)之前未创建过快照。在步骤s2053中,对这一部分修改或新增的数据建立快照,将第一部分快照和第二部分快照的总和作为数据文件的当前快照。

获知哪一部分数据为新增数据段(如图3的数据段b-2-100和b-2-200)、哪一部分数据为修改数据(如图3的b-2-2)是通过第一索引文件中的元数据段id和第二索引文件中的终端数据段id实现的,如上述步骤s200h。将终端数据段id对应的数据文件的快照作为增量数据的快照,与已存在的终端数据段id对应的数据文件的快照一起,共同生成数据文件的当前快照。

在本发明一实施例中,子步骤s2001d,即将每一个元数据段写入存储服务器,以生成初始快照的步骤可以包括:

s20011d,依次锁定所述每一个元数据段;

s20012d,在被锁定的元数据段有新的数据写入时,生成所述元数据段的子数据段,并将所述新的数据写入所述子数据段中;

s20013d,在复制所述锁定的数据段并写入到存储服务器时,检查是否存在所述元数据段对应的子数据段;

s20014d,若存在所述元数据段对应的子数据段时,释放被锁定的元数据段并将所述元数据段与其子数据段合并,复制合并后的元数据段并写入到存储服务器。

在上述步骤中,在步骤s20011d中,结合图3示例,例如可以依次锁定b-1-1、b-1-2、b-1-3、b-1-4、b-1-5直到b-1-n。在步骤s20012d中,例如被锁定的虚拟机内有新数据写入或者应用程序正在被更改,例如b-1-1内有新的数据写入,就新开一个子模块b-1-1-new,在该子模块中写入新的数据。在步骤s20013d中,例如,在复制数据段b-1-1并将其上传到存储服务器时,检查是否存在b-1-1-new;在步骤s20014d中,例如,当b-1-1-new存在时,则释放被锁定的b-1-1,然后将b-1-1与b-1-1-new合并成新数据段b-1-1,用新的数据段b-1-1内的数据覆盖原来的旧数据,复制合并后的b-1-1并写入存储服务器。

综上所述,本实施例提出的磁盘快照创建方法至少具有如下优点:

采用本发明第一实施例提供的磁盘快照的创建方法,可以在磁盘是已存在初始快照的公共镜像初始化出来的时候,直接使用已经存在的公共镜像的快照作为一部分快照,只需在存储服务器追加用户改写的部分,或在用户无改写时直接将初始快照作为当前快照。从而快速创建磁盘的当前快照,通过减少上传数据量来提高创建快照的速度;另一方面,利用存储服务器已有的初始快照生成终端磁盘的当前快照,可以避免在存储服务器重复存储已有数据,从而减少占用存储服务器的空间。

此外,本发明实施例提出的磁盘快照创建方法还具有如下优点:

在本发明实施例中,数据段的引入可以将数据传输变得更加智能,数据段id可以方便数据更快被查找到,通过对比数据段id而不是数据内容本身,可以极大缩减确定增量数据的耗时,进一步提高创建当前快照的速度。

在本发明实施例中,将新增数据段在复制过程中上“锁”,复制完成后开“锁”,复制过程中新i/o的写入通过创建子数据段来完成,能够实现在磁盘快照创建的同时,保证用户继续进行写入而无需停用服务器或应用,大大节约用户的时间和快照创建的便捷性。

第三实施例

本发明第三实施例提出一种磁盘快照的创建方法,如图4所示,该磁盘快照的创建方法可以包括如下步骤:

s301,接收终端发送的创建终端磁盘中的数据文件快照的指令;

s302,根据所述数据文关联的公共镜像id,查找存储服务器中是否存在该公共镜像id对应的公共镜像;

s303,当存在所述公共镜像时,对比所述数据文件与对应于所述公共镜像的初始快照;

s304当所述数据文件与对应于所述公共镜像的初始快照相同时,将所述初始快照作为数据文件的当前快照。

上述步骤s301至步骤s303与上一实施例的s201至步骤s203相同或相似,在此不再赘述。本实施例重点说明与上一实施例的不同之处。

在步骤s304中,继续以第一实施例提供的具体示例为依据,例如,用户从存储服务器下载系统centos7.0的公共镜像,利用该公共镜像初始化磁盘并创建一个虚拟机。不同的是,用户在创建完虚拟机后,没有在磁盘内再进行任何操作:例如修改系统应用或者安装新应用,也没有写入新数据。这样,一段时间后,当用户希望将当前时刻终端磁盘的数据在存储服务器创建一个当前快照时,可以直接将存储服务器内已有的初始快照作为当前快照,无需再上传任何数据。

在本实施例中,作为一种实施方式,在步骤s301,即接收终端发送的创建终端磁盘中的数据文件快照的指令的步骤之前,所述方法还可以包括:

s300a,利用元数据生成初始快照;

s300b,根据所述初始快照在存储服务器中创建公共镜像,并分配公共镜像id;

s300c,将存储服务器中的所述公共镜像作为数据文件写入所述终端磁盘;

s300d,将所述数据文件与所述公共镜像id关联。

上述步骤的描述s300a至s300d可以参照上一实施例中的s200a至s200d,在此不再赘述。

在本实施例中,作为一种实施方式,所述步骤s300a,即利用元数据生成初始快照的步骤可以包括如下子步骤:

s3001a,将元数据按照预设规则划分为多个元数据段;

s3001b,建立对应于每一个元数据段的元数据段id;

s3001c,将所述多个元数据段id写入第一索引文件;

s3001d,将每一个元数据段写入存储服务器,以生成初始快照;

s3001e,将所述初始快照与所述第一索引文件关联。

上述步骤的描述可以参考上一实施例中的步骤s2001a至s2001e,在此不再赘述。

在本实施例中,作为一种实施方式,在步骤s300d,即将所述数据文件与所述公共镜像id关联的步骤之后,所述方法还包括如下步骤:

s300e,将终端磁盘的所述数据文件按照所述预设规则划分为多个终端数据段;

s300f,建立对应于每一个终端数据段的终端数据段id;以及

s300g,将所述多个终端数据段id写入第二索引文件;

s300h,利用所述第一索引文件和第二索引文件,对比每一个元数据段和对应的终端数据段。

上述步骤的描述可以参考上一实施例的步骤并后s200f至步骤s200h,在此不再赘述。

在本发明一实施例中,作为一种实施方式,子步骤s3001d,即将每一个元数据段写入存储服务器,以生成初始快照的步骤可以包括:

s30011d,依次锁定所述每一个元数据段;

s30012d,在被锁定的元数据段有新的数据写入时,生成所述元数据段的子数据段,并将所述新的数据写入所述子数据段中;

s30013d,在复制所述锁定的数据段并写入到存储服务器时,检查是否存在所述元数据段对应的子数据段;

s30014d,若存在所述元数据段对应的子数据段时,释放被锁定的元数据段并将所述元数据段与其子数据段合并,复制合并后的元数据段并写入到存储服务器。

上述步骤的描述可以参考上一实施例的步骤并后s20011d至步骤s20014d,在此不再赘述。

通过上述可知,在本发明第三实施例中,提出的磁盘快照的创建方法具有如下技术效果:

在本实施例提出的磁盘快照创建方法中,可以在磁盘是已存在初始快照的公共镜像初始化出来的时候,直接使用已经存在的公共镜像的快照作为一部分快照,只需在存储服务器追加用户改写的部分,或在用户无改写时直接将初始快照作为当前快照。从而快速创建磁盘的当前快照,通过减少上传数据量来提高创建快照的速度;另一方面,利用存储服务器已有的初始快照生成终端磁盘的当前快照,可以避免在存储服务器重复存储已有数据,从而减少占用存储服务器的空间。

除此之外,本实施例的不同实施方式还可以具有如下技术效果:

在本实施例的实施方式中,数据段的引入可以将数据传输变得更加智能,数据段id可以方便数据更快被查找到,通过对比数据段id而不是数据内容本身,可以极大缩减确定增量数据的耗时,进一步提高创建当前快照的速度。

此外,将新增数据段在复制过程中上“锁”,复制完成后开“锁”,复制过程中新i/o的写入通过创建子数据段来完成,能够实现在磁盘快照创建的同时,保证用户继续进行写入而无需停用服务器或应用,大大节约用户的时间和快照创建的便捷性。

第四实施例

本发明第四实施例提出一种磁盘快照的创建装置,图5所示为本发明第四实施例的磁盘快照的创建装置的方框图。如图5所示,该磁盘快照的创建装置包括:

初始快照提供模块401,用于提供多个公共镜像以及所述公共镜像对应的初始快照,所述公共镜像关联有公共镜像id;

指令接收模块402,用于接收终端发送的创建终端磁盘中的数据文件快照的指令;

初始快照确定模块403,用于根据所述数据文件关联的公共镜像id,确定所述公共镜像id关联的公共镜像所对应的初始快照;

增量数据获取模块404,用于对比所述数据文件与所述初始快照,获取增量数据;

当前快照创建模块405,用于基于所述初始快照和所述增量数据,创建所述数据文件的当前快照。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。

综上所述,本实施例提出的磁盘快照创建装置至少具有如下优点:

采用本发明第一实施例提供的磁盘快照的创建方法,可以在磁盘是已存在初始快照的公共镜像初始化出来的时候,直接使用已经存在的公共镜像的快照作为一部分快照,只需在存储服务器追加用户改写的部分,或在用户无改写时直接将初始快照作为当前快照。从而快速创建磁盘的当前快照,通过减少上传数据量来提高创建快照的速度;另一方面,利用存储服务器已有的初始快照生成终端磁盘的当前快照,可以避免在存储服务器重复存储已有数据,从而减少占用存储服务器的空间。

第五实施例

本发明第五实施例提出一种磁盘快照创建装置,如图6所示,该磁盘快照创建装置包括:

初始快照提供模块501,用于提供多个公共镜像以及所述公共镜像对应的初始快照,所述公共镜像关联有公共镜像id;

指令接收模块502,用于接收终端发送的创建终端磁盘中的数据文件快照的指令;

初始快照确定模块503,用于根据所述数据文件关联的公共镜像id,确定所述公共镜像id关联的公共镜像所对应的初始快照;

增量数据获取模块504,用于对比所述数据文件与所述初始快照,获取增量数据;

当前快照创建模块505,用于基于所述初始快照和所述增量数据,创建所述数据文件的当前快照。

上述模块501至505与上一实施例的模块401至405相同或相似,本实施例着重描述与上一实施例的不同之处。

在本实施例中,作为一种实施方式,所述装置还包括:

公共镜像id获取模块506,用于从所述创建终端磁盘中的数据文件快照的指令中获取所述终端磁盘中的数据文件关联的公共镜像id;或在所述终端磁盘中获取所述终端磁盘中的数据文件关联的公共镜像id。

在本实施例中,作为一种实施方式,所述装置还包括:

初始快照生成模块507,用于利用元数据生成初始快照;

公共镜像创建模块508,用于根据所述初始快照在存储服务器中创建公共镜像,并分配公共镜像id;

数据文件写入模块509,用于将存储服务器中的所述公共镜像作为数据文件写入所述终端磁盘;

关联模块510,用于将所述数据文件与所述公共镜像id关联。

在本实施例中,作为一种实施方式,所述初始快照生成模块507包括:

数据段划分子模块,用于将元数据按照预设规则划分为多个元数据段;

元数据段id建立子模块,用于建立对应于每一个元数据段的元数据段id;

第一索引文件写入子模块,用于将所述多个元数据段id写入第一索引文件;

初始快照生成子模块,用于将每一个元数据段写入存储服务器,以生成初始快照;

关联子模块,用于将所述初始快照与所述第一索引文件关联。

在本实施例中,作为一种实施方式,所述装置还包括:

数据段划分模块511,用于将终端磁盘的所述数据文件按照所述预设规则划分为多个终端数据段;

终端数据段id建立模块512,用于建立对应于每一个终端数据段的终端数据段id;以及

第二索引文件写入模块513,用于将所述多个终端数据段id写入第二索引文件;

比对模块514,用于利用所述第一索引文件和第二索引文件,对比每一个元数据段和对应的终端数据段,获得修改数据段和新增数据段;

增量数据确定模块515,用于将所述修改数据段和所述新增数据段作为增量数据。

在本实施例中,作为一种实施方式,所述当前快照创建模块505包括:

比对子模块,用于对比所述第一索引文件和所述第二索引文件;

第一确定子模块,用于当所述第二索引文件中的终端数据段id存在于所述第一索引文件时,以所述元数据段id对应的初始快照作为第一部分当前快照;

第二确定子模块,用于当所述第二索引文件中的终端数据段id不存在于所述第一索引文件时,以所述终端数据段id对应的数据文件的快照作为第二部分当前快照。

在本实施例中,作为一种实施方式,所述初始快照生成子模块5074包括:

锁定单元,用于依次锁定所述每一个元数据段;

子数据段生成单元,用于在被锁定的元数据段有新的数据写入时,生成所述元数据段的子数据段,并将所述新的数据写入所述子数据段中;

子数据段检查单元,用于在复制所述锁定的数据段并写入到存储服务器时,检查是否存在所述元数据段对应的子数据段;

合并单元,用于若存在所述元数据段对应的子数据段时,释放被锁定的元数据段并将所述元数据段与其子数据段合并,复制合并后的元数据段并写入到存储服务器。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。

由上述可知,本实施例提出的磁盘快照创建装置至少具有如下优点:

采用本发明实施例提供的磁盘快照的创建装置,可以在磁盘是已存在初始快照的公共镜像初始化出来的时候,直接使用已经存在的公共镜像的快照作为一部分快照,只需在存储服务器追加用户改写的部分,或在用户无改写时直接将初始快照作为当前快照。从而快速创建磁盘的当前快照,通过减少上传数据量来提高创建快照的速度;另一方面,利用存储服务器已有的初始快照生成终端磁盘的当前快照,可以避免在存储服务器重复存储已有数据,从而减少占用存储服务器的空间。

除此之外,本实施例的不同实施方式提出的磁盘快照创建装置至少还包括如下优点:

在本实施例提出的磁盘快照创建装置中,数据段的引入可以将数据传输变得更加智能,数据段id可以方便数据更快被查找到,通过对比数据段id而不是数据内容本身,可以极大缩减确定增量数据的耗时,进一步提高创建当前快照的速度。

另外,将新增数据段在复制过程中上“锁”,复制完成后开“锁”,复制过程中新i/o的写入通过创建子数据段来完成,能够实现在磁盘快照创建的同时,保证用户继续进行写入而无需停用服务器或应用,大大节约用户的时间和快照创建的便捷性。

第六实施例

本发明第六实施例提出一种磁盘快照创建装置,如图7所示,该磁盘快照创建装置包括:

初始快照提供模块601,用于提供多个公共镜像以及所述公共镜像对应的初始快照,所述公共镜像关联有公共镜像id;

指令接收模块602,用于接收终端发送的创建终端磁盘中的数据文件快照的指令;

初始快照确定模块603,用于根据所述数据文件关联的公共镜像id,确定所述公共镜像id关联的公共镜像所对应的初始快照;

当前快照创建模块604,用于当所述数据文件与对应于所述公共镜像的初始快照相同时,将所述初始快照作为数据文件的当前快照。

上述模块601至603与上一实施例的模块501至503相同或相似,在此不再赘述。本实施例重点说明与上一实施例的不同之处。

在当前快照创建模块604中,还以第五实施例提供的具体示例为依据,例如,用户从存储服务器下载系统centos7.0的公共镜像,利用该公共镜像初始化磁盘并创建一个虚拟机。不同的是,用户在创建完虚拟机后,没有在磁盘内再进行任何操作:例如修改系统应用或者安装新应用,也没有写入新数据。这样,一段时间后,当用户希望将当前时刻终端磁盘的数据在存储服务器创建一个当前快照时,可以直接将存储服务器内已有的初始快照作为当前快照,无需再上传任何数据。

在本实施例中,作为一种实施方式,所述装置还包括:

初始快照生成模块605,用于利用元数据生成初始快照;

公共镜像创建模块606,用于根据所述初始快照在存储服务器中创建公共镜像,并分配公共镜像id;

数据文件写入模块607,用于将存储服务器中的所述公共镜像作为数据文件写入所述终端磁盘;

关联模块608,用于将所述数据文件与所述公共镜像id关联。

在本实施例中,作为一种实施方式,所述初始快照生成模块605包括:

数据段划分子模块,用于将元数据按照预设规则划分为多个元数据段;

元数据段id建立子模块,用于建立对应于每一个元数据段的元数据段id;

第一索引文件写入子模块,用于将所述多个元数据段id写入第一索引文件;

初始快照生成子模块,用于将每一个元数据段写入存储服务器,以生成初始快照;

关联子模块,用于将所述初始快照与所述第一索引文件关联。

在本实施例中,作为一种实施方式,所述装置还包括:

数据段划分模块609,用于将终端磁盘的所述数据文件按照所述预设规则划分为多个终端数据段;

终端数据段id建立模块610,用于建立对应于每一个终端数据段的终端数据段id;以及

第二索引文件写入模块611,用于将所述多个终端数据段id写入第二索引文件;

比对模块612,用于利用所述第一索引文件和第二索引文件,对比每一个元数据段和对应的终端数据段。

在本实施例中,作为一种实施方式,所述初始快照生成子模块6054包括:

锁定单元,用于依次锁定所述每一个元数据段;

子数据段生成单元,用于在被锁定的元数据段有新的数据写入时,生成所述元数据段的子数据段,并将所述新的数据写入所述子数据段中;

子数据段检查单元,用于在复制所述锁定的数据段并写入到存储服务器时,检查是否存在所述元数据段对应的子数据段;

合并单元,用于若存在所述元数据段对应的子数据段时,释放被锁定的元数据段并将所述元数据段与其子数据段合并,复制合并后的元数据段并写入到存储服务器。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。

综上所述,本实施例提出的磁盘快照创建装置至少具有如下优点:

采用本发明实施例提供的磁盘快照的创建装置,可以在磁盘是已存在初始快照的公共镜像初始化出来的时候,直接使用已经存在的公共镜像的快照作为一部分快照,只需在存储服务器追加用户改写的部分,或在用户无改写时直接将初始快照作为当前快照。从而快速创建磁盘的当前快照,通过减少上传数据量来提高创建快照的速度;另一方面,利用存储服务器已有的初始快照生成终端磁盘的当前快照,可以避免在存储服务器重复存储已有数据,从而减少占用存储服务器的空间。

本申请实施例还提出一种电子装置,包括:

存储器,用于存储计算机可读程序;

处理器,当所述处理器读取所述存储器中的计算机可读程序时,所述电子装置执行如下操作:

提供多个公共镜像以及所述公共镜像对应的初始快照,所述公共镜像关联有公共镜像id;

接收终端发送的创建终端磁盘中的数据文件快照的指令;

根据所述数据文件关联的公共镜像id,确定所述公共镜像id关联的公共镜像所对应的初始快照;

对比所述数据文件与所述初始快照,获取增量数据;

基于所述初始快照和所述增量数据,创建所述数据文件的当前快照。

本申请实施例还提出一种电子装置,包括:

存储器,用于存储计算机可读指令;

处理器,所述处理器执行上述存储器中的计算机可读指令,使所述电子装置执行下述操作,包括:

提供多个公共镜像以及所述公共镜像对应的初始快照,所述公共镜像关联有公共镜像id;

接收终端发送的创建终端磁盘中的数据文件快照的指令;

根据所述数据文件关联的公共镜像id,确定所述公共镜像id关联的公共镜像所对应的初始快照;

当所述数据文件与对应于所述公共镜像的初始快照相同时,将所述初始快照作为数据文件的当前快照。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

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

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

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

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

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

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种磁盘快照创建方法和磁盘快照创建装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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