一种基于文件语义和系统实时状态的冗余数据去重方法

文档序号:9349695阅读:450来源:国知局
一种基于文件语义和系统实时状态的冗余数据去重方法
【技术领域】
[0001] 本发明属于计算机信息管理技术领域,具体涉及一种基于文件语义和系统实时状 态的冗余数据去重方法。
【背景技术】
[0002] 随着云计算和移动互联网的进一步普及和深入应用,各类网上应用和服务正在各 行各业中扮演着更为重要的角色,而随着互联网应用的用户基数急剧上升,全球的信息总 量也正在以爆炸性的速度在增长。分布式存储系统是各类云服务的后台支撑系统,所有的 服务数据都存储在分布式存储系统当中,存储系统对外提供统一的读写接口,以便用户或 上层应用服务访问或修改存于磁盘当中的数据。对应不同的应用场景和主要用途,分布式 存储系统又可以从粗粒度上划分为两类:备份存储系统和主存储系统。备份存储系统主要 应用于冷数据的备份,如系统日志、历史档案等等,这些备份系统一般搭建在造价相对低廉 的存储硬件设备上,甚至是可以基于磁带存储的底层存储设备,因为备份存储系统当中的 数据的访问热度非常地低,一般只会在有特殊需求时才会将历史数据读取出来,因此备份 存储系统对数据的读写性能没有太高的要求。相比之下,主存储系统,一般指的是存储了上 层应用服务会直接访问的数据的系统,则对于数据的访问性能有着较高的要求,因为在读 写的高效性直接决定了用户对于上层应用和服务的体验。主存储系统通常都是以数据块 为基本单位,将文件分为一个个数据块存储在底层的磁盘当中,然后在主存储系统的内存 当中维护着一份关于所有数据块的索引,索引的目的是为了记录数据块所从属的文件的信 息,以及数据块在磁盘上的物理位置。由于主存储系统需要有较高的数据访问性能,因此在 分布式的环境下,系统开发者通常会设定一套具有冗余特性的数据存放和管理机制,即同 一份数据,在分布式的主存储系统当中会保留多于一份的备份,结构上非常相似的两份文 件,如包含了大量相同文件的两个工程文件夹,也会保留两份完整的文件夹。
[0003] 在大数据时代到来之前,我们的存储设备需要存储和处理的数据都是相对小量 的,即使搭建分布式主存储系统所需要的硬件设备不菲,硬件上的开销也没有成为服务提 供商所需要重视的因素。而在大数据的时代,随着各类互联网应用与服务的激增,用户的数 量每天都在增长,服务和应用的规模也越来越庞大和复杂,因此支撑各类云服务的主存储 系统当中需要存储的数据量也就出现了一个爆发式的增长。这些数据是需要被上层的应用 和服务所直接访问到的,因此无法使用廉价的备份存储系统来协助存储。虽然存储硬件设 备的造价随着技术上的改进而在不断降低,更低的价钱可以买到更大容量的设备,但是因 为在大数据时代,数据量是以指数级的速度在增长的,因此在实际当中,存储数据量的增长 速度已经超过了硬件存储设备造价的下降速度,购买更多的存储设备不能从根本上应对数 据量的激增。而且从经济利益上来说,这更是一个非常消耗投入成本的方法。
[0004] 在这个背景与挑战的驱动下,冗余数据去重技术逐渐受到了越来越多的服务提供 商的关注,尤其是需要在主存储系统当中保存大量数据的服务提供商。从概括的角度来描 述,冗余数据去重技术就是通过比较数据之间的"签名",如果发现了具有相同签名的数据, 则将其判定为冗余的数据,接下来会将冗余的数据删除掉,然后在索引更新被删除的数据 的信息,将其物理磁盘位置指向保留了的冗余数据的位置。当下一次用户或者应用访问这 个被删除的数据的时候,系统则会根据索引当中的信息,把请求导向到保留在磁盘上的冗 余数据的位置,并在该数据上进行用户所请求的操作。从数据去重技术的粒度粗细上分,一 般可以分为两类:文件层面的去重以及数据块层面上的去重。概括地说,文件层面上的数据 去重技术仅仅删除冗余的完全相同的两个文件,它的比较单位是整个文件。而数据块层面 上的去重技术的比较和处理单位则是细化到数据块上,如前面所提到的,分布式主存储系 统的底层存储实际上是以块为单位的,一个文件可能会被分成多个块存储在磁盘上,而在 这种情况下,每个数据块都会被计算出属于这个块的签名,去重技术就是在基于数据块的 签名的对比的基础上,删除冗余的数据块。从数据去重技术的作用域上划分,可以分化全局 去重和本地去重。作用域的概念是在分布式存储系统中起作用的,概括地说,全局的去重技 术会检测所有位于该系统的服务器上的冗余数据,即使这些数据所在的服务器在地理上是 分离的,而本地去重技术则只关注同一台服务器上或同一台存储设备上的冗余数据。从数 据去重技术的执行时机上划分,可以分为离线去重和在线去重两种。离线去重一般指的是 去重程序在系统后台运行,是当新的文件数据写入到了磁盘之后再进行冗余数据的检测和 删除,而在线去重指的就是在新的数据在写入的过程当中进行检测和冗余删除。
[0005] 结合以上的分类,在现实的存储系统当中普遍实现和使用的去重技术方案都是以 上所谈及分类的结合,而最主要使用的方案有两类:全局的基于文件层面的去重(Global File-level Deduplication,GFD)以及本地的基于数据块层面的去重(Local Chunk-level Deduplication,IXD)。这两种方案虽然能够在一定程度上满足一定的去重需求,但是它们 的设计却都没有考虑在主存储系统这个应用场景的与其他因素之间的平衡与取舍。首先, 数据去重技术会带来数据读性能上的损失,GFD可能会造成需要从远端的服务器传送用户 访问的数据,从而带来网络传输上的延时,而LCD则会造成本地磁盘的碎片化,从而在读取 某个数据的时候可能会需要多次磁盘寻道,从而带来对读操作响应的延迟。去重度越大,就 越能节省存储设备上带来的开销,但是读性能就会被影响得越严重,因此去重度与读性能 上的平衡与取舍是一个首要要考虑的问题。其次,主存储不同于备份存储系统,后者的数据 是冷的不经常访问的而且通常是作为一个历史记录的形式保存的,因此站在系统的角度来 说,这些数据可以被统一地看做是二进制字节流。而在主存储系统当中,由于其直接支撑上 层服务的特性,它当中所存储的数据是非常多样化的,而且会由于服务的种类不同,用户群 的访问特性不同,具有一定的语义性。这些文件的语义性应该利用到面向主存储系统的去 重方案设计当中。第三,由于主存储系统直接跟用户打交道,用户的访问的特征会因为时间 的不同,地域的不同,或者是服务的改变而存在差异,用户的也会因人而异,所以面向主存 储系统的去重方案需要是动态的,能够作出调整的,才能更好地在读性能和存储空间效率 的平衡上做出更好的选择。
[0006] 综上可见,在大数据的时代背景下,云服务提供商一方面有着迫切降低存储空间 成本开销的迫切需求,另一方面,又希望冗余数据的去重不会对上层应用和服务的性能受 到太大的影响,用户的使用体验可以得到保证。如何针对分布式主存储系统的使用特性以 及数据特征,如何利用不同于备份存储系统的丰富的文件语义与变化的系统状态,用以设 计和实现高效的冗余数据去重方案,达到系统空间效率上和数据读性能上高效的平衡,成 为本领域技术人员迫切需要解决的一个重要问题。

【发明内容】

[0007] 针对现有技术所存在的上述技术问题,本发明提供了一种基于文件语义和系统实 时状态的冗余数据去重方法,能够使分布式主存储系统在维持较高的读请求响应性能的同 时,减少存储空间成本的开销。
[0008] -种基于文件语义和系统实时状态的冗余数据去重方法,如下:
[0009] 周期性的检测分布式存储系统的读响应时延和去重比率;根据当前时刻系统的读 响应时延和去重比率,采用以下基于SLA(Service Level Agreement,服务等级协议代)动 态调节机制对系统的去重器进行调节:
[0010] 根据系统当前所参照的SLA,判断当前
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1