数据存储方法、装置及系统的制作方法

文档序号:9380324阅读:467来源:国知局
数据存储方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别是涉及一种数据存储方法、装置及系统。
【背景技术】
[0002]现有的网络存储技术通常以分片数据的形式存储文件或其他数据,即将较小的文件或较大文件分片后得到的分片数据存储在多个存储节点上。例如谷歌公司的GFS (GoogleFile System,谷歌文件系统),即通过对分片数据的进行哈希后,根据哈希值定位到相应的存储节点,然后将分片数据发送至该存储节点存储。
[0003]然而,该数据存储方法由于是根据分片数据的哈希值选择存储节点(基本等同于随机选取),使得在某些存储节点带宽不够或存储负载较高或存储空间不足时,存储效率较低,即时重新选择存储节点,而重新选择的过程也导致存储效率较低。

【发明内容】

[0004]基于此,有必要提供一种能够提高存储效率的数据存储方法。
[0005]一种数据存储方法,包括:
[0006]接收上传的分片数据,提取所述分片数据的数据标识;
[0007]获取存储节点的存储状态,根据所述存储状态选取存储节点,根据所述数据标识向存储节点请求分配存储空间;
[0008]接收所述存储节点返回的与所述数据标识对应的存储地址标识,所述存储地址标识与存储节点为所述数据标识分配的存储单元上的偏移位置对应;
[0009]将所述分片数据发送至所述存储地址标识对应的存储位置进行存储。
[0010]此外,还有必要提供一种能够提高存储效率的数据存储装置。
[0011]—种数据存储装置,包括:
[0012]数据接收模块,用于接收上传的分片数据,提取所述分片数据的数据标识;
[0013]存储节点选择模块,用于获取存储节点的存储状态,根据所述存储状态选取存储节点,根据所述数据标识向存储节点请求分配存储空间;
[0014]存储地址获取模块,用于接收所述存储节点返回的与所述数据标识对应的存储地址标识,所述存储地址标识与存储节点为所述数据标识分配的存储单元上的偏移位置对应;
[0015]数据存储模块,用于将所述分片数据发送至所述存储地址标识对应的存储位置进行存储。
[0016]此外,还有必要提供一种能够提高存储效率的数据存储系统。
[0017]一种数据存储系统,包括门面节点和存储节点,其中:
[0018]门面节点用于接收上传的分片数据,获取存储节点的存储状态,根据所述存储状态选取存储节点,向所述存储节点发送存储空间分配请求;
[0019]存储节点用于为所述存储空间分配请求分配存储单元,并获取所述存储单元上的空闲的存储位置的偏移量,根据所述分配的存储单元和偏移量生成存储地址标识,返回所述门面节点。
[0020]门面节点用于将所述分片数据发送至所述存储地址标识对应的存储节点;
[0021]存储节点用于根据所述存储地址标识存储所述分片数据。
[0022]此外,还有必要提供一种能够提高存储效率的数据存储方法。
[0023]一种数据存储方法,包括:
[0024]门面节点接收上传的分片数据,获取存储节点的存储状态,根据所述存储状态选取存储节点,向所述存储节点发送存储空间分配请求;
[0025]存储节点用于为所述存储空间分配请求分配存储单元,并获取所述存储单元上的空闲的存储位置的偏移量,根据所述分配的存储单元和偏移量生成存储地址标识,返回所述门面节点。
[0026]所述门面节点将所述分片数据发送至所述存储地址标识对应的存储节点;
[0027]所述存储节点根据所述存储地址标识存储所述分片数据。
[0028]上述数据存储方法及装置中,门面节点在选择存储节点时,根据存储节点的存储状态进行选择,也就是说总是会选择存储速度较快的或剩余存储空间较大的存储节点进行存储,使得存储效率得到提高。
[0029]同时,由于同一时间存储节点的存储状态不会发生突发性的改变,使得在存储大文件的多个连续的分片数据时,通常会存储在同一个存储节点上,因此在存储节点搬迁或存储节点上的数据进行迁移时,涉及到的关联的存储节点的数量较小,从而降低了搬迁成本。
【附图说明】
[0030]图1为一个实施例中一种数据存储系统的架构图;
[0031]图2为一个实施例中一种数据存储方法的流程图;
[0032]图3为一个实施例中存储节点的内部架构示意图;
[0033]图4为一个实施例中获取存储状态的过程示意图;
[0034]图5为一个实施例中分配存储单元的过程示意图;
[0035]图6为一个实施例中创建索引的过程示意图;
[0036]图7为一个实施例中存储和下载过程的时序图;
[0037]图8为另一个实施例中一种数据存储系统的架构图;
[0038]图9为一个实施例中一种数据存储装置的结构示意图;
[0039]图10为一个实施例中数据存储方法的流程图;
[0040]图11为一个实施例中运行上述数据存储方法的服务器硬件环境图。
【具体实施方式】
[0041]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0042]具体的,在本实施例中,为了能够提高存储效率,特提出了一种数据存储方法,该方法的实现可依赖计算机程序,可运行于基于冯诺依曼体系的计算机系统上。如图1所示,该计算机系统可以是图2所示的文件管理系统中的门面节点。
[0043]图1展示了一种文件管理系统,包括门面节点10和存储节点20,可提供数据存储和数据下载服务。门面节点10可与终端30连接,终端30可向门面节点10上传文件或下载文件。门面节点10则将终端30上传的数据转发至存储节点20。存储节点20包含有多个存储单元,如图1中存储节点24包含存储单元24A至存储单元24C,存储节点可将数据存储在存储单元中。
[0044]存储节点20上的存储单元可以是独立的磁盘、磁带或存储服务器硬件实体,也可以是与同一磁盘上的不同存储区域对应的逻辑存储块。例如,在一个应用场景中,可以独立的磁盘(例如ITB大小的硬盘)作为存储单元,每块磁盘即为一个存储单元。在另一个应用场景中,则可在大型的存储服务器上划分多个ITB的逻辑存储块,每个ITB的逻辑存储块即为存储空间大小为ITB的存储单元。
[0045]需要说明的是,门面节点10可以是单一的服务器硬件实体设备,也可以是多个服务器构成的服务器集群,该服务器集群中的服务器可分别实现门面节点的多个逻辑功能,单一服务器场景中的函数调用即可通过多服务器之间的通信实现。
[0046]具体的,如图2所示,该方法包括:
[0047]步骤S102:接收上传的分片数据,提取分片数据的数据标识。
[0048]分片数据可以是较小的独立的文件,也可以是文件片段。例如,若预先设置4kb大小的数据段为一个分片数据,则一个大小只有3kb的文档文件为一个分片数据,而一个大小为4mb的mp3音频文件则可被划分为1000个大小为4kb的分片数据。
[0049]在本实施例中,分片数据的数据标识可以是文件名或文件的摘要编码。如前例中,接收用户上传的该3kb的文档文件后,可将该文件的文件名加入上传时间戳的字段,然后将加入了上传时间戳字段的文件名作为该3kb文档文件的数据标识。下载时,用户即可
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1