一种数据存储方法及装置与流程

文档序号:17078307发布日期:2019-03-08 23:57阅读:169来源:国知局
一种数据存储方法及装置与流程

本申请涉及数据存储技术领域,尤其涉及一种数据存储方法及装置。



背景技术:

数据压缩是存储系统中的一个基本功能,是当前主流存储中设备中必备的一个功能点。

压缩功能的实现大致可分为实时压缩与后置压缩两大类。其中,实时压缩是在数据写入的过程中同时进行数据的压缩,将已压缩的数据写入存储池。而后置压缩则是先将数据写入存储池,然后在存储系统相对空闲时,在后台再将这些未压缩的数据进行压缩处理。

两种压缩的实现方式各有优劣:实时压缩更节省存储池的存储空间,但对存储计算能力的要求更高,对系统性能的影响也更大;而后置压缩方式对系统性能的影响基本可以忽略,但是由于需要先在存储池中保存未压缩的数据,再将其转为压缩数据,对存储空间大的损耗则会更大。



技术实现要素:

有鉴于此,本申请实施例提供了一种数据存储方法及装置,能够解决或部分解决现有技术中数据压缩影响系统存储性能、损耗系统存储空间的问题,能够在优先保证性能的情况下,尽可能降低存储空间损耗。

本申请实施例提供的一种数据存储方法,应用于存储系统,所述方法包括:

获取缓存区域的性能数据;所述性能数据反映所述存储系统的存储压力;

根据所述性能数据,从所述存储系统预先配置的多条压缩通道中确定使用的压缩通道;每条所述压缩通道采用的压缩算法的压缩率不同;

经所述使用的压缩通道对获得写数据进行压缩写入存储池。

可选的,所述根据所述性能数据,从所述存储系统预先配置的多条压缩通道中确定使用的压缩通道,具体包括:

根据所述性能数据确定所述存储系统当前的存储压力等级;

将所述多条压缩通道中与所述当前的存储压力等级对应的压缩通道确定为所述使用的压缩通道;所述多条压缩通道与所述存储压力等级一一对应,存储压力等级越高对应的压缩通道的压缩率越低。

可选的,所述方法还包括:

当所述存储池中存在未压缩的目标数据时,判断当前的存储压力等级是否小于预设值;

若是,则经所述使用的压缩通道对所述未压缩的目标数据进行压缩后再次写入所述存储池。

可选的,所述方法还包括:

当所述存储池中存在未压缩的目标数据时,判断当前的存储压力等级是否小于预设值;

若是,则经目标压缩通道对所述未压缩的目标数据进行压缩后再次写入所述存储池;所述目标压缩通道中采用的压缩算法的压缩率小于预设值。

可选的,所述多条压缩通道包括透传通道,所述透传通道的压缩率为零。

可选的,所述性能数据包括缓存占用率和/或存储响应延时。

本申请实施例提供的一种数据存储装置,应用于存储系统,包括:

压力监控模块,用于获取缓存区域的性能数据;所述性能数据包括缓存占用率和/或存储响应延时;

通道选择模块,用于根据所述性能数据,从所述存储系统预先配置的多条压缩通道中确定使用的压缩通道;每条所述压缩通道采用的压缩算法的压缩率不同;

数据压缩模块,用于经所述使用的压缩通道对获得写数据进行压缩写入存储池。

可选的,所述通道选择模块,具体包括:

等级确定子模块,用于根据所述性能数据确定所述存储系统当前的存储压力等级;

通道确定子模块,用于将所述多条压缩通道中与所述当前的存储压力等级对应的压缩通道确定为所述使用的压缩通道;所述多条压缩通道与所述存储压力等级一一对应,存储压力等级越高对应的压缩通道的压缩率越低。

可选的,所述装置还包括:

第一判断模块,用于判断所述存储池中是否存在未压缩的目标数据;

第二判断模块,用于当所述第一判断模块判断所述存储池中存在未压缩的目标数据时,判断当前的存储压力等级是否小于预设值;

所述数据压缩模块,还用于当所述判断模块的判断结果为是时,经所述使用的压缩通道对所述未压缩的目标数据进行压缩后再次写入所述存储池。

可选的,所述装置还包括:

第一判断模块,用于判断所述存储池中是否存在未压缩的目标数据;

第二判断模块,用于当所述第一判断模块判断所述存储池中存在未压缩的目标数据时,判断当前的存储压力等级是否小于预设值;

所述数据压缩模块,还用于当所述判断模块的判断结果为是时,经目标压缩通道对所述未压缩的目标数据进行压缩后再次写入所述存储池;所述目标压缩通道中采用的压缩算法的压缩率小于预设值。

与现有技术相比,本申请至少具有以下优点:

本申请实施例中,首先获取缓存区域的性能数据,根据该性能数据可以确定存储系统的存储压力。然后,根据该性能数据,从存储系统中预先配置的多条压缩通道中确定使用的压缩通道。每条压缩通道采用的压缩算法的压缩率不同。当系统存储压力过高时,可以采用一种压缩率低但更快速的压缩方法,甚至放弃压缩,以保证系统的存储性能;而当系统存储压力较低时,可以采用压缩率高的压缩方法以节约存储容量。本申请实施例提供的数据存储方法可以保证压缩率和系统性能之间平衡,能够在优先保证性能的情况下,尽可能降低存储空间损耗。

附图说明

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

图1为本申请实施例提供的一种数据存储方法的流程示意图;

图2为本申请实施例提供的另一种数据存储方法的流程示意图;

图3为本申请实施例提供的一种数据存储装置的结构示意图。

具体实施方式

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

首先需要说明的是,本申请实施例提供的数据存储方法及装置应用于存储系统,在此对存储系统的具体结构不进行限定,可以是任意一种存储系统。该存储系统接收到文件系统写入的数据后,先将数据在缓存区域中缓存再写入到存储池(如硬盘)中,实现数据的存储。

参见图1,该图为本申请实施例提供的一种数据存储方法的流程示意图。

本申请实施例提供的数据存储方法,包括:

s101:获取缓存区域的性能数据。

在本申请实施例中,缓存区域的性能数据能够反映存储系统的存储压力,例如,性能数据具体可以包括缓存占用率和/或存储响应延时。其中,缓存占用率代表了缓存中待写入的数据量,存储响应延时即数据从缓存读出至写入存储池的应答之间的时延,均反映了存储系统的存储压力。

s102:根据性能数据,从存储系统预先配置的多条压缩通道中确定使用的压缩通道。

在本申请实施例中,存储系统中预先配置的每条压缩通道采用的压缩算法的压缩率各不相同。通常情况下,压缩率越高的压缩算法耗费的时间也会相对长一些。存储系统中预先配置多条采用不同压缩率的压缩算法的压缩通道,可以根据存储系统的存储压力(即性能数据)有选择的对写数据所应用的压缩算法进行选择,在保证系统存储性能的基础上,达到节约存储空间的目的。

在一些可能的设计中,存储系统中预先配置的多条压缩通道还可以包括透传通道,透传通道不对数据进行压缩,其压缩率为零。

在本申请实施例一些可能的实现方式中,步骤s102具体可以包括:

s1021:根据性能数据确定存储系统当前的存储压力等级。

s1022:将多条压缩通道中与当前的存储压力等级对应的压缩通道确定为使用的压缩通道。

需要说明的是,多条压缩通道与存储压力等级一一对应,存储压力等级越高、存储系统的存储压力越高、对应的压缩通道的压缩率越低。

在本申请实施例中,可以预先根据性能数据对存储压力的等级进行划分,然后再根据每个存储压力等级对应的性能数据的范围,确定存储系统当前的存储压力等级,这里不再赘述。

s103:经使用的压缩通道对获得的写数据进行压缩写入存储池。

可以理解的是,写数据经压缩通道时,会利用该压缩通道采用的压缩算法对写数据进行压缩,压缩后的写数据存储在存储池中,可以节约存储空间。

还需要说明的是,在实际应用中,由于写数据存在为经压缩写入存储池的情况。因此,在本申请实施例一些可能的实现方式中,为了节约存储池的存储空间,如图2所示,该数据存储方法还可以包括:

s104:当存储池中存在未压缩的目标数据时,判断当前的存储压力等级是否小于预设值;若是,则执行步骤s105或者步骤s106。

在本申请实施例中,目标数据指的是需要在存储池中以压缩数据的形式所存储的数据,可以根据实际需要对目标数据的类型和/或大小进行设定,这里不再一一列举。

在当前的存储压力等级较小时,存储系统的存储压力低,对存储池中未压缩的目标数据进行压缩后再次写入存储池,可以在保证性能的基础上节约存储空间。

在本申请实施例中,将存储池中未压缩的目标数据进行压缩后再次写入存储池的实现方式至少存在以下两种,即当步骤s104的判断结果为是时,执行步骤s105或者步骤s106。

s105:经使用的压缩通道对未压缩的目标数据进行压缩后再次写入存储池。

在一种可能的实现方式中,可以利用根据缓存区域的性能数据所确定的使用的压缩通道来对未压缩的目标数据进行压缩后再次写入存储池。即使,未压缩的目标数据也可以通过缓存区域的性能数据对存储压力的反映,来保证系统的存储性能。

s106:经目标压缩通道对未压缩的目标数据进行压缩后再次写入存储池;目标压缩通道中采用的压缩算法的压缩率小于预设值。

在另一种可能的实现方式中,还可以通过选定的目标压缩通道对未压缩的目标数据进行压缩。为了保证系统对文件系统写入数据的处理性能,可以利用压缩率低但处理速度快的压缩通道对未压缩的目标数据进行压缩,即目标压缩通道中采用的压缩算法的压缩率小于预设值。实际应用中可以根据具体需要确定目标压缩通道,这里不再进行限定。

本申请实施例中,首先获取缓存区域的性能数据,根据该性能数据可以确定存储系统的存储压力。然后,根据该性能数据,从存储系统中预先配置的多条压缩通道中确定使用的压缩通道。每条压缩通道采用的压缩算法的压缩率不同。当系统存储压力过高时,可以采用一种压缩率低但更快速的压缩方法,甚至放弃压缩,以保证系统的存储性能;而当系统存储压力较低时,可以采用压缩率高的压缩方法以节约存储容量。本申请实施例提供的数据存储方法可以保证压缩率和系统性能之间平衡,能够在优先保证性能的情况下,尽可能降低存储空间损耗。

参见图3,该图为本申请实施例提供的一种数据存储装置的结构示意图。

本申请实施例提供的数据存储装置,包括:

压力监控模块100,用于获取缓存区域的性能数据;性能数据包括缓存占用率和/或存储响应延时;

通道选择模块200,用于根据性能数据,从存储系统预先配置的多条压缩通道中确定使用的压缩通道;每条压缩通道采用的压缩算法的压缩率不同;

数据压缩模块300,用于经使用的压缩通道对获得写数据进行压缩写入存储池。

在本申请实施例一些可能的实现方式中,通道选择模块200,具体可以包括:

等级确定子模块,用于根据性能数据确定存储系统当前的存储压力等级;

通道确定子模块,用于将多条压缩通道中与当前的存储压力等级对应的压缩通道确定为使用的压缩通道;多条压缩通道与存储压力等级一一对应,存储压力等级越高对应的压缩通道的压缩率越低。

在本申请实施例一些可能的实现方式中,该装置还可以包括:

第一判断模块,用于判断存储池中是否存在未压缩的目标数据;

第二判断模块,用于当第一判断模块判断存储池中存在未压缩的目标数据时,判断当前的存储压力等级是否小于预设值;

数据压缩模块,还用于当判断模块的判断结果为是时,经使用的压缩通道对未压缩的目标数据进行压缩后再次写入存储池。

在本申请实施例一些可能的实现方式中,该装置还可以包括:

第一判断模块,用于判断存储池中是否存在未压缩的目标数据;

第二判断模块,用于当第一判断模块判断存储池中存在未压缩的目标数据时,判断当前的存储压力等级是否小于预设值;

数据压缩模块,还用于当判断模块的判断结果为是时,经目标压缩通道对未压缩的目标数据进行压缩后再次写入存储池;目标压缩通道中采用的压缩算法的压缩率小于预设值。

本申请实施例中,首先获取缓存区域的性能数据,根据该性能数据可以确定存储系统的存储压力。然后,根据该性能数据,从存储系统中预先配置的多条压缩通道中确定使用的压缩通道。每条压缩通道采用的压缩算法的压缩率不同。当系统存储压力过高时,可以采用一种压缩率低但更快速的压缩方法,甚至放弃压缩,以保证系统的存储性能;而当系统存储压力较低时,可以采用压缩率高的压缩方法以节约存储容量。本申请实施例提供的数据存储方法可以保证压缩率和系统性能之间平衡,能够在优先保证性能的情况下,尽可能降低存储空间损耗。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

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

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

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

以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制。虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。

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