一种面向云存储的数据存储方法及装置的制造方法

文档序号:9597888阅读:377来源:国知局
一种面向云存储的数据存储方法及装置的制造方法
【技术领域】
[0001]本发明涉及云计算数据技术领域,特别是涉及一种面向云存储的数据存储方法及
目.ο
【背景技术】
[0002]云存储是是一种新兴的网络存储技术,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,所以云存储是一个以数据存储和管理为核心的云计算系统。简单来说,云存储就是将储存资源放到云上供人存取的一种新兴方案。使用者可以在任何时间、任何地方,透过任何可连网的装置连接到云上方便地存取数据。
[0003]由于云存储服务面向的是用户,以用户为单位。因此在Hadoop上即HDFS架构的基础上,引入MongoDB非关系型数据库进行相应的改进,能够优化HDFS的存储。

【发明内容】

[0004]本发明的目的是提供一种面向云存储的数据存储方法及装置,目的在于在Hadoop云平台上搭建HDFS和MongoDB存储系统来实现非结构化海量资源的存储。
[0005]为解决上述技术问题,本发明提供一种面向云存储的数据存储方法,包括:
[0006]接收客户端发起的数据写请求;
[0007]获取所述客户端的用户的元数据信息,并将所述元数据信息保存至MongoDB非关系型数据库中;
[0008]在HDFS存储节点上创建新的数据块;
[0009]根据得到的HDFS存储节点的信息,向对应HDFS存储节点发送数据,以进行存储。
[0010]可选地,所述获取所述客户端的用户的元数据信息,并将所述元数据信息保存至MongoDB非关系型数据库中包括:
[0011]获取所述客户端的用户的元数据信息、文件存储大小以及偏移值,将所述元数据信息、所述文件存储大小以及偏移值保存至所述MongoDB非关系型数据库中。
[0012]可选地,所述在HDFS存储节点上创建新的数据块包括:
[0013]MongoDB元数据服务器根据各个HDFS存储节点的工作和使用信息,基于负载均衡原理,在所述HDFS存储节点上创建新的数据块。
[0014]可选地,所述根据得到的HDFS存储节点的信息,向对应HDFS存储节点发送数据,以进行存储包括:
[0015]所述客户端根据得到的HDFS存储节点的信息,向对应HDFS存储节点发出数据写请求,并向所述HDFS存储节点发送数据;
[0016]所述HDFS存储节点接收所述数据并存储到对应数据块,同时向其他存储节点进行备份;
[0017]当本地写以及备份成功后,所述HDFS存储节点将成功信息返回至所述客户端。
[0018]可选地,还包括:
[0019]当集合的数据量较大时,采用自动分片的方式进行数据处理。
[0020]本发明还提供了一种面向云存储的数据存储装置,包括:
[0021]接收模块,用于接收客户端发起的数据写请求;
[0022]获取模块,用于获取所述客户端的用户的元数据信息,并将所述元数据信息保存至MongoDB非关系型数据库中;
[0023]创建模块,用于在HDFS存储节点上创建新的数据块;
[0024]存储模块,用于根据得到的HDFS存储节点的信息,向对应HDFS存储节点发送数据,以进行存储。
[0025]可选地,所述获取模块具体用于:获取所述客户端的用户的元数据信息、文件存储大小以及偏移值,将所述元数据信息、所述文件存储大小以及偏移值保存至所述MongoDB非关系型数据库中。
[0026]可选地,所述创建模块具体用于:根据各个HDFS存储节点的工作和使用信息,基于负载均衡原理,在所述HDFS存储节点上创建新的数据块。
[0027]可选地,所述存储模块包括:
[0028]发送单元,用于根据得到的HDFS存储节点的信息,向对应HDFS存储节点发出数据写请求,并向所述HDFS存储节点发送数据;
[0029]备份单元,用于接收所述数据并存储到对应数据块,同时向其他存储节点进行备份;
[0030]返回单元,用于当本地写以及备份成功后,所述HDFS存储节点将成功信息返回至所述客户端。
[0031]可选地,还包括:
[0032]分片模块,用于当集合的数据量较大时,采用自动分片的方式进行数据处理。
[0033]本发明所提供的面向云存储的数据存储方法及装置,通过接收客户端发起的数据写请求,获取客户端的用户的元数据信息,并将该元数据信息保存至MongoDB非关系型数据库中;在HDFS存储节点上创建新的数据块;根据得到的HDFS存储节点的信息,向对应HDFS存储节点发送数据,以进行存储。本发明所提供的面向云存储的数据存储方法及装置中,控制流和数据流是分离的,这样一方面降低了 MongoDB元数据服务的负担,使得其处理能力更强,另一方面将数据读写的负担分担到各存储节点,使得系统的整体性能得到了提尚ο
【附图说明】
[0034]图1为本发明所提供的面向云存储的数据存储方法的一种【具体实施方式】的流程图;
[0035]图2为本发明所提供的面向云存储的数据存储方法的另一种【具体实施方式】的流程图;
[0036]图3为本发明所提供的面向云存储的数据存储装置的一种【具体实施方式】的结构框图。
【具体实施方式】
[0037]为了使本技术领域的人员更好地理解本发明方案,下面结合附图和【具体实施方式】对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038]本发明所提供的面向云存储的数据存储方法的一种【具体实施方式】的流程图如图1所述,该方法包括:
[0039]步骤S101:接收客户端发起的数据写请求;
[0040]步骤S102:获取所述客户端的用户的元数据信息,并将所述元数据信息保存至MongoDB非关系型数据库中;
[0041]作为一种【具体实施方式】,步骤S102可以为:获取所述客户端的用户的元数据信息、文件存储大小以及偏移值,将所述元数据信息、所述文件存储大小以及偏移值保存至所述MongoDB非关系型数据库中。
[0042]步骤S103:在HDFS存储节点上创建新的数据块;
[0043]步骤S104:根据得到的HDFS存储节点的信息,向对应HDFS存储节点发送数据,以进行存储。
[0044]本发明所提供的面向云存储的数据存储方法,通过接收客户端发起的数据写请求,获取客户端的用户的元数据信息,并将该元数据信息保存至MongoDB非关系型数据库中;在册?5存储节点上创建新的数据块;根据得到的HDFS存储节点的信息,向对应HDFS存储节点发送数据,以进行存储。本发明所提供的面向云存储的数据存储方法及装置中,控制流和数据流是分离的,这样一方面降低了 MongoDB元数据服务的负担,使得其处理能力更强,另一方面将数据读写的负担分担到各存储节点,使得系统的整体性能得到了提高。
[0045]具体地,本发明在原有HDFS架构的基础上,采用MongoDB存储每个用户数据的元数据信息,用HDFS存储实际的数据。在云存储系统中,当新用户成功注册后,在HDFS中为该用户建立一个专有的用户文件userlD.file,用户文件中存放该用户所有的数据,用户文件名与用户ID—一对应。用户文件中的所有数据的详细元数据信息则存储在MongoDB中,MongoDB中的数据结构记录了每个用户的所有数据在该用户文件中的偏移值(offset)和大小(length),具体定义为userid, meta。
[0046]当用户需要在HDFS添加一个非结构化数据文件时,应用服务器获取该用户的的元数据信息,获知该用户的文件存储大小,以作为新添加文件的偏移值。新的文件元数据信息,连同该文件的偏移值和大小等信息作为一条记录写入MongoDB数据结构中。然后应用服务器获取HDFS系统上该用户文件的输出流,以追加的方式将新添加的文件写入到该用户文件中。
[0047]请参照图2,图2为本发明所提供的面向云存储的数据存储方法的另一种【具体实施方式】的流程图,该方法包括:
[0048]步骤S201:客户端向MongoDB元数据服务器发起数据写请求;
[0049]步骤S202:MongoDB元数据服务器根据其管理的存储节点的工作和使用情况,根据负载均衡的原理,在HDFS存储节点上创建一些新的数据块;
[0050]步骤S203:HDFS存储节点服务器创建成功,将结果返回给MongoDB元数据服务器;
[0051]步骤S204:MongoDB元数据服务器一方面备份和同步此元数据信息,另一方面将相关存储节点信息返回给客户端;
[0052]步骤S205:客户端根据得到的HDFS存储节点信息,向对应HDFS存储节点发出数据写请求,并向HDFS存储节点发送数据;
[0053]步骤S206:HDFS存储节点接收数据并存储到相应块,同时也向其他存储节点发起备份;
[0054]步骤S207:当本地写以及备份均成功后,HDFS存储节点将成功信息返回给客户端;
[0055]步骤S208:客户端收到成功信号后,即完成数据的存储。
[0056]当
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1