克隆卷数据拷贝方法、装置及计算机可读存储介质与流程

文档序号:17357640发布日期:2019-04-09 21:49阅读:211来源:国知局
克隆卷数据拷贝方法、装置及计算机可读存储介质与流程

本发明涉及数据处理技术领域,尤其涉及一种克隆卷数据拷贝方法、装置及计算机可读存储介质。



背景技术:

信息技术的加速发展,使得企业的关键业务数据的规模日益膨胀,企业不仅要求存储容量越来越大,对数据安全的要求也越来越高。随着存储应用需求的提高,用户需要在线的备份和保护数据。快照和克隆技术能够有效地实现在线数据保护和在线数据备份。快照是原始卷的一个完全可用拷贝,该拷贝包括原始卷在某个时间点的映像。指定数据集合称为原始卷,某个时间点的映像称为快照卷。

通常快照卷具有只读属性,当用户需要对快照卷上的数据内容进行修改或者在快照卷上写入新的数据时,需要建立该快照卷的克隆卷,在克隆卷上实现写操作。由于在给原始卷打快照时,并不会做数据拷贝,故在快照卷的克隆卷上也不会有数据拷贝,当用户访问克隆卷上的没有的数据时,需要从原始卷上拷贝。现有的解决办法是将原始卷上有而克隆卷上没有的数据一次性地全部拷贝到克隆卷中,但是这种拷贝方式会造成一段时间内系统读写繁忙,影响业务的运行,并且在实际应用中,往往原始卷中只有少部分存储空间存储了有意义的数据,而大部分存储空间存储的是克隆卷不会访问的数据,因此往往会导致克隆卷中拷贝了大量没有意义的数据,导致磁盘空间的浪费。



技术实现要素:

本发明提供一种克隆卷数据拷贝方法、装置及计算机可读存储介质,其主要目的在于减少克隆卷数据拷贝中磁盘空间的浪费和读写业务繁忙的情况。

为实现上述目的,本发明还提供一种克隆卷数据拷贝方法,该方法包括:

当接收到客户端对目标克隆卷的数据访问请求时,确定所述数据访问请求对应的访问对象,并查找所述目标克隆卷上是否有所述访问对象对应的数据内容;

若所述目标克隆卷上没有所述访问对象对应的数据内容,则确定与所述克隆卷对应的快照卷,并从所述快照卷上查找所述数据内容;

若当前的快照卷上没有所述数据内容,则按照当前的快照层级逐级从上一层级的快照卷中查找所述访问对象对应的数据内容,直至从一个层级的快照卷中查找到所述访问对象对应的数据内容;

若从任一层级的快照卷中查找到所述数据内容,则将所述数据内容发送至所述客户端;

若各个层级的快照卷中均没有所述数据内容,则从最高层级的快照卷对应的原始卷中查找所述数据内容,并将所述数据内容发送至所述客户端;

将所述数据内容写入到所述目标克隆卷中。

可选地,所述将所述数据内容写入到所述目标克隆卷中的步骤之前,所述方法还包括步骤:

确定接收到所述数据访问请求的时间点,并判断到所述时间点为止的预设时间间隔内,对所述数据内容的累计访问次数;

若所述累计访问次数大于或等于第一预设阈值,则执行将所述数据内容写入到所述目标克隆卷中的步骤。

可选地,所述将所述数据内容写入到所述目标克隆卷中的步骤之前,所述方法还包括步骤:

获取记录的所述数据内容的累计访问次数;

若所述累计访问次数大于或等于第二预设阈值,则执行所述将所述数据内容写入到所述目标克隆卷中的步骤:

若所述累计访问次数小于所述第二预设阈值,则更新所述累计访问次数。

可选地,所述方法还包括步骤:

每间隔预设时长,将各个克隆卷中记录的累计访问次数清零。

可选地,所述确定与所述克隆卷对应的快照卷,并从所述快照卷上查找所述数据内容的步骤之后,该方法还包括如下步骤:

若从所述快照卷上查找到所述访问对象对应的数据内容,则获取所述数据内容,并发送至所述客户端。

此外,为实现上述目的,本发明还提供一种克隆卷数据拷贝装置,该装置包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的数据拷贝程序,所述数据拷贝程序被所述处理器执行时实现如下步骤:

当接收到客户端对目标克隆卷的数据访问请求时,确定所述数据访问请求对应的访问对象,并查找所述目标克隆卷上是否有所述访问对象对应的数据内容;

若所述目标克隆卷上没有所述访问对象对应的数据内容,则确定与所述克隆卷对应的快照卷,并从所述快照卷上查找所述数据内容;

若当前的快照卷上没有所述数据内容,则按照当前的快照层级逐级从上一层级的快照卷中查找所述访问对象对应的数据内容,直至从一个层级的快照卷中查找到所述访问对象对应的数据内容;

若从任一层级的快照卷中查找到所述数据内容,则将所述数据内容发送至所述客户端;

若各个层级的快照卷中均没有所述数据内容,则从最高层级的快照卷对应的原始卷中查找所述数据内容,并将所述数据内容发送至所述客户端;

将所述数据内容写入到所述目标克隆卷中。

可选地,所述数据拷贝程序还可被所述处理器执行,以在所述将所述数据内容写入到所述目标克隆卷中的步骤之前,还实现如下步骤:

获取记录的所述数据内容的累计访问次数;

若所述累计访问次数大于或等于第二预设阈值,则执行所述将所述数据内容写入到所述目标克隆卷中的步骤:

若所述累计访问次数小于所述第二预设阈值,则更新所述累计访问次数。

可选地,所述数据拷贝程序还可被所述处理器执行,以实现如下步骤:

每间隔预设时长,将各个克隆卷中记录的累计访问次数清零。

可选地,所述数据拷贝程序还可被所述处理器执行,以在所述确定与所述克隆卷对应的快照卷,并从所述快照卷上查找所述数据内容的步骤之后,还实现如下步骤:

若从所述快照卷上查找到所述访问对象对应的数据内容,则获取所述数据内容,并发送至所述客户端。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据拷贝程序,所述数据拷贝程序可被一个或者多个处理器执行,以实现如上所述的克隆卷数据拷贝方法的步骤。

本发明提出的克隆卷数据拷贝方法、装置及计算机可读存储介质,当接收到客户端对目标克隆卷的数据访问请求时,确定数据访问请求对应的访问对象,并查找目标克隆卷上是否有访问对象对应的数据内容;若目标克隆卷上没有访问对象对应的数据内容,则确定与克隆卷对应的快照卷,并从快照卷上查找数据内容;若当前的快照卷上没有数据内容,则按照当前的快照层级逐级从上一层级的父镜像上查找访问对象对应的数据内容,直至从一个层级的父镜像中查找到访问对象对应的数据内容;若从任一层级的快照卷中查找到数据内容,则将数据内容发送至客户端;若各个层级的快照卷中均没有数据内容,则从最高层级的快照卷对应的原始卷中查找数据内容,并将数据内容发送至客户端;将数据内容写入到目标克隆卷中。该方案对于用户首次访问且克隆卷中没有的数据内容,从其父镜像中逐层级查找到后发送给客户端,并将其拷贝到克隆卷只能够的,如果用户再次访问,则可以直接从克隆卷中获取到数据,提高了克隆卷对于数据访问请求的响应速度,并且该方案无需将原始卷中的全部数据一次性的全部拷贝到快照卷中,减少了克隆卷数据拷贝中磁盘空间的浪费。

附图说明

图1为本发明一实施例提供的克隆卷数据拷贝方法的流程示意图;

图2为本发明一实施例提供的克隆卷数据拷贝方法中克隆卷与快照卷关联关系示意图;

图3为本发明一实施例提供的克隆卷数据拷贝方法的快照层级示意图;

图4为本发明一实施例提供的克隆卷数据拷贝装置的内部结构示意图;

图5为本发明一实施例提供的克隆卷数据拷贝装置中数据拷贝程序的模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种克隆卷数据拷贝方法。参照图1所示,为本发明一实施例提供的克隆卷数据拷贝方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。

在本实施例中,克隆卷数据拷贝方法包括:

步骤s10,当接收到客户端对目标克隆卷的数据访问请求时,确定所述数据访问请求对应的访问对象,并查找所述目标克隆卷上是否有所述访问对象对应的数据内容。

步骤s20,若所述目标克隆卷上没有所述访问对象对应的数据内容,则确定与所述克隆卷对应的快照卷,并从所述快照卷上查找所述数据内容。

快照是指对某一个特定文件系统在某一个特定时间内的一个具有只读属性的镜像。快照是为了保存某个时间点的系统现场.在某个时间点打个快照,那么访问快照得到的数据就是那个时间点里系统的数据。基于这样的原理,初始创建的快照卷中并没有存储父镜像中已经存储的信息,在快照时间点之后,没有物理数据复制发生,仅仅复制了原始数据物理位置的元数据。因此,快照创建非常快,可以瞬间完成。然后,跟踪原始卷的数据变化,一旦原始卷数据块发生首次更新,则先将原始卷数据块读出并写入快照卷,然后用新数据块覆盖原始卷。但是该快照卷具有只读属性,用户无法通过客户端对快照卷上的数据进行修改,也无法写入新数据。因此,当用户需要在快照卷上进行写操作时,建立该快照卷的克隆卷,克隆卷具有可读可写属性。

步骤s30,若当前的快照卷上没有所述数据内容,则按照当前的快照层级逐级从上一层级的快照卷中查找所述访问对象对应的数据内容,直至从一个层级的快照卷中查找到所述访问对象对应的数据内容。

步骤s40,若从任一层级的快照卷中查找到所述数据内容,则将所述数据内容发送至所述客户端。

步骤s50,若各个层级的快照卷中均没有所述数据内容,则从最高层级的快照卷对应的原始卷中查找所述数据内容,并将所述数据内容发送至所述客户端。

步骤s60,将所述数据内容写入到所述目标克隆卷中。

参照图3所示,快照卷c1、快照卷c2、快照卷c3分别为在三个不同时刻创建的原始卷c的快照卷,这三个快照卷对于用户来说,都只具有只读属性,假设用户要对快照卷c2进行写操作,此时可以创建快照卷c2的克隆卷d1。当用户访问克隆卷d1上的数据时,以该克隆卷为目标克隆卷,通过客户端向服务器发送对目标克隆卷的数据访问请求,服务器在接收到数据访问请求后,确定数据访问请求对应的访问对象,查找该目标克隆卷上是否有访问对象对应的数据。

对于服务器来说,在建立原始卷的快照卷之后,该快照卷是一个只具有读属性的镜像,当用户修改原始卷中的数据时,会将对应的数据拷贝到快照卷之后,用新的数据块覆盖原始卷中的数据块。而对于那些没有发生过修改的数据则不会被拷贝到快照卷中。由于克隆卷d1是对快照卷c2上当前的全部数据进行备份。也就是说,快照卷c2上没有的数据内容,克隆卷d1上也没有。因此,当用户访问克隆卷中的数据时,克隆卷中可能并不存在访问对象对应的具体数据内容,则需要从该克隆卷的父镜像中拷贝。具体地,从目标克隆卷对应的快照卷中查找访问对象对应的数据内容,若查找到,则发送至客户端,若查找不到,则按照当前的快照层级逐级从上一层级的快照卷中查找访问对象对应的数据内容,直至从一个层级的快照卷中查找到访问对象对应的数据内容,若从任一层级的快照卷中查找到数据内容,则将数据内容发送至客户端,若各个层级的快照卷中均没有所述数据内容,则从最高层级的快照卷对应的原始卷中查找数据内容,并将数据内容发送至所述客户端。

由于用户还可以根据需要建立快照卷的快照卷,这样会形成多层级快照,参照图4所示。

当快照层级过多时,一个快照卷的父镜像可能是快照卷的克隆卷,也可能是原始卷。例如,参照上图所示,快照卷c2为t2时刻创建的原始卷c的快照,快照卷c21为t2时刻创建的快照卷c2的快照,在为快照卷打快照时,先基于快照卷做一个克隆卷,再给克隆卷打快照。因此,要创建快照卷c2的快照,要先为其创建克隆卷c2’,再创建克隆卷c2’的快照卷c21.即快照卷c21的父镜像为克隆卷c2’,克隆卷c2’的父镜像为快照卷c2,快照卷c2的父镜像为原始卷c。该图为一个具有两个层级快照的情况,在实际应用中,用户可以根据需要创建更多层级的快照。当服务器从快照卷c21上查找不到访问对象对应的数据内容时,需要从其父镜像上查找,即从快照卷c2的克隆卷c2’上查找,然后从快照卷c2上查找,若从快照卷c2上仍然查找不到,则从其父镜像,即原始卷c上查找。即当存在多层级快照时,若从目标快照卷上查找不到需要的数据内容,则按照该目标快照卷当前的快照层级逐层级的从上一层级父镜像中查找,直至查找到需要的数据内容。

此外,可以理解的是,所述确定与所述克隆卷对应的快照卷,并从所述快照卷上查找所述数据内容的步骤之后,该方法还包括如下步骤:

若从所述快照卷上查找到所述访问对象对应的数据内容,则获取所述数据内容,并发送至所述客户端。若可以从快照卷c21或者快照卷c2上查找到需要的数据内容,则直接将数据内容发送至客户端。

进一步地,在一实施例中,在将所述数据内容写入到所述目标克隆卷中的步骤之前,该方法还包括步骤:获取记录的所述数据内容的累计访问次数;若所述累计访问次数大于或等于第二预设阈值,则执行所述将所述数据内容写入到所述目标克隆卷中的步骤:若所述累计访问次数小于所述第二预设阈值,则更新所述累计访问次数。

在该实施例中,在克隆卷中对访问对象的被访问次数进行统计,在获取到数据内容并发送给客户端之后,获取记录的数据内容的累计访问次数,并判断该次数是否大于或等于第二预设阈值,若是,则可以判定该数据被多次访问,未来被访问的可能性比较大,为了使得用户可以快速地获取到访问的数据内容,则将该数据内容写入到目标克隆卷中的,当用户下次访问时,可以直接从克隆卷中获取数据返回给客户端。若累计访问次数小于第二预设阈值,则无需拷贝数据,只需更新该累计访问次数即可。

通过这样的方式,在克隆卷中对那些只存在于父镜像的每个对象设置一个访问计数,如果在某段时间内超过设定的阀值。就自动的将该对象数据从父镜像拷贝到克隆卷中。对于那些不存在于克隆卷但又在某段时间内经常访问的数据,可以提高访问此数据的速度,避免了将数据一次性的从父镜像拷贝到克隆卷中,造成一段时间内系统读写繁忙影响业务运行。

进一步地,该方法还包括如下步骤:每间隔预设时长,将各个层级的快照卷和克隆卷中记录的累计访问次数清零。

访问计数的意义在于表明某段时间内该数据被访问的频繁程度。每间隔预设时长,将累计访问次数进行清零的意义在于:如果不清零,这个值代表的就是从系统开始运行以来访问的次数。这样的话,如果某些数据累计了半年才到达第二预设阈值,那么访问它的频率并不频繁,实际上也不需要把这样的数据拷贝到克隆卷上,避免占用额外的存储空间。

或者,在其他实施例中,确定接收到所述数据访问请求的时间点,并判断到所述时间点为止的预设时间间隔内,对所述数据内容的累计访问次数;若所述累计访问次数大于或等于第一预设阈值,则执行将所述数据内容写入到所述目标克隆卷中的步骤。

对于每个数据内容的访问时间进行统计,在客户端访问一数据内容后,对该数据内容在预设时间间隔内的被访问次数进行统计,若其大于或等于第一预设阈值,则将该数据内容写入到目标克隆卷中。

本实施例提出的克隆卷数据拷贝方法,当接收到客户端对目标克隆卷的数据访问请求时,确定数据访问请求对应的访问对象,并查找目标克隆卷上是否有访问对象对应的数据内容;若目标克隆卷上没有访问对象对应的数据内容,则确定与克隆卷对应的快照卷,并从快照卷上查找数据内容;若当前的快照卷上没有数据内容,则按照当前的快照层级逐级从上一层级的父镜像上查找访问对象对应的数据内容,直至从一个层级的父镜像中查找到访问对象对应的数据内容;若从任一层级的快照卷中查找到数据内容,则将数据内容发送至客户端;若各个层级的快照卷中均没有数据内容,则从最高层级的快照卷对应的原始卷中查找数据内容,并将数据内容发送至客户端;将数据内容写入到目标克隆卷中。该方案对于用户首次访问且克隆卷中没有的数据内容,从其父镜像中逐层级查找到后发送给客户端,并将其拷贝到克隆卷只能够的,如果用户再次访问,则可以直接从克隆卷中获取到数据,提高了克隆卷对于数据访问请求的响应速度,并且该方案无需将原始卷中的全部数据一次性的全部拷贝到快照卷中,减少了克隆卷数据拷贝中磁盘空间的浪费。

本发明还提供一种克隆卷数据拷贝装置。参照图4所示,为本发明一实施例提供的克隆卷数据拷贝装置的内部结构示意图。

在本实施例中,克隆卷数据拷贝装置1可以是pc(personalcomputer,个人电脑),也可以是智能手机、平板电脑、便携计算机等终端设备。该克隆卷数据拷贝装置1至少包括存储器11、处理器12,网络接口13以及通信总线。

其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是克隆卷数据拷贝装置1的内部存储单元,例如该克隆卷数据拷贝装置1的硬盘。存储器11在另一些实施例中也可以是克隆卷数据拷贝装置1的外部存储设备,例如克隆卷数据拷贝装置1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器11还可以既包括克隆卷数据拷贝装置1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于克隆卷数据拷贝装置1的应用软件及各类数据,例如数据拷贝程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行数据拷贝程序01等。

网络接口13可选的可以包括标准的有线接口、无线接口(如wi-fi接口),通常用于在该装置1与其他电子设备之间建立通信连接。

通信总线用于实现这些组件之间的连接通信。

可选地,该装置1还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在克隆卷数据拷贝装置1中处理的信息以及用于显示可视化的用户界面。

图4仅示出了具有组件11-13以及数据拷贝程序01的克隆卷数据拷贝装置1,本领域技术人员可以理解的是,图1示出的结构并不构成对克隆卷数据拷贝装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

在图4所示的装置1实施例中,存储器11中存储有数据拷贝程序01;处理器12执行存储器11中存储的数据拷贝程序01时实现如下步骤:

当接收到客户端对目标克隆卷的数据访问请求时,确定所述数据访问请求对应的访问对象,并查找所述目标克隆卷上是否有所述访问对象对应的数据内容。

若所述目标克隆卷上没有所述访问对象对应的数据内容,则确定与所述克隆卷对应的快照卷,并从所述快照卷上查找所述数据内容。

快照是指对某一个特定文件系统在某一个特定时间内的一个具有只读属性的镜像。快照是为了保存某个时间点的系统现场.在某个时间点打个快照,那么访问快照得到的数据就是那个时间点里系统的数据。基于这样的原理,初始创建的快照卷中并没有存储父镜像中已经存储的信息,在快照时间点之后,没有物理数据复制发生,仅仅复制了原始数据物理位置的元数据。因此,快照创建非常快,可以瞬间完成。然后,跟踪原始卷的数据变化,一旦原始卷数据块发生首次更新,则先将原始卷数据块读出并写入快照卷,然后用新数据块覆盖原始卷。但是该快照卷具有只读属性,用户无法通过客户端对快照卷上的数据进行修改,也无法写入新数据。因此,当用户需要在快照卷上进行写操作时,建立该快照卷的克隆卷,克隆卷具有可读可写属性。

若当前的快照卷上没有所述数据内容,则按照当前的快照层级逐级从上一层级的快照卷中查找所述访问对象对应的数据内容,直至从一个层级的快照卷中查找到所述访问对象对应的数据内容。

若从任一层级的快照卷中查找到所述数据内容,则将所述数据内容发送至所述客户端。

若各个层级的快照卷中均没有所述数据内容,则从最高层级的快照卷对应的原始卷中查找所述数据内容,并将所述数据内容发送至所述客户端。

将所述数据内容写入到所述目标克隆卷中。

参照图3所示,快照卷c1、快照卷c2、快照卷c3分别为在三个不同时刻创建的原始卷c的快照卷,这三个快照卷对于用户来说,都只具有只读属性,假设用户要对快照卷c2进行写操作,此时可以创建快照卷c2的克隆卷d1。当用户访问克隆卷d1上的数据时,以该克隆卷为目标克隆卷,通过客户端向服务器发送对目标克隆卷的数据访问请求,服务器在接收到数据访问请求后,确定数据访问请求对应的访问对象,查找该目标克隆卷上是否有访问对象对应的数据。

对于服务器来说,在建立原始卷的快照卷之后,该快照卷是一个只具有读属性的镜像,当用户修改原始卷中的数据时,会将对应的数据拷贝到快照卷之后,用新的数据块覆盖原始卷中的数据块。而对于那些没有发生过修改的数据则不会被拷贝到快照卷中。由于克隆卷d1是对快照卷c2上当前的全部数据进行备份。也就是说,快照卷c2上没有的数据内容,克隆卷d1上也没有。因此,当用户访问克隆卷中的数据时,克隆卷中可能并不存在访问对象对应的具体数据内容,则需要从该克隆卷的父镜像中拷贝。具体地,从目标克隆卷对应的快照卷中查找访问对象对应的数据内容,若查找到,则发送至客户端,若查找不到,则按照当前的快照层级逐级从上一层级的快照卷中查找访问对象对应的数据内容,直至从一个层级的快照卷中查找到访问对象对应的数据内容,若从任一层级的快照卷中查找到数据内容,则将数据内容发送至客户端,若各个层级的快照卷中均没有所述数据内容,则从最高层级的快照卷对应的原始卷中查找数据内容,并将数据内容发送至所述客户端。

由于用户还可以根据需要建立快照卷的快照卷,这样会形成多层级快照,参照图4所示。

当快照层级过多时,一个快照卷的父镜像可能是快照卷的克隆卷,也可能是原始卷。例如,参照上图所示,快照卷c2为t2时刻创建的原始卷c的快照,快照卷c21为t2时刻创建的快照卷c2的快照,在为快照卷打快照时,先基于快照卷做一个克隆卷,再给克隆卷打快照。因此,要创建快照卷c2的快照,要先为其创建克隆卷c2’,再创建克隆卷c2’的快照卷c21.即快照卷c21的父镜像为克隆卷c2’,克隆卷c2’的父镜像为快照卷c2,快照卷c2的父镜像为原始卷c。该图为一个具有两个层级快照的情况,在实际应用中,用户可以根据需要创建更多层级的快照。当服务器从快照卷c21上查找不到访问对象对应的数据内容时,需要从其父镜像上查找,即从快照卷c2的克隆卷c2’上查找,然后从快照卷c2上查找,若从快照卷c2上仍然查找不到,则从其父镜像,即原始卷c上查找。即当存在多层级快照时,若从目标快照卷上查找不到需要的数据内容,则按照该目标快照卷当前的快照层级逐层级的从上一层级父镜像中查找,直至查找到需要的数据内容。

此外,可以理解的是,数据拷贝程序01还可被处理器12执行,以在所述确定与所述克隆卷对应的快照卷,并从所述快照卷上查找所述数据内容的步骤之后,还实现如下步骤:

若从所述快照卷上查找到所述访问对象对应的数据内容,则获取所述数据内容,并发送至所述客户端。若可以从快照卷c21或者快照卷c2上查找到需要的数据内容,则直接将数据内容发送至客户端。

进一步地,在一实施例中,数据拷贝程序01还可被处理器12执行,以在将所述数据内容写入到所述目标克隆卷中的步骤之前,还实现如下步骤:获取记录的所述数据内容的累计访问次数;若所述累计访问次数大于或等于第二预设阈值,则执行所述将所述数据内容写入到所述目标克隆卷中的步骤:若所述累计访问次数小于所述第二预设阈值,则更新所述累计访问次数。

在该实施例中,在克隆卷中对访问对象的被访问次数进行统计,在获取到数据内容并发送给客户端之后,获取记录的数据内容的累计访问次数,并判断该次数是否大于或等于第二预设阈值,若是,则可以判定该数据被多次访问,未来被访问的可能性比较大,为了使得用户可以快速地获取到访问的数据内容,则将该数据内容写入到目标克隆卷中的,当用户下次访问时,可以直接从克隆卷中获取数据返回给客户端。若累计访问次数小于第二预设阈值,则无需拷贝数据,只需更新该累计访问次数即可。

通过这样的方式,在克隆卷中对那些只存在于父镜像的每个对象设置一个访问计数,如果在某段时间内超过设定的阀值。就自动的将该对象数据从父镜像拷贝到克隆卷中。对于那些不存在于克隆卷但又在某段时间内经常访问的数据,可以提高访问此数据的速度,避免了将数据一次性的从父镜像拷贝到克隆卷中,造成一段时间内系统读写繁忙影响业务运行。

进一步地,数据拷贝程序01还可被处理器12执行,以实现如下步骤:每间隔预设时长,将各个层级的快照卷和克隆卷中记录的累计访问次数清零。

访问计数的意义在于表明某段时间内该数据被访问的频繁程度。每间隔预设时长,将累计访问次数进行清零的意义在于:如果不清零,这个值代表的就是从系统开始运行以来访问的次数。这样的话,如果某些数据累计了半年才到达第二预设阈值,那么访问它的频率并不频繁,实际上也不需要把这样的数据拷贝到克隆卷上,避免占用额外的存储空间。

或者,在其他实施例中,确定接收到所述数据访问请求的时间点,并判断到所述时间点为止的预设时间间隔内,对所述数据内容的累计访问次数;若所述累计访问次数大于或等于第一预设阈值,则执行将所述数据内容写入到所述目标克隆卷中的步骤。

对于每个数据内容的访问时间进行统计,在客户端访问一数据内容后,对该数据内容在预设时间间隔内的被访问次数进行统计,若其大于或等于第一预设阈值,则将该数据内容写入到目标克隆卷中。

本实施例提出的克隆卷数据拷贝装置,当接收到客户端对目标克隆卷的数据访问请求时,确定数据访问请求对应的访问对象,并查找目标克隆卷上是否有访问对象对应的数据内容;若目标克隆卷上没有访问对象对应的数据内容,则确定与克隆卷对应的快照卷,并从快照卷上查找数据内容;若当前的快照卷上没有数据内容,则按照当前的快照层级逐级从上一层级的父镜像上查找访问对象对应的数据内容,直至从一个层级的父镜像中查找到访问对象对应的数据内容;若从任一层级的快照卷中查找到数据内容,则将数据内容发送至客户端;若各个层级的快照卷中均没有数据内容,则从最高层级的快照卷对应的原始卷中查找数据内容,并将数据内容发送至客户端;将数据内容写入到目标克隆卷中。该方案对于用户首次访问且克隆卷中没有的数据内容,从其父镜像中逐层级查找到后发送给客户端,并将其拷贝到克隆卷只能够的,如果用户再次访问,则可以直接从克隆卷中获取到数据,提高了克隆卷对于数据访问请求的响应速度,并且该方案无需将原始卷中的全部数据一次性的全部拷贝到快照卷中,减少了克隆卷数据拷贝中磁盘空间的浪费。

可选地,在其他的实施例中,数据拷贝程序还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述数据拷贝程序在克隆卷数据拷贝装置中的执行过程。

例如,参照图5所示,为本发明克隆卷数据拷贝装置一实施例中的数据拷贝程序的程序模块示意图,该实施例中,数据拷贝程序可以被分割为数据查找模块10、数据发送模块20和数据拷贝模块30,示例性地:

数据查找模块10用于:当接收到客户端对目标克隆卷的数据访问请求时,确定所述数据访问请求对应的访问对象,并查找所述目标克隆卷上是否有所述访问对象对应的数据内容;

数据查找模块10还用于:若所述目标克隆卷上没有所述访问对象对应的数据内容,则确定与所述克隆卷对应的快照卷,并从所述快照卷上查找所述数据内容;

以及,若当前的快照卷上没有所述数据内容,则按照当前的快照层级逐级从上一层级的快照卷中查找所述访问对象对应的数据内容,直至从一个层级的快照卷中查找到所述访问对象对应的数据内容;

数据发送模块20用于:若从任一层级的快照卷中查找到所述数据内容,则将所述数据内容发送至所述客户端;

数据查找模块10还用于:若各个层级的快照卷中均没有所述数据内容,则从最高层级的快照卷对应的原始卷中查找所述数据内容;

数据发送模块20还用于:将从原始卷中查找到的数据内容发送至所述客户端;

数据拷贝模块30用于:将所述数据内容写入到所述目标克隆卷中。

上述数据查找模块10、数据发送模块20和数据拷贝模块30等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据拷贝程序,所述数据拷贝程序可被一个或多个处理器执行,以实现如下操作:

当接收到客户端对目标克隆卷的数据访问请求时,确定所述数据访问请求对应的访问对象,并查找所述目标克隆卷上是否有所述访问对象对应的数据内容;

若所述目标克隆卷上没有所述访问对象对应的数据内容,则确定与所述克隆卷对应的快照卷,并从所述快照卷上查找所述数据内容;

若当前的快照卷上没有所述数据内容,则按照当前的快照层级逐级从上一层级的快照卷中查找所述访问对象对应的数据内容,直至从一个层级的快照卷中查找到所述访问对象对应的数据内容;

若从任一层级的快照卷中查找到所述数据内容,则将所述数据内容发送至所述客户端;

若各个层级的快照卷中均没有所述数据内容,则从最高层级的快照卷对应的原始卷中查找所述数据内容,并将所述数据内容发送至所述客户端;

将所述数据内容写入到所述目标克隆卷中。

本发明计算机可读存储介质具体实施方式与上述克隆卷数据拷贝装置和方法各实施例基本相同,在此不作累述。

需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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