1、第三等级的SLA,其读响应时延区间为600ms,750ms,去重比率区间为0.25,1);第四等级的SLA,其读响应时延区间为600ms,750ms,去重比率区间为0.1,0.25;第五等级的SLA,其读响应时延区间为750ms,900ms,去重比率区间为0.25,1);第六等级的SLA,其读响应时延区间为750ms,900ms,去重比率区间为0.1,0.25;第七等级的SLA,其读响应时延区间为900ms,1200ms,去重比率区间为0.25,1);第八等级的SLA,其读响应时延区间为900ms,1200ms,去重比率区间为0.1,0.25。4. 根据权利要求1所述的冗余数据去重方法,其特征
2、在于:所述的去重器采用基于优先度分层级的冗余数据去重方案对系统进行去重,具体过程如下:(1)基于文件语义,计算出系统中每个文件的去重优先度;(2)从系统的全局文件索引中提取去重优先度最大的n个文件的文件位置记录,n为大于1的自然数;(3)根据文件位置记录对上述n个文件进行分层级的冗余数据去重:首先,对这n个文件进行GFD,进而更新全局文件索引;初始,这n个文件的文件位置记录均被标记成“脏”,而对于通过GFD去除冗余数据后文件的文件位置记录则标记为“干净”;然后,对经过GFD处理后文件位置记录仍标记为“脏”的文件进行LCD,进而更新本地数据块索引;(4)根据步骤(1)至(3),反复执行。5. 根
3、据权利要求4所述的冗余数据去重方法,其特征在于:所述的步骤(1)中通过以下公式计算每个文件的去重优先度:其中:为文件的去重优先度,H为文件最近访问时间的优先值,G为文件大小的优先值,E为文件类型的优先值,13分别为对应H、G和E的权重系数。6. 根据权利要求5所述的冗余数据去重方法,其特征在于:所述优先值H的确定标准如下:若文件最近访问时间大于1个月,则H=7;若文件最近访问时间大于15天且小于等于1个月,则H=6;若文件最近访问时间大于7天且小于等于15天,则H=5;若文件最近访问时间大于3天且小于等于7天,则H=4;若文件最近访问时间大于1天且小于等于3天,则H=3;若文件最近访问时间大于
4、12小时且小于等于1天,则H=2;若文件最近访问时间大于6小时且小于等于12小时,则H=1;若文件最近访问时间小于等于6小时,则H=-1。7. 根据权利要求5所述的冗余数据去重方法,其特征在于:所述优先值G的确定标准如下:若文件大小大于1G,则G=7;若文件大小大于512MB且小于等于1G,则G=6;若文件大小大于256MB且小于等于512MB,则G=5;若文件大小大于64MB且小于等于256MB,则G=4;若文件大小大于8MB且小于等于64MB,则G=3;若文件大小大于1MB且小于等于8MB,则G=2;若文件大小大于128KB且小于等于1MB,则G=1;若文件大小小于等于128KB,则G=-
5、1。8. 根据权利要求5所述的冗余数据去重方法,其特征在于:所述优先值E的确定标准如下:若文件类型为备份日志,则E=7;若文件类型为镜像,则E=6;若文件类型为项目,则E=5;若文件类型为视频,则E=4;若文件类型为音频,则E=3;若文件类型为文档,则E=2;若文件类型为图片,则E=1;若文件类型为其他,则E=-1。说 明 书一种基于文件语义和系统实时状态的冗余数据去重方法技术领域本发明属于计算机信息管理技术领域,具体涉及一种基于文件语义和系统实时状态的冗余数据去重方法。背景技术随着云计算和移动互联网的进一步普及和深入应用,各类网上应用和服务正在各行各业中扮演着更为重要的角色,而随着互联网应用
6、的用户基数急剧上升,全球的信息总量也正在以爆炸性的速度在增长。分布式存储系统是各类云服务的后台支撑系统,所有的服务数据都存储在分布式存储系统当中,存储系统对外提供统一的读写接口,以便用户或上层应用服务访问或修改存于磁盘当中的数据。对应不同的应用场景和主要用途,分布式存储系统又可以从粗粒度上划分为两类:备份存储系统和主存储系统。备份存储系统主要应用于冷数据的备份,如系统日志、历史档案等等,这些备份系统一般搭建在造价相对低廉的存储硬件设备上,甚至是可以基于磁带存储的底层存储设备,因为备份存储系统当中的数据的访问热度非常地低,一般只会在有特殊需求时才会将历史数据读取出来,因此备份存储系统对数据的读写
7、性能没有太高的要求。相比之下,主存储系统,一般指的是存储了上层应用服务会直接访问的数据的系统,则对于数据的访问性能有着较高的要求,因为在读写的高效性直接决定了用户对于上层应用和服务的体验。主存储系统通常都是以数据块为基本单位,将文件分为一个个数据块存储在底层的磁盘当中,然后在主存储系统的内存当中维护着一份关于所有数据块的索引,索引的目的是为了记录数据块所从属的文件的信息,以及数据块在磁盘上的物理位置。由于主存储系统需要有较高的数据访问性能,因此在分布式的环境下,系统开发者通常会设定一套具有冗余特性的数据存放和管理机制,即同一份数据,在分布式的主存储系统当中会保留多于一份的备份,结构上非常相似的
8、两份文件,如包含了大量相同文件的两个工程文件夹,也会保留两份完整的文件夹。在大数据时代到来之前,我们的存储设备需要存储和处理的数据都是相对小量的,即使搭建分布式主存储系统所需要的硬件设备不菲,硬件上的开销也没有成为服务提供商所需要重视的因素。而在大数据的时代,随着各类互联网应用与服务的激增,用户的数量每天都在增长,服务和应用的规模也越来越庞大和复杂,因此支撑各类云服务的主存储系统当中需要存储的数据量也就出现了一个爆发式的增长。这些数据是需要被上层的应用和服务所直接访问到的,因此无法使用廉价的备份存储系统来协助存储。虽然存储硬件设备的造价随着技术上的改进而在不断降低,更低的价钱可以买到更大容量的
9、设备,但是因为在大数据时代,数据量是以指数级的速度在增长的,因此在实际当中,存储数据量的增长速度已经超过了硬件存储设备造价的下降速度,购买更多的存储设备不能从根本上应对数据量的激增。而且从经济利益上来说,这更是一个非常消耗投入成本的方法。在这个背景与挑战的驱动下,冗余数据去重技术逐渐受到了越来越多的服务提供商的关注,尤其是需要在主存储系统当中保存大量数据的服务提供商。从概括的角度来描述,冗余数据去重技术就是通过比较数据之间的“签名”, 如果发现了具有相同签名的数据,则将其判定为冗余的数据,接下来会将冗余的数据删除掉,然后在索引更新被删除的数据的信息,将其物理磁盘位置指向保留了的冗余数据的位置。
10、当下一次用户或者应用访问这个被删除的数据的时候,系统则会根据索引当中的信息,把请求导向到保留在磁盘上的冗余数据的位置,并在该数据上进行用户所请求的操作。从数据去重技术的粒度粗细上分,一般可以分为两类:文件层面的去重以及数据块层面上的去重。概括地说,文件层面上的数据去重技术仅仅删除冗余的完全相同的两个文件,它的比较单位是整个文件。而数据块层面上的去重技术的比较和处理单位则是细化到数据块上,如前面所提到的,分布式主存储系统的底层存储实际上是以块为单位的,一个文件可能会被分成多个块存储在磁盘上,而在这种情况下,每个数据块都会被计算出属于这个块的签名,去重技术就是在基于数据块的签名的对比的基础上,删除
11、冗余的数据块。从数据去重技术的作用域上划分,可以分化全局去重和本地去重。作用域的概念是在分布式存储系统中起作用的,概括地说,全局的去重技术会检测所有位于该系统的服务器上的冗余数据,即使这些数据所在的服务器在地理上是分离的,而本地去重技术则只关注同一台服务器上或同一台存储设备上的冗余数据。从数据去重技术的执行时机上划分,可以分为离线去重和在线去重两种。离线去重一般指的是去重程序在系统后台运行,是当新的文件数据写入到了磁盘之后再进行冗余数据的检测和删除,而在线去重指的就是在新的数据在写入的过程当中进行检测和冗余删除。结合以上的分类,在现实的存储系统当中普遍实现和使用的去重技术方案都是以上所谈及分类
12、的结合,而最主要使用的方案有两类:全局的基于文件层面的去重(Global File-level Deduplication,GFD)以及本地的基于数据块层面的去重(Local Chunk-level Deduplication,LCD)。这两种方案虽然能够在一定程度上满足一定的去重需求,但是它们的设计却都没有考虑在主存储系统这个应用场景的与其他因素之间的平衡与取舍。首先,数据去重技术会带来数据读性能上的损失,GFD可能会造成需要从远端的服务器传送用户访问的数据,从而带来网络传输上的延时,而LCD则会造成本地磁盘的碎片化,从而在读取某个数据的时候可能会需要多次磁盘寻道,从而带来对读操作响应的延迟
13、。去重度越大,就越能节省存储设备上带来的开销,但是读性能就会被影响得越严重,因此去重度与读性能上的平衡与取舍是一个首要要考虑的问题。其次,主存储不同于备份存储系统,后者的数据是冷的不经常访问的而且通常是作为一个历史记录的形式保存的,因此站在系统的角度来说,这些数据可以被统一地看做是二进制字节流。而在主存储系统当中,由于其直接支撑上层服务的特性,它当中所存储的数据是非常多样化的,而且会由于服务的种类不同,用户群的访问特性不同,具有一定的语义性。这些文件的语义性应该利用到面向主存储系统的去重方案设计当中。第三,由于主存储系统直接跟用户打交道,用户的访问的特征会因为时间的不同,地域的不同,或者是服务
14、的改变而存在差异,用户的也会因人而异,所以面向主存储系统的去重方案需要是动态的,能够作出调整的,才能更好地在读性能和存储空间效率的平衡上做出更好的选择。综上可见,在大数据的时代背景下,云服务提供商一方面有着迫切降低存储空间成本开销的迫切需求,另一方面,又希望冗余数据的去重不会对上层应用和服务的性能受到太大的影响,用户的使用体验可以得到保证。如何针对分布式主存储系统的使用特性以及数据特征,如何利用不同于备份存储系统的丰富的文件语义与变化的系统状态,用以设计和实现高效的冗余数据去重方案,达到系统空间效率上和数据读性能上高效的平衡,成为本领域技术人员迫切需要解决的一个重要问题。发明内容针对现有技术所
15、存在的上述技术问题,本发明提供了一种基于文件语义和系统实时状态的冗余数据去重方法,能够使分布式主存储系统在维持较高的读请求响应性能的同时,减少存储空间成本的开销。一种基于文件语义和系统实时状态的冗余数据去重方法,如下:根据当前时刻系统的读响应时延和去重比率,采用以下基于SLA(Service Level Agreement,服务等级协议代)动态调节机制对系统的去重器进行调节:当前时刻系统的读响应时延即为上一周期内用户对系统所有读请求的平均响应时延;当前时刻系统的去重比率即为初始时刻至当前时刻系统移除的冗余数据的总体积与初始时刻至当前时刻系统未移除冗余数据的情况下累加存储后的数据总体积的比值。本
16、发明由于采用了上述的技术方案,故与现有技术相比,具有如下显著的有益效果:(1)本发明方法相比起传统的冗余数据去重方案,一个明显的优点就在于充分利用了主存储系统当中所包含的丰富的文件语义,通过对多维度的文件语义的属性取值进行量化的划分,赋予不同的文件属于以具体的去重优先值,并通过赋予不同维度之间以不同的权重,量化地计算出某个文件的用数值表示的去重优先度,使得去重器可以区别对待不同的文件,从而在节省存储空间的同时,维持了对上层应用读请求的高效响应。(2)本发明方法引入了对去重程序运行时的动态调整机制以及对去重方案需求进行统一描述的机制。统一的需求描述机制可以令冗余数据去重方案中的功能模块定性地获取
17、用户的具体需求,能够清楚地按优先级排列用户在读性能与空间效率上的多级取舍。动态的调整可以使本发明的去重做到系统状态可感知,在读请求响应性能受到影响时可以以不同程度调整去重器的工作方式。(3)本发明方法引入了双层的结合GFD和LCD的去重程序机制,并在不同的时机采用不同的机制。相比起传统的单一机制的冗余数据去重方案,本发明所提出的双层的混合去重机制增加了在去重粒度与去重作用域上的灵活性,可以使得控制器根据用户的需求与系统的实时状态,通过调整两种不同方案之间的运行时机来达到满足更高优先级的SLA的效果。附图说明图1为本发明冗余数据去重方法的功能架构示意图。图2为本发明冗余数据去重方法的流程示意图。
18、具体实施方式为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。如图1所示,在实际运行应用环境当中,本发明基于文件语义和系统实时状态的冗余数据去重方案运行在通用的分布式主存储系统内,存储系统主要包括元数据服务器和对象存储服务器集群;元数据服务器负责接收用户请求以及将请求定向到相应的对象存储服务器上,还负责检测整个分布式主存储系统的运行状态,并维护了全局的以文件名为单位的索引。索引中包含了每个文件的“签名”,位置信息以及元数据信息,这个签名是对于每个文件来说都是唯一的,是经过SHA-1算法在文件的二进制内容上计算出来的。而对象存储服务器集群则包含了多台独立的对象存
19、储服务器,每一台服务器都保存了一定量的文件,服务器的本地磁盘支持以数据块的方式对文件数据进行存储,每一台对象存储服务器负责维护保存在本地的文件的以数据块为单位的索引信息。同样地,索引包含了数据块在本地磁盘上的物理位置,以及经SHA-1算法基于这个数据块的二进制内容计算出来的签名。本实施方式中主要包括三个功能模块:基于多语义维度划分的去重优先度计算模块(MPD模块)、分层级的数据去重模块(去重器)以及基于系统实时状态的去重控制模块(控制器)。这三个功能模块均运行在元数据服务器上或对象存储服务器上,并且能与元数据服务器的全局文件索引以及各台对象存储服务器上的数据块索引进行交互与操作,其中:MPD模
20、块运行于元数据服务器上,它通过获取元数据服务器上所保存的关于文件以及文件的附属信息,计算出具有高去重优先度的文件列表,MPD模块基于多维度的文件语义,周期性地输出一个列表,该列表里面包含了固定数量的文件位置记录,这些文件为去重器应该优先实施去重的对象。本方案的MPD模块基于文件的三个维度语义进行去重优先度计算:文件的最近访问时间戳,文件的大小,文件的类型。在此基础上,MPD模块对于每一个维度中的具体值的范围作了明确的赋值,使得每个文件在这三个维度中的属性值都对应一个明确的数值,这个数据标示着某个文件在这个维度当中的去重优先度,数值越大表示越被优先考虑进行去重操作。而且,这三个维度有着不同权重系
21、数,文件的最终去重优先度是这三个维度当中的对应值的加权。在实际应用当中,这些赋值是可以根据具体的服务场景和需求来定制的,本实施方式的缺省划分标准和对应的赋值,以及各个不同维度的权重赋值如表1所示:表1最近访问时间(0.5)文件大小(0.3)文件类型(0.2)属性范围优先值1个月71G备份日志15天6512MB镜像1周5256MB项目3天464MB视频1天38MB音频12小时21MB文档6小时1128KB图片其他-1根据表1的各项值,每个文件的最终去重优先度的值=最近访问时间优先值*0.5+文件大小优先值*0.3+文件类型优先值*0.2。MPD模块周期性地扫描元数据服务器中的文件索引并将去重优先
22、度最大的前50个文件的信息,包含到一个列表当中,该列表称为去重候选列表。每一个文件信息占据该表的一行,每一行还具有一个附属的标志位,初始化时每个标志位均为“脏”,表示该行文件还尚未被去重器所处理过;相对应地,若去重器已经将该行的文件处理完毕,则该标志位被改为“干净”。去重器运行在各台对象存储服务器上,它接收MPD模块输出的列表作为输入,对列表中的文件进行分层次的去重。去重器会执行双层的去重操作,分别是全局的文件层面的去重GFD和本地的数据块层面的去重LCD。去重器定期从MPD模块获取最新的去重候选列表,然后从具有最大的去重优先值的文件开始进行去重操作。在控制器允许的情况下,去重器首先会对该文件
23、实施GFD操作,为了在全局范围内寻找到是否有冗余的文件,本地的去重器会对向元数据服务器发起查询请求,因为元数据服务器中保存了全局的文件索引,因此可以知道该文件是否有不同的冗余备份分布在不同的对象存储服务器上。若经查询发现存在冗余的文件备份,则当前的去重器会向冗余文件所在的对象服务器发出去重请求,对方对象服务器会通知其本地的去重器将该冗余文件从本地磁盘上删除掉。发起去重请求的去重器在获知冗余文件已被删除后,会将去重优先列表当中该文件记录的标志位设置为“干净”,同时通知元数据服务器更新文件索引,将刚被删除的文件的位置信息导向到该去重器所在的对象存储服务器上。当去重器以GFD方式将去重优先列表遍历完成之后,在控制器允许的情况下,会从头开始以LCD的方式再遍历一次该列表。去重器实施LCD是通过检索本地的对象存储器上的数据块的索引,以确定在本地是否存在与当前文件的某个或某些分块所冗余的数据块。若存在冗余的数据块,则将冗余的块删除后,相应地更新本地对象存储服务器的索引,并将去重候选列表中对应的文件项标志位标记为“干净”。LCD过程也遍历完去重候选LCD过程也遍历完去重候选列表之后,本地去重器通知元数据服务器该周期
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1