基于Openstack-Swift的对象历史版本管理方法和装置制造方法及图纸

技术编号:25345694 阅读:14 留言:0更新日期:2020-08-21 17:04
本申请公开了一种Openstack‑Swift的对象历史版本管理方法和装置。该方法包括:代理节点转发访问请求到对象存储节点;根据所述访问请求写入最新版本文件到所述对象存储节点;在所述对象存储节点中查找对象最新历史版本文件;根据所述最新版本文件和旧的当前版本文件,判断是否需要进行版本处理;若是,则根据预设的版本处理规则处理所述最新版本文件和旧的当前版本文件;根据预设的数据更新规则更新object表的数据。所述装置用于执行所述方法。本发明专利技术实施例通过该方法大大的提升了对象覆盖及删除时候的相应时间。

【技术实现步骤摘要】
基于Openstack-Swift的对象历史版本管理方法和装置
本专利技术一般涉及云计算
,具体涉及一种基于Openstack-Swift的对象历史版本管理方法和装置。
技术介绍
随着互联网科技的飞速发展,用户开始参与信息的制造和编辑,使得用户个人数据量成指数增长,导致数据存储和管理的业务逐渐增加,云技术随之产生,云计算是一种基于网格的计算模式,其核心是为用户提供可伸缩的虚拟化服务。OpenStack是该领域最前沿的开源云系统,作为公有云和私有云的共同技术基础,其实现了统一的云管理平台自动化。Swift是Openstack开源社区构建的一个多租户、高扩展和高可用的对象存储系统,是用于低成本存储海量非结构化数据,兼容AmazonS3(SimpleStorageService)协议的多地域、分布式对象存储解决方案,其目的是使用普通硬件来构建冗余的、可扩展的分布式对象存储集群,存储容量可达PB级。目前基于现有技术中Openstack-Swift中的原生历史版本文件有两个问题:一是历史版本文件对用户是可见的,一旦用户误删历史版本数据,数据就会彻底丢失,此时对用户数据的使用就会存在风险;二是生成历史版本的流程复杂,会极大的影响集群的服务性能。因此,如何提升对象数据的安全性和提升对象集群的性能比率是亟待解决的问题。
技术实现思路
鉴于现有技术中的上述缺陷或不足,期望提供一种基于Openstack-Swift对象历史版本管理方法和装置,能够在对象文件进行更新、删除时,实现对象的历史版本文件的自动生成和清理。第一方面,本申请提供一种基于Openstack-Swift对象历史版本管理方法,所述方法包括:代理节点转发访问请求到对象存储节点;根据所述访问请求写入最新版本文件到所述对象存储节点;在所述对象存储节点中查找对象最新历史版本文件;根据所述最新版本文件和旧的当前版本文件,判断是否需要进行版本处理;若是,则根据预设的版本处理规则处理所述最新版本文件和旧的当前版本文件;根据预设的数据更新规则更新object表的数据。可选的,所述根据预设的版本处理规则处理所述最新版本文件和旧的当前版本文件,包括:对所述所有版本文件按照时间进行排序;保留排序后的历史版本文件中预设数量的最新历史版本文件,并删除其他历史版本文件。可选的,所述对所述所有版本文件按照时间进行排序之前,包括:若需生成历史版本文件,则将所述旧的当前版本文件重命名为历史版本文件。可选的,所述根据预设的数据更新规则更新object表的数据,包括:对象存储节点向元数据节点发送元数据更新请求;查询元数据节点的object表里的对象元数据信息,当查到后向历史对象表里插入所查询到的对象元数据;根据所述更新请求更新object表的数据。可选的,所述访问请求包括:写入访问请求、删除访问请求、更新访问请求。第二方面,本申请实施例提供一种基于Openstack-Swift对象历史版本管理装置,所述装置包括:发送模块,用于代理节点转发访问请求到对象存储节点;写入模块,用于根据所述访问请求写入最新版本文件到所述对象存储节点;查找模块,用于在所述对象存储节点中查找对象最新历史版本文件;判断模块,用于根据所述最新版本文件和旧的当前版本文件,判断是否需要进行版本处理;处理模块,用于若是,则根据预设的版本处理规则处理所述最新版本文件和旧的当前版本文件;更新模块,用于根据预设的数据更新规则更新object表的数据。可选的,所述处理模块包括:第一处理单元,用于对所述所有版本文件按照时间进行排序;第二处理单元,用于保留排序后的历史版本文件中预设数量的最新历史版本文件,并删除其他历史版本文件。可选的,所述装置还包括:重命名模块,用于若需生成历史版本文件,则将所述旧的当前版本文件重命名为历史版本文件。可选的,所述更新模块还包括:请求单元,用于对象存储节点向元数据节点发送元数据更新请求;查询单元,用于查询元数据节点的object表里的对象元数据信息,当查到后向历史对象表里插入所查询到的对象元数据;更新单元,用于根据所述更新请求更新object表的数据。可选的,所述访问请求包括:写入访问请求、删除访问请求、更新访问请求。本申请实施例的有益效果为:现有技术中原生的历史版本文件对用户是可见的,若用户误删历史版本数据,数据就会彻底丢失。除此之外原生流程要将原先的对象文件重新写入到指定的历史容器,确定对象历史版本写入成功之后再进行操作,导致对象初次写入、覆盖、删除性能下降幅度较大。本方案通过根据写入最新版本文件和查找最新历史版本文件的方法,判断该文件是否存在版本处理操作,将需要进行版本处理操作的文件按照预设的版本处理规则,具体为可以通过版本重新命名、排序、以及历史版本自动清理的方式实现了降低用户误删备份数据的风险性;通过按照预设数据更新规则更新object表的数据的方法,具体为向历史对象表里插入所查询到的对象元数据进行object表的更新处理,极大地提升了集群的性能。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1为本专利技术的实施例的基于Openstack-Swift对象历史版本管理方法的流程示意图;图2为本专利技术的实施例的版本处理规则处理文件的流程示意图;图3为本专利技术的实施例的根据预设数据更新object表的数据的流程示意图;图4为本专利技术的实施例的基于Openstack-Swift对象历史版本管理装置的结构示意图;图5为本专利技术的另一实施例的基于Openstack-Swift对象历史版本管理装置的结构示意图;图6为本专利技术的实施例的服务器的计算机系统的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与专利技术相关的部分。OpenStack-Swift开源项目提供了弹性可伸缩、高可用的分布式对象存储服务,适合存储大规模非结构化数据。Swift是基于一致性散列技术,通过计算可将对象均匀分布到虚拟空间的虚拟节点上,在增加或删除节点时可大大减少需移动的数据量。Swift采用完全对称、面向资源的分布式系统架构设计,所有组件都可扩展,避免因单点失效而扩散并影响整个系统运转;通信方式采用非阻塞式I/O模式,提高了系统吞吐和响应能力。其中Swift组件包括:代理服务(ProxyServer),认证服务(AuthenticationServer),缓存服务(CacheServer),账户服务(AccountServer),容器服务(ContainerSe本文档来自技高网...

【技术保护点】
1.一种基于Openstack-Swift的对象历史版本管理方法,其特征在于,所述方法包括:/n代理节点转发访问请求到对象存储节点;/n根据所述访问请求写入最新版本文件到所述对象存储节点;/n在所述对象存储节点中查找对象最新历史版本文件;/n根据所述最新版本文件和旧的当前版本文件,判断是否需要进行版本处理;/n若是,则根据预设的版本处理规则处理所述最新版本文件和旧的当前版本文件;/n根据预设的数据更新规则更新object表的数据。/n

【技术特征摘要】
1.一种基于Openstack-Swift的对象历史版本管理方法,其特征在于,所述方法包括:
代理节点转发访问请求到对象存储节点;
根据所述访问请求写入最新版本文件到所述对象存储节点;
在所述对象存储节点中查找对象最新历史版本文件;
根据所述最新版本文件和旧的当前版本文件,判断是否需要进行版本处理;
若是,则根据预设的版本处理规则处理所述最新版本文件和旧的当前版本文件;
根据预设的数据更新规则更新object表的数据。


2.根据权利要求1所述的方法,其特征在于,所述根据预设的版本处理规则处理所述最新版本文件和旧的当前版本文件,包括:
对所述所有版本文件按照时间进行排序;
保留排序后的历史版本文件中预设数量的最新历史版本文件,并删除其他历史版本文件。


3.根据权利2所述的方法,其特征在于,所述对所述所有版本文件按照时间进行排序之前,包括:
若需生成历史版本文件,则将所述旧的当前版本文件重命名为历史版本文件。


4.根据权利要求3所述的方法,其特征在于,所述根据预设的数据更新规则更新object表的数据,包括:
对象存储节点向元数据节点发送元数据更新请求;
查询元数据节点的object表里的对象元数据信息,当查到后向历史对象表里插入所查询到的对象元数据;
根据所述更新请求更新所述object表的数据。


5.根据权利要求4所述的方法,其特征在于,所述访问请求包括:
写入访问请求、删除访问请求、更新访问请求。


6.一种基于O...

【专利技术属性】
技术研发人员:詹孟华张永田贺新民何平
申请(专利权)人:顺丰科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1