一种快照管理方法、装置、设备及可读存储介质与流程

文档序号:17536983发布日期:2019-04-29 14:05阅读:131来源:国知局
一种快照管理方法、装置、设备及可读存储介质与流程

本发明涉及快照技术领域,特别是涉及一种快照管理方法、装置、设备及可读存储介质。



背景技术:

随着存储应用需求的提高,用户一般通过在线方式进行数据保护,以防范数据丢失。其中,快照则是在线存储设备防范数据丢失有效手段。

其中,文件快照功能主要是应用于文件系统中,通过对目录的快照操作,以便依据已生成快照进行回滚等实现恢复数据或其它目的。也就是说,文件快照可以支持快照、查看、删除和回滚操作。

目前,基于快照树对快照可实现快照管理,但是在对快照进行管理时,如进行查询快照时,通常需要遍历整个快照树。对于文件数量庞大的系统而言,其对应的快照树规模也随之庞大,这就导致需要耗费大量的时间去遍历整个快照数据,查询时间过长,且占用系统资源。

综上所述,如何有效地提高快照查询速度以提高快照管理效率等问题,是目前本领域技术人员急需解决的技术问题。



技术实现要素:

本发明的目的是提供一种快照管理方法、装置、设备及可读存储介质,以提高快照查询速度,进一步提升快照管理效率。

为解决上述技术问题,本发明提供如下技术方案:

一种快照管理方法,包括:

接收客户端发送的查询请求,并确定所述查询请求对应的查询对象;

当所述查询对象为文件系统的目标快照时,则读取所述文件系统的目录元数据;其中,所述目录元数据包括所述文件系统内各个快照元数据的存储位置信息;

利用所述目录元数据,获得所述目标快照的目标元数据;

将所述目标元数据发送给所述客户端。

优选地,若所述快照查询请求为查询文件系统内的全部快照时,还包括:

从缓存中,读取所述文件系统的元数据信息;所述元数据信息包括所述存储位置信息和各个所述快照元数据;

将所述元数据信息发送给所述客户端。

优选地,利用所述目录元数据,获得所述目标快照的目标元数据,包括:

利用所述目录元数据,确定所述目标元数据的目标存储位置;

从所述目标存储位置中,读取所述目标元数据。

优选地,所述快照的创建过程,包括:

文件系统快照管理服务端接收文件系统快照管理客户端发送的快照id分配请求;其中,所述快照id分配请求包括快照名、时间戳和目录索引节点号;

根据所述快照id分配请求,确定快照id,并将所述快照id发送给所述文件系统快照管理客户端;

记录所述快照id的分配记录,并以广播的方式,将所述分配记录发送给所述文件系统快照管理客户端,以便所述文件系统快照管理客户端更新缓存信息;

接收所述文件系统快照管理客户端返回的数据落盘请求,并返回落盘指令。

优选地,所述快照的创建过程,包括:

文件系统快照管理客户端接收客户端发送的快照创建请求,根据所述快照创建请求获得所述快照id分配请求;

将所述快照id分配请求发送给所述文件系统快照管理服务端;

接收所述文件系统快照管理服务端分配的所述快照id;

利用所述快照id创建快照,对缓存快照元数据进行更新;

向所述文件系统快照管理服务端发送所述数据落盘请求;

接收所述落盘指令,并对新创建的快照数据和元数据进行落盘操作。

优选地,创建所述快照后,包括:

获取新建快照的所述快照信息;

将所述快照信息的存储位置写入所述目录元数据中。

优选地,还包括:

若所述文件系统快照管理服务端故障,所述文件系统快照管理客户端可通过竞争的方式,成为所述文件系统快照管理服务端。

一种快照管理装置,包括:

查询请求接收模块,用于接收客户端发送的查询请求,并确定所述查询请求对应的查询对象;

目录元数据读取模块,用于当所述查询对象为文件系统的目标快照时,则读取所述文件系统的目录元数据;其中,所述目录元数据包括所述文件系统内各个快照元数据的存储位置信息;

目标元数据获取模块,用于利用所述目录元数据,获得所述目标快照的目标元数据;

目标元数据发送模块,用于将所述目标元数据发送给所述客户端。

一种快照管理设备,包括:

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

处理器,用于执行所述计算机程序时实现上述快照管理方法的步骤。

一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述快照管理方法的步骤。

应用本发明实施例所提供的方法,接收客户端发送的查询请求,并确定查询请求对应的查询对象;当查询对象为文件系统的目标快照时,则读取文件系统的目录元数据;其中,目录元数据包括文件系统内各个快照元数据的存储位置信息;利用目录元数据,获得目标快照的目标元数据;将目标元数据发送给客户端。

在本发明实施例中,将文件系统中每一个快照的元数据信息直接进行存储。具体的,即一个快照的元数据即该快照的快照信息,具体的快照信息包括快照id、快照名、时间戳和目录索引节点号。当接收到客户端发送的查询请求时,首先确定该查询请求的查询对象。若查询对象为文件系统的目标快照,则可读取文件系统的目录元数据信息。其中,目录元数据信息为文件系统内各个快照元数据的存储位置信息。也就是说,利用该存储位置信息可从缓存内存储的快照元数据中,获得目标快照的目标元数据。然后,将目标元数据发送给客户端。相较于现有的需要从快照树中进行遍历,而后才能获得快照的元数据信息的方式,本发明实施例所提供的方法,在接收快照查询请求时,无需通过遍历快照树的方式获得元数据信息,而是直接从缓存中读取元数据信息,可快速应答快照查询请求,进一步提高快照管理效率,提升用户体验。

相应地,本发明实施例还提供了与上述快照管理方法相对应的快照管理装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。

附图说明

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

图1为本发明实施例中一种快照管理方法的实施流程图;

图2为本发明实施例中一种快照创建流程示意图;

图3为本发明实施例中一种快照管理装置的结构示意图;

图4为本发明实施例中一种快照管理设备的结构示意图;

图5为本发明实施例中一种快照管理设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一:

请参考图1,图1为本发明实施例中一种快照管理方法的流程图,该方法可用于与服务器中,如元数据服务器。该方法包括以下步骤:

s101、接收客户端发送的查询请求,并确定查询请求对应的查询对象。

服务器接收到客户端发送的查询请求之后,首先确定该查询请求对应的查询对象,即确定请求查询的对象。在客户端发送的查询请求可包括查询对象的唯一标识,如id、唯一名称或路径等信息,即利用该唯一标识可确定出查询对象。该查询对象可为查询服务器中的任意一个具体的对象,如快照的元数据,文件的元数据。

s102、当查询对象为文件系统的目标快照时,则读取文件系统的目录元数据。

其中,目录元数据为文件系统内各个快照元数据的存储位置信息,快照元数据为创建或修改快照时,所记录的快照信息,快照信息包括快照id、快照名、时间戳和目录索引节点号。

在本发明实施例中,可预先将文件系统内的各个快照元数据的存储位置信息以及各个系统文件快照的元数据信息存储在缓存中。其中,目标元数据即为存储各个快照元数据时,所使用的存储位置信息,基于该存储位置信息可查找确定出每一个快照的元数据存储位置。快照元数据则具体为创建或修改快照时,所记录的快照信息,如快照id、快照名、时间戳和目录索引节点号。

需要说明的是,服务器的缓存中所存储的文件系统的元数据信息可为预先存储的,也可为在对快照进行管理的过程中记录的。

若是预先存储的则可通过遍历现有的基于快照树对快照进行管理的机制,通过对快照树进行遍历,获得文件系统的全部快照的元数据。在此不再赘述,具体如何遍历快照树,以获得元数据。显然,在管理过程中不断的获得元数据信息并存入缓存,更加的灵活。即在创建快照之后,可获取新建快照的快照信息;将快照信息的存储位置写入目录元数据中。具体的,下面以在创建过程中,将快照元数据存入缓存为例,进行详细说明。

需要说明的是,考虑到文件系统中,可对文件系统的快照进行管理的服务器数量可为多个,以进行业务均衡,提高响应速度,因此为了保障元数据信息的一致性,可将文件系统内的服务器划分为文件系统快照管理服务端和文件系统快照管理客户端,其中文件系统快照管理服务端对快照具有修改、创建删除和查询的权限,文件系统快照管理客户端对快照具体查询权限,也就是以主从节点的方式,来保障元数据信息的一致性,以提高元数据管理效率和准确性。

具体实现过程包括:

其中,文件系统快照管理服务端,即当服务器为文件系统快照管理服务端时,在创建快照的过程中执行以下步骤:

步骤一、接收文件系统快照管理客户端发送的快照id分配请求;其中,快照id分配请求包括快照名、时间戳和目录索引节点号;

步骤二、根据快照id分配请求,确定快照id,并将快照id发送给文件系统快照管理客户端;

步骤三、记录快照id的分配记录,并以广播的方式,将分配记录发送给文件系统快照管理客户端,以便文件系统快照管理客户端更新缓存信息;

步骤四、接收文件系统快照管理客户端返回的数据落盘请求,并返回落盘指令。

文件系统快照管理客户端,即当服务器为文件系统快照管理服务端时,在创建快照的过程中执行以下步骤:

步骤一、接收客户端发送的快照创建请求,根据快照创建请求获得快照id分配请求;

步骤二、将快照id分配请求发送给文件系统快照管理服务端;

步骤三、接收文件系统快照管理服务端分配的快照id;

步骤四、利用快照id创建快照,对缓存快照元数据进行更新;

步骤五、向文件系统快照管理服务端发送数据落盘请求;

步骤六、接收落盘指令,并对新创建的快照数据和元数据进行落盘操作。

由此可见,创建快照的过程中,文件系统快照管理服务端和文件系统快照管理服务端进行交互,从而保障缓存内的数据一致性。为了便于理解,请参考图2,图2为本发明实施例中一种快照创建流程示意图。其中文件系统快照管理服务端和文件系统快照管理服务端可为文件系统中的元数服务器。

即快照的创建过程具体为:

当客户端(snapclient)向元数据服务器(mds)发起快照创建请求时,若接收请求的文件系统快照管理客户端(snapclient)。首先,snapclient会先向(文件系统快照管理服务端)snapserver请求预分配一个(快照id)snapid,snapid在snapserver上可以依次递增来分配的,其上记录着最新一次创建快照的id。snapserver在预分配snapid时,首先在snapserver上根据请求消息中的快照名、时间戳、目录inode号,给其分配一个唯一的snapid,并记录在snapserver端。

snapserver端记录完成后,再向所有的snapclient上广播更新上的缓存。snapserver在接收到所有的snapclient的回复后,再答复发起请求的snapclient,并将预分配的snapid返回给snapclient。

snapclient接收到预分配的snapid后,再进行实际的快照创建操作。

显然,若接收文件系统快照管理服务端直接接收到客户端发送的快照创建请求,则在完成快照创建之后,直接将创建结果以广播的形式发送给文件系统快照管理客户端。

另外,快照删除/修改操作(指元数据操作)同创建操作流程类似,在此不再赘述。

优选地,若文件系统快照管理服务端故障,文件系统快照管理客户端可通过竞争的方式,成为文件系统快照管理服务端。其中,竞争的方式具体可采用锁机制,在此不再赘述锁机制的具体实现规则。即,当文件系统快照管理服务端故障时,可由正常运行的文件系统快照管理客户端获得文件系统快照管理服务端所具有的管理权限,即可成为文件系统快照管理服务端。优选地,服务器重新启动后,从文件系统快照管理服务端内获取元数据信息。为了保障数据的一致性,在服务器故障重启之后,直接从文件系统快照管理服务端内获取元数据信息,而无需恢复故障前存储在磁盘中的元数据信息。

也就是说,确定查询对象为文件系统的目标快照时,则从缓存中,读取文件系统的目录元数据。

s103、利用目录元数据,获得目标快照的目标元数据。

由于目录元数据记载了在缓存中存储各个快照元数据的存储位置信息,因此,可利用目录元数据从各个快照元数据中确定出目标快照的目标元数据。目标元数据即目标快照的元数据信息。该元数据信息具体包括快照id、快照名、时间戳和目录索引节点号。具体的,可利用目录元数据,确定目标元数据的目标存储位置;从目标存储位置中,读取目标元数据。也就是说,提高目录元数据,得到目标元数据的存储位置,进而从目标存储位置中读取目标元数据。其中,目标存储位置可具体为路径。

s104、将目标元数据发送给客户端。

得到目标元数据之后,便可直接将目标元数据发送给客户端,以便客户端呈现该目标元数据信息,或客户端基于该目标元数据对目标快照进行管理操作,或通过该目标元数据获取目标快照。

应用本发明实施例所提供的方法,接收客户端发送的查询请求,并确定查询请求对应的查询对象;当查询对象为文件系统的目标快照时,则读取文件系统的目录元数据;其中,目录元数据包括文件系统内各个快照元数据的存储位置信息;利用目录元数据,获得目标快照的目标元数据;将目标元数据发送给客户端。

在本发明实施例中,将文件系统中每一个快照的元数据信息直接进行存储。具体的,即一个快照的元数据即该快照的快照信息,具体的快照信息包括快照id、快照名、时间戳和目录索引节点号。当接收到客户端发送的查询请求时,首先确定该查询请求的查询对象。若查询对象为文件系统的目标快照,则可读取文件系统的目录元数据信息。其中,目录元数据信息为文件系统内各个快照元数据的存储位置信息。也就是说,利用该存储位置信息可从缓存内存储的快照元数据中,获得目标快照的目标元数据。然后,将目标元数据发送给客户端。相较于现有的需要从快照树中进行遍历,而后才能获得快照的元数据信息的方式,本发明实施例所提供的方法,在接收快照查询请求时,无需通过遍历快照树的方式获得元数据信息,而是直接从缓存中读取元数据信息,可快速应答快照查询请求,进一步提高快照管理效率,提升用户体验。

需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。

优选地,考虑到对快照进行管理时,会需要一次性获取整个文件系统的全部快照,为了提高需要获取全部快照元数据的响应速度,本发实施例提出如下处理过程:

步骤一、若快照查询请求为查询文件系统内的全部快照时,从缓存中,读取文件系统的元数据信息;元数据信息包括存储位置信息和各个快照元数据;

步骤二、将元数据信息发送给客户端。

为便于描述,下面将上述两个步骤结合起来进行说明。

若快照查询请求的查询对象为文件系统内的全部快照时,为了提高响应速度,此时可直接读取缓存内存储的文件系统的元数据信息。该元数据信息包括存储位置信息和每一个快照的快照元数据。然后,可元数据信息发送给客户端。如此,便可省去查找每一个目标快照的目标元数据的步骤,直接将整个文件系统的元数据信息发送给客户端,提高响应速度,改善用户体验。

实施例二:

相应于上面的方法实施例,本发明实施例还提供了一种快照管理装置,下文描述的快照管理装置与上文描述的快照管理方法可相互对应参照。

参见图3所示,该装置包括以下模块:

查询请求接收模块101,用于接收客户端发送的查询请求,并确定查询请求对应的查询对象;

目录元数据读取模块102,用于当查询对象为文件系统的目标快照时,则读取文件系统的目录元数据;其中,目录元数据包括文件系统内各个快照元数据的存储位置信息;

目标元数据获取模块103,用于利用目录元数据,获得目标快照的目标元数据;

目标元数据发送模块104,用于将目标元数据发送给客户端。

应用本发明实施例所提供的装置,接收客户端发送的查询请求,并确定查询请求对应的查询对象;当查询对象为文件系统的目标快照时,则读取文件系统的目录元数据;其中,目录元数据包括文件系统内各个快照元数据的存储位置信息;利用目录元数据,获得目标快照的目标元数据;将目标元数据发送给客户端。

在本发明实施例中,将文件系统中每一个快照的元数据信息直接进行存储。具体的,即一个快照的元数据即该快照的快照信息,具体的快照信息包括快照id、快照名、时间戳和目录索引节点号。当接收到客户端发送的查询请求时,首先确定该查询请求的查询对象。若查询对象为文件系统的目标快照,则可读取文件系统的目录元数据信息。其中,目录元数据信息为文件系统内各个快照元数据的存储位置信息。也就是说,利用该存储位置信息可从缓存内存储的快照元数据中,获得目标快照的目标元数据。然后,将目标元数据发送给客户端。相较于现有的需要从快照树中进行遍历,而后才能获得快照的元数据信息的方式,本发明实施例所提供的装置,在接收快照查询请求时,无需通过遍历快照树的方式获得元数据信息,而是直接从缓存中读取元数据信息,可快速应答快照查询请求,进一步提高快照管理效率,提升用户体验。

在本发明的一种具体实施方式中,还包括:

快捷应答模块,用于若快照查询请求为查询文件系统内的全部快照时,从缓存中,读取文件系统的元数据信息;元数据信息包括存储位置信息和各个快照元数据;将元数据信息发送给客户端。

在本发明的一种具体实施方式中,目标元数据获取模块103,具体用于利用目录元数据,确定目标元数据的目标存储位置;从目标存储位置中,读取目标元数据。

在本发明的一种具体实施方式中,还包括:

第一快照创建模块,用于接收文件系统快照管理客户端发送的快照id分配请求;其中,快照id分配请求包括快照名、时间戳和目录索引节点号;根据快照id分配请求,确定快照id,并将快照id发送给文件系统快照管理客户端;记录快照id的分配记录,并以广播的方式,将分配记录发送给文件系统快照管理客户端,以便文件系统快照管理客户端更新缓存信息;接收文件系统快照管理客户端返回的数据落盘请求,并返回落盘指令。

在本发明的一种具体实施方式中,还包括:

第一快照创建模块,用于接收客户端发送的快照创建请求,根据快照创建请求获得快照id分配请求;将快照id分配请求发送给文件系统快照管理服务端;接收文件系统快照管理服务端分配的快照id;利用快照id创建快照,对缓存快照元数据进行更新;向文件系统快照管理服务端发送数据落盘请求;接收落盘指令,并对新创建的快照数据和元数据进行落盘操作。

在本发明的一种具体实施方式中,还包括:

快照元数据存储模块,用于创建快照后,获取新建快照的快照信息;将快照信息的存储位置写入目录元数据中。

在本发明的一种具体实施方式中,还包括:

竞争模块,用于若文件系统快照管理服务端故障,文件系统快照管理客户端可通过竞争的方式,成为文件系统快照管理服务端。

需要说明的是,第一快照创建模块和第二快照创建模块可同时存在于该装置中,第一快照创建模块和第二快照创建模块可根据当前所在的服务器的主从身份的切换为被激活。即当前服务器为文件系统快照管理服务端时,第一快照创建模块处于激活状态;当前服务器为文件系统快照管理服务端时,第二快照创建模块处于激活状态。例如,可用上述竞争模块进行切换激活状态。当然,在同一个服务器中,可存在文件系统快照管理服务端,也可存在文件系统快照管理客户端,当然也可二者并存在,但对于同一个文件系统而言仅存在一个文件系统快照管理服务端。

实施例三:

相应于上面的方法实施例,本发明实施例还提供了一种快照管理设备,下文描述的一种快照管理设备与上文描述的一种快照管理方法可相互对应参照。

参见图4所示,该快照管理设备包括:

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

处理器d2,用于执行计算机程序时实现上述方法实施例的快照管理方法的步骤。

具体的,请参考图5,为本实施例提供的一种快照管理设备的具体结构示意图,该快照管理设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在快照管理设备301上执行存储介质330中的一系列指令操作。

快照管理设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等。

上文所描述的快照管理方法中的步骤可以由快照管理设备的结构实现。

实施例四:

相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种快照管理方法可相互对应参照。

一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的快照管理方法的步骤。

该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

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