一种分布式存储系统ROW快照实现方法及相关组件与流程

文档序号:22400694发布日期:2020-09-29 18:12阅读:409来源:国知局
一种分布式存储系统ROW快照实现方法及相关组件与流程

本申请涉及存储系统技术领域,特别涉及一种分布式存储系统row快照实现方法、装置、设备及一种可读存储介质。



背景技术:

快照是关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像,快照卷可以用于回滚数据,打快照之后再修改数据,可以直接根据快照的修改的版本号回滚数据,快速恢复数据到修改之前。目前快照主要有两种实现方式,一种是cow(copy-on-write写时拷贝),另一种是row(redirect-on-write写时重定向)。

row指更新源数据卷中的原始数据时,将源数据卷数据指针表中的被更新原始数据指针重定向到新的存储空间。用户创建源数据卷的快照后的写操作会被重定向,所有的写io都被重定向到新卷中,而所有快照卷数据(旧数据)均保留在只读的源数据卷中。cow指当数据第一次写到某个存储位置时,首先会将这个位置原有的数据复制一份到快照空间(为快照分配的存储空间),随后才会将数据写入该存储位置,下一次的写入则不会再执行写时复制动作,实现了保存原始数据的效果。

row在更新源数据卷只需要一次写操作,解决了cow需要将改写的数据复制一份然后在原位置改写数据,存在需要写两次的性能问题。所以row最明显的优势就是不会降低源数据卷的写性能;但是row的快照卷数据指针表保存的是源数据卷的原始副本,而源数据卷数据指针表保存的则是更新后的副本,快照数据卷保存了一部分数据操作指针,这导致在删除快照卷之前需要将快照卷数据指针表指向的数据同步至源数据卷中。而且当创建了多个快照后,会产生一个快照链,使原始数据的访问、快照卷和源数据卷的追踪以及快照的删除将变得异常复杂,所以row的一个缺点是没有一个完整的快照卷,而是由多个不同时刻的快照卷来组成一个特定的快照时间点,如果快照层级越多,进行快照恢复时的系统开销会比较大。另外,由于row都会更新数据指针,数据会写到新的位置,源数据卷数据指针指向的数据会很快的被重定向分散(不连续),所以row的另一个主要缺点读性能低。

因此,如何解决row快照恢复过程中快照层级越多导致的系统开销大的问题,同时保证读性能,是本领域技术人员急需解决的问题。



技术实现要素:

本申请的目的是提供一种分布式存储系统row快照实现方法,该方法可以解决row快照恢复过程中快照层级越多导致的系统开销大的问题的同时保证读性能;本申请的另一目的是提供一种分布式存储系统row快照实现装置、设备及一种可读存储介质。

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

启动更新源数据卷中的原始数据后,创建一个新的快照数据,复制原始数据的可索引项;

申请新的存储空间,并将更新后的所述原始数据作为新数据写入至所述存储空间;

将指向所述新数据的指针更新至所述原始数据的数据指针表中。

可选地,启动更新源数据卷中的原始数据后,创建一个新的快照数据,复制原始数据的可索引项,包括:

启动更新源数据卷中的原始数据后,创建一个新的快照数据,复制原始数据的元数据信息以及数据指针表,作为所述可索引项。

可选地,在将指向所述新数据的指针更新至所述原始数据的数据指针表中之后,还包括:返回数据更新完成的提示信息。

可选地,申请新的存储空间,并将更新后的所述原始数据作为新数据写入至所述存储空间,包括:

在空闲空间中随机确定空闲块,作为新的存储空间,并将更新后的所述原始数据作为新数据写入至所述存储空间。

本申请还提供了一种分布式存储系统row快照实现装置,包括:

数据复制单元,用于启动更新源数据卷中的原始数据后,创建一个新的快照数据,复制原始数据的可索引项;

数据更新单元,用于申请新的存储空间,并将更新后的所述原始数据作为新数据写入至所述存储空间;

指针更新单元,用于将指向所述新数据的指针更新至所述原始数据的数据指针表中。

可选地,所述数据复制单元具体为:第一复制单元,用于:启动更新源数据卷中的原始数据后,创建一个新的快照数据,复制原始数据的元数据信息以及数据指针表,作为所述可索引项。

可选地,所述分布式存储系统row快照实现装置还包括:信息返回单元,所述信息返回单元连接于所述指针更新单元,用于在将指向所述新数据的指针更新至所述原始数据的数据指针表中之后,返回数据更新完成的提示信息。

可选地,所述数据更新单元具体为第一更新单元,用于:在空闲空间中随机确定空闲块,作为新的存储空间,并将更新后的所述原始数据作为新数据写入至所述存储空间。

本申请还提供了一种计算机设备,包括:

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

处理器,用于执行所述计算机程序时实现所述的分布式存储系统row快照实现方法的步骤。

本申请还提供了一种可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现所述分布式存储系统row快照实现方法的步骤。

本申请所提供的分布式存储系统row快照实现方法,当更新源数据卷中的原始数据时,将源数据卷数据指针表中的被更新原始数据指针重定向到新的存储空间,源数据卷创建快照后的写操作会被重定向,所有的写io都被重定向到新卷中,而所有快照卷数据(旧数据)均保留在只读的源数据卷中,只更新指针,不需要复制数据,因此可以解决“快照层级越多导致的进行快照恢复时的系统开销会比较大”的问题;另外,更新源数据卷只需要一次写操作,也解决了cow写两次的性能问题,从而不会降低源数据卷的写性能。

本申请还提供了一种分布式存储系统row快照实现装置、设备及一种可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

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

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

图2为本申请实施例提供的一种分布式存储系统row快照实现装置的结构框图;

图3为本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

本申请的核心是提供一种分布式存储系统row快照实现方法,该方法可以解决row快照恢复过程中快照层级越多导致的系统开销大的问题的同时保证读性能;本申请的另一核心是提供一种分布式存储系统row快照实现装置、设备及一种可读存储介质。

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

在传统计算机设备上,row快照在多次读写后,源数据卷的数据被分散,对于连续读写的性能不如cow,所以row比较适合写密集类型的存储系统。一般而言,读写性能的瓶颈都在磁盘上,而分布式存储的特性是数据越是分散到不同的计算机设备中,系统性能越高。因此,在分布式计算机设备上,row的源数据卷重定向分散性反而带来了好处,row的连续读写的性能会比cow更加好,同时row在更新源数据卷只需要一次写操作,解决了cow需要将改写的数据复制一份然后在原位置改写数据,存在需要写两次的性能问题,不会降低源数据卷的写性能,基于上述优势,row逐渐成为了业界的主流。

本申请提供了一种分布式存储系统row快照实现方法,可以在保证源数据卷重定向分散性增强分布式存储系统的连续读写性能,以及避免需要写两次所带来的性能问题得同时,降低系统开销。请参考图1,图1为本实施例提供的分布式存储系统row快照实现方法的流程图,该方法主要包括:

步骤s110、启动更新源数据卷中的原始数据后,创建一个新的快照数据,复制原始数据的可索引项;

创建一个新的快照数据,对原始数据做复制(copy)操作,复制原始数据的可索引项,其中可索引项指可以用于索引到原始数据的信息项,本实施例中对可索引项中具体包括的信息种类不做限定,优选地,可以将原始数据的元数据信息以及数据指针表,作为可索引项,根据这两项就可以索引到数据,数据种类少的同时可以实现精准索引,也可以避免大数据量复制带来的性能问题。本实施例中仅以该种可索引项的形式为例进行介绍,其他信息类型下的可索引项均可参照本实施例的介绍,在此不再赘述。

步骤s120、申请新的存储空间,并将更新后的原始数据作为新数据写入至存储空间;

申请新的存储空间,将被修改的数据写到新的存储空间。

需要说明的是,本步骤中对于申请的新的存储空间的位置不做限定,由于本申请应用于分布式存储系统,因此存储越分散读写性能越优,因此优选地,在空闲空间中随机确定空闲块,作为新的存储空间,并将更新后的原始数据作为新数据写入至存储空间,以适应分布式存储系统下的读写性能。

步骤s130、将指向新数据的指针更新至原始数据的数据指针表中。

更新原始数据的数据指针表,使其包含指向新数据的指针,至此,整体更新源数据卷的过程直至行了一次写操作,从而解决了cow写两次带来的性能问题,从而依照本实施例进行快照处理不会降低源数据卷的写性能;同时源数据卷数据指针表中的被更新原始数据指针重定向到新的存储空间。源数据卷创建快照后的写操作会被重定向,所有的写io都被重定向到新卷中,而所有快照卷数据(旧数据)均保留在只读的源数据卷中,避免了快照层级对于快照恢复时的系统开销大的问题,可以有效提升系统运维成本以及效率。

进一步地,在将指向新数据的指针更新至原始数据的数据指针表中之后,可以返回数据更新完成的提示信息,以便提示当前源数据卷中的原始数据更新操作的完成,以便启动后续的操作。当然,也可以不执行提示信息的返回操作,本实施例中对此不作限定。

基于上述介绍,本实施例提供的分布式存储系统row快照实现方法,当更新源数据卷中的原始数据时,将源数据卷数据指针表中的被更新原始数据指针重定向到新的存储空间,源数据卷创建快照后的写操作会被重定向,所有的写io都被重定向到新卷中,而所有快照卷数据(旧数据)均保留在只读的源数据卷中,只更新指针,不需要复制数据,因此可以解决“快照层级越多导致的进行快照恢复时的系统开销会比较大”的问题;另外,更新源数据卷只需要一次写操作,也解决了cow写两次的性能问题,从而不会降低源数据卷的写性能。

请参考图2,图2为本实施例提供的分布式存储系统row快照实现装置的结构框图;4主要包括:数据复制单元210、数据更新单元220以及指针更新单元230。本实施例提供的分布式存储系统row快照实现装置可与上述分布式存储系统row快照实现方法相互对照。

其中,数据复制单元210主要用于启动更新源数据卷中的原始数据后,创建一个新的快照数据,复制原始数据的可索引项;

数据更新单元220主要用于申请新的存储空间,并将更新后的原始数据作为新数据写入至存储空间;

指针更新单元230主要用于将指向新数据的指针更新至原始数据的数据指针表中。

可选地,数据复制单元具体可以为:第一复制单元,第一复制单元主要用于:启动更新源数据卷中的原始数据后,创建一个新的快照数据,复制原始数据的元数据信息以及数据指针表,作为可索引项。

可选地,本实施例提供的分布式存储系统row快照实现装置中可以进一步包括:信息返回单元,信息返回单元连接于指针更新单元,用于在将指向新数据的指针更新至原始数据的数据指针表中之后,返回数据更新完成的提示信息。

可选地,数据更新单元具体可以为第一更新单元,第一更新单元主要用于:在空闲空间中随机确定空闲块,作为新的存储空间,并将更新后的原始数据作为新数据写入至存储空间。

本实施例提供一种计算机设备,主要包括:存储器以及处理器。

其中,存储器用于存储程序;

处理器用于执行程序时实现如上述实施例介绍的分布式存储系统row快照实现方法的步骤,具体可参照上述分布式存储系统row快照实现方法的介绍。

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

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

上面图1所描述的分布式存储系统row快照实现方法中的步骤可以由本实施例介绍的计算机设备的结构实现。

本实施例公开一种可读存储介质,其上存储有程序,程序被处理器执行时实现如上述实施例介绍的分布式存储系统row快照实现方法的步骤,具体可参照上述实施例中对分布式存储系统row快照实现方法的介绍。

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

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

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

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

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

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