一种基于分布式存储实现对象存储的方法与流程

文档序号:12132710阅读:1224来源:国知局
一种基于分布式存储实现对象存储的方法与流程

本发明涉及云计算存储技术领域,具体地说是一种实用性强、基于分布式存储实现对象存储的方法。



背景技术:

目前,在国内的网络世界中,每天产生的数据流量可达500PB以上。其中大量的文档,图片,视频,音乐等需要海量的存储空间;庞大的用户群体对信息的读写等操作也对存储性能提出了更高的要求;快速发展扩张的直播流媒体等也需要存储系统能够简便的进行无限扩容。

中国人口众多,当前在论坛,微博,移动社交,网络传媒活跃着千万级别的用户。每天产生的数亿条记录,需要与人进行互动和信息共享。尤其当前的直播平台更加平民化,各种直播平台的竞相开放,使得私人流媒体领域进入了全民直播时代。信息获取的渠道多样化,信息分享渠道更是错综复杂,相对于传统的存储要求,共享,分享等权限功能占据了重要的位置。

对于开放性的网络存储,个人,公司,组织比以往更注重私有空间,隐私作为衡量数据安全一项主要指标。无论是政府,机构还是公司,个人对于加密信息的安全传输还是安全存储都提出了更高的要求。存储的安全,不止是要求数据存储的正确,数据存储长时间可靠与稳定,还要求数据在传输过程中的绝对安全。必要时提供客户统一接口,对其所存储的文件进行特殊加密处理应用。

综上所述,为了适用于新时代网络存储的各项需求,并且可以低成本无限扩容的存储技术取得了长足的发展。最典型的解决方案就是对象存储。每一个所存储的文件都可以看作为一个对象,对象包括权限,时间,文件类型等。传统的文件夹被废弃,变成扁平化的二层架构,更适合存储节点的横向扩展。

常规的对象存储的处理步骤如下:

(1)客户端发送数据上传请求。

(2)客户端把上传数据进行分片,每一片生成上传报文,通过s3接口把报文发送到存储端。

(3)存储端解析报文,把数据传到分布式集群IO流程。

(4)IO流程把数据异步存放到分布式集群。

然而,在云计算中,对象存储实现存在如下弊端:

用户在传输数据过程中没有对用户进行鉴权处理,数据容易在传输过程中被截取,如果key被非法获取,对后端存储的安全造成极大的影响。

用户使用私有存储空间,没有形成使用轨迹和使用量的统计,导致对象存储平台不能洞察存储使用情况。

基于此,本发明提供一种采用多维度的数据校验规则对数据进行质量检测的方法,来解决上述弊端。



技术实现要素:

本发明的技术任务是针对以上不足之处,提供一种实用性强、基于分布式存储实现对象存储的方法。

一种基于分布式存储实现对象存储的方法,其实现过程为:通过分布式存储技术,搭建认证服务器,完成用户端和服务端的安全认证,然后优化后台IO模型记录碎片化日志,从而提升对象存储的安全性。

通过搭建认证服务器实现用户端和服务端的安全认证过程为:

首先通过java语言设计一个鉴权认证模块,客户端或者web界面端在上传文件或者下载文件操作时,客户端向认证服务器的服务端申请获取一个认证值,客户端把这个值封装到报文中;

客户端发送报文到服务端,服务端解析报文获取认证值,服务端把报文中用户信息获取得到,通过用户信息和认证值再次访问认证服务器获取认证进行比对,判断是否为同一笔交易,最终得到交易的合法性。

​所述碎片化日志是指在认证服务器中,通过rgw对象存储网关融合客户端,将网关接收的消息记录成日志,写入消息队列。

优化记录碎片化日志的具体过程为:消息队列通过消息中间件,发送到消息处理进程,消息处理进程是用python开发的守护进程,守护进程通过规则匹配模块来处理不同的消息,并将符合的信息录入mysql数据库。

鉴权认证模块的具体设计及实现过程为:

通过portal发起对象存储服务操作,向认证服务器发起token认证申请操作;

如果第一步申请成功,返回给portal token;

向rgw发起对象存储服务操作,同时把token传给rgw;

rgw根据获取的token向认证服务器发起token验证请求;

如果认证服务器验证通过,则返回成功否者返回失败;

如果成功rgw开始向rados写入数据;

如果不成功则返回portal token验证失败。

记录碎片化日志的具体过程为:

用户通过sdk接口使用对象存储服务的时候,通过rgw RESTful接口获取rados中的数据;

rgw改造程序,每一次操作成功都把明细写入RabbitMQ消息队列;

消息读取计算进程从消息队列中获取明细并计算,最终把结果入库到mysql中;

sdk上传对象时,通过RESTful接口向计算进程获取用户空间剩余量,当空间不足时,则返回portal失败。

本发明的一种基于分布式存储实现对象存储的方法,具有以下优点:

本发明提供的一种基于分布式存储实现对象存储的方法,基于分布式存储分析技术,用软件化的方式定义存储,实现海量数据的安全存储及碎片化日志记录;采用这种方法,可以实现数据存储安全和存储集群安全,提高分布式存储集群的可靠性、可用性、安全性;通过搭建token认证服务器,实现用户端和存储端的安全认证,可以防止非法用户进行向集群传递数据,恶意破坏及使用存储;通过记录碎片化日志,在云计算环境中,可以对租户进行使用历史轨迹记录,同时可以对使用情况进行分析,实用性强,适用范围广泛,易于推广。

附图说明

附图1是本发明的鉴权认证模块架构图。

附图2是碎片化日志记录架构图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步说明。

如附图1、图2所示,本发明的一种基于分布式存储实现对象存储的方法,用软件化的方式定义存储,实现海量数据的安全存储及碎片化日志记录。采用这种方法,可以实现数据存储安全和存储集群安全,提高分布式存储集群的可靠性、可用性、安全性。

所述的软件化的数据的安全存储,是构建mannger token server,客户端向服务端发送报文时,需向manngertoken server申请token,把token通过报文传给服务端,服务端获取token到mannger token server进行验证。

所述的碎片化日志记录,是基于RabbitMQ消息中间件,把写入集群中的数据异步存放到数据库中,然后对日志进行按需统计汇总分析。

其实现过程为:

1)通过搭建token认证服务器,实现用户端和服务端的安全认证:

本发明是基于java语言自研的一个鉴权认证模块,客户端或者web界面端在上传文件或者下载文件等操作时,客户端会向token server 服务端申请获取一个token value ,客户端会把这个值封装到报文中。

客户端发送报文到服务端,服务端解析报文获取token value,服务端会把报文中用户信息获取得到,通过用户信息和token value再次访问token server获取token进行比对,判断是否为同一笔交易,最终得到交易的合法性。

鉴权认证模块的具体实现流程描述如下:

portal发起对象存储服务操作,需要向认证服务器mannger token server发起token认证申请操作,在该步骤中,Portal是网关服务于因特网的一种WEB站点,Portal是链路、内容和为用户可能找到的感兴趣的信息的指南服务的集合,相当于客户端。

如果第一步申请成功,返回给portal token。

向rgw发起对象存储服务操作,同时把token传给rgw。

rgw根据获取的token向mannger token server发起token验证请求。

如果mannger token server验证通过,则返回成功否者返回失败。

如果成功rgw开始向rados写入数据,这里的rados是一种分布式数据存储系统。

如果不成功则返回portal token验证失败。

2)记录碎片化日志:

​rgw对象存储网关融合RabbitMQ客户端,将网关接收的消息记录成日志,写入消息队列。消息队列通过RabbitMQ消息中间件,发送到消息处理进程。消息处理进程是用python开发的守护进程,守护进程通过规则匹配模块来处理不同的消息,并将符合的信息录入mysql数据库。

记录碎片化日志具体实现过程如下:

用户通过sdk接口使用对象存储服务的时候,通过rgw restful接口获取rados中的数据。

rgw需要改造程序,每一次操作成功都需要把明细写入RabbitMQ消息队列。

消息读取计算进程从消息队列中获取明细并计算,最终把结果入库到mysql中。

sdk上传对象时,通过rest ful接口向计算进程获取用户空间剩余量,如空间不足,返回portal失败。

上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种基于分布式存储实现对象存储的方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

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