一种基于内容寻址的对象存储方法和系统的制作方法

文档序号:9432225阅读:676来源:国知局
一种基于内容寻址的对象存储方法和系统的制作方法
【技术领域】
[0001] 本发明设及存储系统技术领域,尤指一种基于内容寻址的对象存储方法和系统。
【背景技术】
[0002] 随着社会信息化水平的不断提高和互联网技术的高速发展,各类非结构化数据, 如图片、音视频、文本资料等呈现出爆炸性增长的趋势,在云存储服务为人们带来便利的同 时,数据规模也在急剧膨胀,运对存储海量数据的能力提出了更高的要求。研究表明,数据 中高达75%的部分是重复的,存储资源利用率不高的一个重要原因就是数据中存在大量的 重复和冗余。
[0003]Swift是一个多租户、高可扩展、高持久度的对象存储系统,W尽量低的成本来存 储大量的非结构化数据,并利用REST API来对数据进行访问。系统具有强大的可伸缩能力, 可W支持上千节点W及PB级的存储的需求,已广泛应用于生产环境中。Swift在设计时不 仅考虑到了水平扩展能力和消除单点故障,还希望在服务上支持尽量多的用户数量。
[0004] 但是,Swift存储系统也在存储海量数据能力W及存储利用率方面存在不足,主要 原因在于Swift对象存储系统中完全基于对象的命名进行寻址和放置,对数据存储的内容 无感知,故而对数据中存在大量的重复和冗余无法加W处理,造成存储和网络资源的浪费。 W上描述的大量冗余数据的挑战,为设计海量分布式对象存储系统结构带来了极大的复杂 性,严重影响了存储的实际存储效率。

【发明内容】

[0005] 为了解决上述技术问题,本发明提供了一种基于内容寻址的对象存储方法和系 统,有效解决了重复的数据被多次存储导致存储空间浪费的问题,提高了对象存储系统的 存储设备和网络带宽使用效率。
[0006] 为了达到本发明目的,本发明提供了 一种基于内容寻址的对象存储方法,包括:获 取基于内容寻址的对象的元数据,所述元数据包括数据指纹;根据所述数据指纹,所述基于 内容寻址的对象将数据和元数据进行一致性哈希存储;将所述基于内容寻址的对象进行反 向引用和垃圾回收。
[0007] 进一步地,所述对象的元数据与数据按照json格式进行编码,保存到一个文件 中,数据作为一个blob对象;或者,所述对象的数据存储在文件中,对象的元数据存储在文 件的扩展属性xattrs中,选用XFS作为底层的文件系统,XFS将xattrs存储在inode中, 并在格式化文件系统时设置inode大小。
[0008] 进一步地,所述方法还包括对对象的元数据进行维护,具体为:每次更新和获取对 象的元数据时记录时间戳,将元数据序列化后写入文件,存储到缓冲区;将缓冲区的文件加 入队列,等待写入存储位置;读取时对时间戳进行排序;读取时间戳晚于设定时间的元数 据;在每次进行访问时,清除掉系统中早于设定时间的元数据文件。
[0009] 进一步地,所述基于内容寻址的对象将数据和元数据进行一致性哈希存储,具体 为:将对象的命名与对象的存储位置进行解禪合;将对象的数据和元数据进行一致性哈希 存储,并根据数据指纹,将对象的数据与存储位置建立映射关系。
[0010] 进一步地,所述方法还包括对对象的数据进行一致性维护,具体为:节点完成数 据校验,如果校验出错,将损坏的数据移入隔离区;对象同步服务进程遍历本地文件系统, 每次检查远程节点中是否存在最新的副本,如果不存在,则主动推送一份本地数据,如果存 在,则终止;对象同步服务进程对数据循环检查。
[0011] 进一步地,所述方法还包括对对象的元数据进行一致性维护,具体为:根据 如orum协议,超过半数副本完成写入确定元数据的写入成功;根据反赌协议,对于对象的 每一个副本,W泛洪的方式分别向其余的副本推送本地时间戳最新的元数据,直到所有的 副本达到带有最新时间戳的元数据一致状态。
[0012] 进一步地,所述反向引用包含化eate原语、Merge原语和Delete原语,其中, 化eate原语用来生成一条反向引用信息backref,并放入对象的存储目录中;Merge原语负 责将单条反向引用信息backref并入反向引用映射表backmap,backmap的时间版本信息 为backref的最大时间戳;Delete原语负责将已并入反向引用映射表的单条反向引用信息 backref删除。
[0013] 进一步地,所述将所述基于内容寻址的对象进行反向引用和垃圾回收,具体为:当 对象存储时,在接口的PUT操作和DELETE操作时调用化eate原语;在进行对象同步服务 时,进行合并和删除已处理的backref;垃圾回收器检查backmap中是否为空,如果为空则 将对象回收。
[0014] 进一步地,所述将对象回收,具体为:对象同步服务调用Merge原语时对backmap 加锁,垃圾回收器放弃对backmap的访问;如果垃圾回收器发现仍有未被并入的backref存 在,在下一个清理时间对对象进行处理。
[0015] 一种基于内容寻址的对象存储系统,其特征在于,包括:应用层,用于和应用程序 接口;对象访问,用于通过应用层提供网络应用服务,其中网络应用服务包括对象审计服 务,对象同步服务,持续更新服务和垃圾回收服务;数据存储,用于负责接收和处理数据请 求,W及完成对数据对象的读写操作,其中数据存储包括存储访问、块存储接口和磁盘。
[0016] 进一步地,所述对象同步服务,用于定时与集群中的其他节点通信,将本地最新的 数据推送到远端,对远端损坏数据进行修复,W及对系统故障后的历史数据进行填充;对象 审计服务,用于定时对系统中的数据进行校验,并清除系统中的损坏数据;持续更新服务, 用于在系统中保存更新操作的状态,如果系统中出现了拥塞超时或者系统故障,在更新操 作放弃的情况下,继续完成系统中未完成的更新操作;垃圾回收服务,负责清除系统中不再 被引用的对象。
[0017] 进一步地,所述块存储接口包括XFS、EXT4和.etc。
[0018]与现有技术相比,本发明通过将对象大小、指纹值、创建时间等信息进行保存,并 维护对象的时间戳和版本,对元数据进行管理和维护;基于数据指纹进行对象放置的一致 性哈希算法,达到重复数据删除的目的,W及副本之间的异步同步方法,使得系统达到最终 一致性;通过反向引用和垃圾回收,解决了系统中对象删除时的引用管理问题,清理了系统 中的孤儿对象,提高了存储的利用率。本发明有效解决了重复的数据被多次存储导致存储 空间浪费的问题,提高了对象存储系统的存储设备和网络带宽使用效率,从而推动了海量 数据存储系统结构的发展。
[0019] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利 要求书W及附图中所特别指出的结构来实现和获得。
【附图说明】
[0020] 附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本 申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
[0021] 图1是本发明的一种实施例中基于内容寻址的对象存储系统的架构示意图。
[0022] 图2是本发明的一种实施例中基于内容寻址的对象存储方法的流程示意图。
[0023] 图3是本发明的一种实施例中实
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1