一种分布式存储系统的快照回滚方法及相关装置与流程

文档序号:18189032发布日期:2019-07-17 05:30阅读:234来源:国知局
一种分布式存储系统的快照回滚方法及相关装置与流程

本申请涉及计算机技术领域,特别涉及一种分布式存储系统的快照回滚方法、快照回滚装置、服务器以及计算机可读存储介质。



背景技术:

在分布式存储系统中,为了对数据进行备份,通常保存存储系统中的数据为数据快照。需要将数据复原时,把保存的数据进行回滚就可以恢复某个卷的数据。通常分布式存储系统中快照回滚的方法是将快照数据中的每个存储单元的快照数据都回滚到卷中,从而完成整个快照的回滚,但是这样回滚的速度较慢,会占用大量系统资源。

因此,如何提高快照回滚的速度是本领域技术人员关注的重点问题。



技术实现要素:

本申请的目的是提供一种分布式存储系统的快照回滚方法、快照回滚装置、服务器以及计算机可读存储介质,通过位图数据对比快照数据和当前卷的数据得到差异数据,在执行回滚操作时只回滚差异数据对应的部分快照数据,减少了数据回滚的数据量,提高了数据回滚的速度和性能。

为解决上述技术问题,本申请提供一种分布式存储系统的快照回滚方法,包括:

存储节点根据接收到的快照回滚请求获取快照数据的快照位图数据和当前卷的当前位图数据;

将所述快照位图数据和所述当前位图数据发送至所述客户端,以使所述客户端根据所述快照位图数据和所述当前位图数据计算出差异数据,将所述差异数据发送至所述存储节点;

根据所述差异数据对所述快照数据中的对应数据执行回滚操作。

可选的,所述客户端根据所述快照位图数据和所述当前位图数据计算出差异数据,将所述差异数据发送至所述存储节点,包括:

客户端根据所述快照位图数据和所述当前位图数据进行对比处理,得到多个差异存储单元标识;

将多个所述差异存储单元标识的集合作为所述差异数据,将所述差异数据发送至所述存储节点。

可选的,根据所述差异数据对所述快照数据中的对应数据执行回滚操作,包括:

根据所述差异数据获取到多个所述差异存储单元标识;

获取所有所述差异存储单元标识对应的差异存储单元的快照数据,作为差异快照数据;

将所述差异快照数据保存在对应的差异存储单元中,以便完成所述回滚操作。

本申请还提供一种分布式存储系统的快照回滚方法,包括:

客户端向存储节点发送快照回滚请求,以使所述存储节点向所述客户端发送快照数据的快照位图数据和当前卷的当前位图数据;

将所述快照位图数据和所述当前位图数据进行差异计算得到差异数据;

将所述差异数据发送至所述存储节点,以使所述存储节点根据所述差异数据对所述快照数据中的对应数据执行回滚操作。

可选的,将所述快照位图数据和所述当前位图数据进行差异计算得到差异数据,包括:

客户端根据所述快照位图数据和所述当前位图数据进行对比处理,得到多个差异存储单元标识;

将多个所述差异存储单元标识的集合作为所述差异数据,将所述差异数据发送至所述存储节点。

本申请还提供一种分布式存储系统的快照回滚装置,包括:

位图数据获取模块,用于根据接收到的快照回滚请求获取快照数据的快照位图数据和当前卷的当前位图数据;

差异数据获取模块,用于将所述快照位图数据和所述当前位图数据发送至所述客户端,以使所述客户端根据所述快照位图数据和所述当前位图数据计算出差异数据,将所述差异数据发送至所述存储节点;

数据回滚处理模块,用于根据所述差异数据对所述快照数据中的对应数据执行回滚操作。

本申请还提供一种分布式存储系统的快照回滚装置,包括:

快照请求模块,用于向存储节点发送快照回滚请求,以使所述存储节点向所述客户端发送快照数据的快照位图数据和当前卷的当前位图数据;

差异计算模块,用于将所述快照位图数据和所述当前位图数据进行差异计算得到差异数据;

数据回滚模块,用于将所述差异数据发送至所述存储节点,以使所述存储节点根据所述差异数据对所述快照数据中的对应数据执行回滚操作。

本申请还提供一种服务器,包括:

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

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

本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的快照回滚方法的步骤。

本申请所提供的一种分布式存储系统的快照回滚方法,包括:存储节点根据接收到的快照回滚请求获取快照数据的快照位图数据和当前卷的当前位图数据;将所述快照位图数据和所述当前位图数据发送至所述客户端,以使所述客户端根据所述快照位图数据和所述当前位图数据计算出差异数据,将所述差异数据发送至所述存储节点;根据所述差异数据对所述快照数据中的对应数据执行回滚操作。

通过将快照数据的快照位图数据和当前存储数据的当前位图数据进行对比,得到差异数据,再根据差异数据对快照数据中的差异数据对应的部分数据执行回滚操作,就可以在回滚操作中只回滚部分数据完成分布式存储系统的快照回滚操作,减少回归操作中的数据量,提高回滚操作的速度,并且快照数据和当前数据对比速度较快,实现的复杂度较低,具有良好的运行性能。

本申请还提供一种分布式存储系统的快照回滚装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不做赘述。

附图说明

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

图1为本申请实施例所提供的一种分布式存储系统的快照回滚方法的流程图;

图2为本申请实施例所提供的另一种分布式存储系统的快照回滚方法的流程图;

图3为本申请实施例所提供的一种分布式存储系统的快照回滚装置的结构示意图;

图4为本申请实施例所提供的另一种分布式存储系统的快照回滚装置的结构示意图。

具体实施方式

本申请的核心是提供一种分布式存储系统的快照回滚方法、快照回滚装置、服务器以及计算机可读存储介质,通过位图数据对比快照数据和当前卷的数据得到差异数据,在执行回滚操作时只回滚差异数据对应的部分快照数据,减少了数据回滚的数据量,提高了数据回滚的速度和性能。

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

通常分布式存储系统中快照回滚的方法是将快照数据中的每个存储单元的都回滚到卷中,从而完成整个快照的回滚,但是这样回滚的速度较慢,会占用大量系统资源。

因此,本实施例提供一种快照回滚方法,通过将快照数据的快照位图数据和当前存储数据的当前位图数据进行对比,得到差异数据,再根据差异数据对快照数据中的差异数据对应的部分数据执行回滚操作,就可以在回滚操作中只回滚部分数据完成分布式存储系统的快照回滚操作,减少回归操作中的数据量,提高回滚操作的速度,并且快照数据和当前数据对比速度较快,实现的复杂度较低,具有良好的运行性能。

具体的,请参考图1,图1为本申请实施例所提供的一种分布式存储系统的快照回滚方法的流程图。

该方法可以包括:

s101,存储节点根据接收到的快照回滚请求获取快照数据的快照位图数据和当前卷的当前位图数据;

本实施例中通过快照数据的位图数据和当前卷的位图数据进行判断,因此,本步骤旨在根据接收到的回滚请求获取快照数据的快照数据位图数据和当前卷的当前位图数据。

其中,位图数据是对实际数据根据位图法获取的数组。通过位图数据可以判断两块数据中不同的数据是哪些,相同的数据是哪些。

本步骤中可以在元数据中提前设置好对数据求取位图数据,当进行数据回滚操作时,直接获取需要数据的位图数据,也就是本步骤中的快照位图数据和当前位图数据。

s102,将快照位图数据和当前位图数据发送至客户端,以使客户端根据快照位图数据和当前位图数据计算出差异数据,将差异数据发送至存储节点;

在步骤s101的基础上,本步骤旨在将快照位图数据和当前位图数据发送至客户端,使得客户端根据快照位图数据和当前位图数据计算出差异数据,并将差异数据发送至存储节点。

本实施例的主要技术方案是通过对比快照数据和当前卷的数据,得到差异数据。由于当前卷很脏不一定是所有数据发生了变化,因此得到差异数据后,只需要将差异数据对应的快照数据进行回滚操作,即可完成对数据的回滚,避免现有技术中对所有的快照数据进行回滚的方式,降低了回滚操作中对数据的操作量,提高了数据回滚的速度以及效率。

进一步,一般的本领域的公知常识可以发现对比两块数据的区别的方法是直接对比两块数据,但是一般卷中的数据量较大,将整块的数据进行对比不仅需要传输较大的数据量,对比过程耗时也较多。因此,本步骤中通过位图数据对两块数据进行对比,由于位图数据的数据量较小,传输时使用的数据量也较小,同时对比速度较快,可以进一步提高数据回滚操作的速度和效率。

例如,将快照位图数据和当前位图数据在相对应的位置分段,对比每个对应数据段的位图数据,判断每个段的数据是否相同,如果不相同就将该段标记为差异数据,此处将段作为对比的单位,所得到的差异数据也表示的是每个不同的段。也可以将其他单位的数据块作为位图数据进行对比的单位,在此不做具体限定。

可选的,本步骤可以包括:

步骤一、客户端根据快照位图数据和当前位图数据进行对比处理,得到多个差异存储单元标识;

步骤二、将多个差异存储单元标识的集合作为差异数据,将差异数据发送至存储节点。

本可选方案中,就是将存储单元作为位图数据对比的单位。通过对比会得到若干个差异存储单元标识,也就是得到了若干个指向差异存储单元的标识,通过所有的差异存储单元标识,存储节点就可以知道对哪些的单元的数据进行回滚。

需要说明的是,本步骤中将差异数据发送至存储节点,可以是同时将所有差异存储单元标识发送至存储节点,还可以是将差异数据中的差异存储单元标识依次发送至存储节点,存储节点每接收到一个差异存储单元标识,就根据差异存储单元标识将对应的存储单元的数据进行回滚操作。

s103,根据差异数据对快照数据中的对应数据执行回滚操作。

在步骤s102的基础上,本步骤就是根据差异数据,对快照数据中与差异数据对应的数据进行回滚操作,进而避免对快照数据的所有数据进行回滚,减少回滚操作的数据量,提高回滚操作的速度和效率。

可选的,本步骤可以包括:

步骤一、根据差异数据获取到多个差异存储单元标识;

步骤二、获取所有差异存储单元标识对应的差异存储单元的快照数据,作为差异快照数据;

步骤三、将差异快照数据保存在对应的差异存储单元中,以便完成回滚操作。

本可选方案中差异数据就是多个差异存储单元标识,通过所有的差存储单元标识获取到对应存储单元的快照数据,并作为差异快照数据,将差异快照数据保存在差异存储单元中,以便完成回滚操作。也就是将对应的差异快照数据覆盖在当前卷的对应位置中,也即差异存储单元中,完成数据的回滚操作。

综上,本实施例通过将快照数据的快照位图数据和当前存储数据的当前位图数据进行对比,得到差异数据,再根据差异数据对快照数据中的差异数据对应的部分数据执行回滚操作,就可以在回滚操作中只回滚部分数据完成分布式存储系统的快照回滚操作,减少回归操作中的数据量,提高回滚操作的速度,并且快照数据和当前数据对比速度较快,实现的复杂度较低,具有良好的运行性能。

上一实施例是在存储功能提供装置的一端对快照回滚方法进行说明,本申请还提供一种在客户端角度的快照回滚方法,通过客户端对位图数据的计算,可以使存储节点至回滚部分快照数据,减少回滚操作时的数据量,提高回滚操作的速度。

具体的,请参考图2,图2为本申请实施例所提供的另一种分布式存储系统的快照回滚方法的流程图。

该方法可以包括:

s201,客户端向存储节点发送快照回滚请求,以使存储节点向客户端发送快照数据的快照位图数据和当前卷的当前位图数据;

本步骤旨在客户端向存储节点发送快照回滚请求。一般的由于存储系统会存在多个快照数据,因此,快照回滚请求需要指定需要回滚的快照数据是具体哪一个快照数据,可以通过快照数据的时间进行指定,也可以通过快照数据的标识进行指定,还可以视应用情况选择合适的快照数据指定方式,在此不做具体限定。

当存储节点接收到快照回滚请求后,就可以根据快照回滚请求向客户端发送快照位图数据和当前位图数据。

s202,将快照位图数据和当前位图数据进行差异计算得到差异数据;

在步骤s201的基础上,本步骤旨在将快照位图数据和当前位图数据进行差异计算得到差异数据。

可选的,本步骤可以包括:

步骤一、客户端根据快照位图数据和当前位图数据进行对比处理,得到多个差异存储单元标识;

步骤二、将多个差异存储单元标识的集合作为差异数据,将差异数据发送至存储节点。

本可选方案将存储单元作为位图数据对比的单位,通过位图数据的对比可以得到数据发生变化的差异存储单元标识,该标识即对应了发生了变化的差异存储单元。

s203,将差异数据发送至存储节点,以使存储节点根据差异数据对快照数据中的对应数据执行回滚操作。

在步骤s202的基础上,本步骤旨在将差异数据发送至存储节点,以使该存储节点根据该差异数据对快照数据中的对应数据进行回滚操作,减少本次回滚操作的数据量,提高回滚操作的速度。

在以上所有实施例的基础上,本申请还提供一种更具体的快照回滚方法。

该方法可以包括:

步骤一、在存储节点中用一个位图单元记录整个卷和其快照之间的差异情况,以位图的方式只记录某个存储单元是否在快照和卷之间存在差异,不记录差异的多少;

步骤二、客户端节点与后端存储之间建立消息通讯机制,可以对位图单元进行读取和写入;

步骤三、对某个卷的快照进行回滚,只需要将属于此快照的位图单元获取到,然后按照此位图单元记录位图中有差异标识的存储单元,即为此卷需要进行回滚的存储单元;

步骤四、将上一步所记录的有差异的存储单元,即需要回滚的存储单元发送到存储节点进行回滚。

通过以上步骤在实际的数据回滚操作中,进行回滚的数据量较小,比将全部存储单元发送到后端进行回滚在网络中交互要大大减少时间,提高效率。

本申请实施例提供了一种快照回滚方法,可以通过将快照数据的快照位图数据和当前存储数据的当前位图数据进行对比,得到差异数据,再根据差异数据对快照数据中的差异数据对应的部分数据执行回滚操作,就可以在回滚操作中只回滚部分数据完成分布式存储系统的快照回滚操作,减少回归操作中的数据量,提高回滚操作的速度,并且快照数据和当前数据对比速度较快,实现的复杂度较低,具有良好的运行性能。

下面对本申请实施例提供的一种分布式存储系统的快照回滚装置进行介绍,下文描述的一种分布式存储系统的快照回滚装置与上文描述的一种分布式存储系统的快照回滚方法可相互对应参照。

请参考图3,图3为本申请实施例所提供的一种分布式存储系统的快照回滚装置的结构示意图。

该装置可以包括:

位图数据获取模块110,用于根据接收到的快照回滚请求获取快照数据的快照位图数据和当前卷的当前位图数据;

差异数据获取模块120,用于将快照位图数据和当前位图数据发送至客户端,以使客户端根据快照位图数据和当前位图数据计算出差异数据,将差异数据发送至存储节点;

数据回滚处理模块130,用于根据差异数据对快照数据中的对应数据执行回滚操作。

本申请实施例还提供另一种分布式存储系统的快照回滚装置。

具体的,请参考图4,图4为本申请实施例所提供的另一种分布式存储系统的快照回滚装置的结构示意图。

该装置可以包括:

快照请求模块210,用于向存储节点发送快照回滚请求,以使存储节点向客户端发送快照数据的快照位图数据和当前卷的当前位图数据;

差异计算模块220,用于将快照位图数据和当前位图数据进行差异计算得到差异数据;

数据回滚模块230,用于将差异数据发送至存储节点,以使存储节点根据差异数据对快照数据中的对应数据执行回滚操作。

本申请还提供一种服务器,包括:

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

处理器,用于执行计算机程序时实现如以上实施例的快照回滚方法的步骤。

本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如以上实施例的快照回滚方法的步骤。

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

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

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

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种分布式存储系统的快照回滚方法、快照回滚装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

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