[发明专利]一种分布式的文件存储方法有效

专利信息
申请号: 201611207434.4 申请日: 2016-12-23
公开(公告)号: CN108241640B 公开(公告)日: 2022-04-08
发明(设计)人: 李振钊;王焰辉;曾刚 申请(专利权)人: 中科星图股份有限公司
主分类号: G06F16/13 分类号: G06F16/13;G06F16/182
代理公司: 北京安博达知识产权代理有限公司 11271 代理人: 徐国文
地址: 101399 北京市顺义区临空经济核*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 分布式 文件 存储 方法
【权利要求书】:

1.一种分布式的文件存储方法,所述方法应用的系统结构包括管理服务器和多个文件服务器,所述管理服务器负责管理文件的清洗比对入库,而文件服务器用于存储数据;管理服务器和文件服务器之间,以及各个文件服务器之间通过网络连接;所述网络为局域网、互联网或者广域网;

其特征在于,该方法包括以下步骤:

步骤100:使用多个文件存储服务器实现分布式的文件存储,并使用管理服务器对所述文件存储服务器进行管理;

步骤200:当需要存储文件时,由管理服务器根据文件长度,确定是否对文件分块,如果需要分块则确定文件的分块方式,将文件或者分块发送到相应的文件存储服务器进行存储;

步骤300:文件存储服务器根据接收的文件或数据块的哈希值确定该数据的存储方式;

所述方法的具体步骤如下:

(1)管理服务器接收需要存储的文件;

所述管理服务器作为整个系统与外界的接口,接收外界发送来的文件,并负责采用后续的步骤将该文件存储到文件服务器中;互联网上的Web 服务器相当于所述管理服务器,接收用户上传的文件并存储;

(2)所述管理服务器检查所述文件的长度L,如果L小于预定义的最小数据块长度MinBlockLength,则提取该文件的最后一个字节B,转到步骤3;如果L ≥MinBlockLength,则转到步骤5;

所述长度都是以字节为单位,由于一个字节为8位,则必然有0≤B≤255;所述最小数据块长度是对文件分块时的最小长度,其具体值可以由管理员根据具体情况设定;该MinBlockLength=1024字节;

(3)预先给系统中的256个文件服务器编号,分别命名为Server(i),其中 0≤i≤255,管理服务器将该文件发送到Server(B),同时保存该文件的相关信息;

根据数据块结尾的字节,对数据块进行分类;一个字节一共有256个取值,将数据块分成256类,并且对应的分配到256个文件服务器,每个文件服务器的编号与其负责的数据块的分类即结尾字节的值相同;

256个文件服务器为适用于大型的数据存储系统,如果需要缩减成本,文件服务器之间可以进行复用,即多个数据块类别共享一个文件服务器,该文件服务器有多个编号;

所述文件的相关信息包括文件的名字、大小、文件服务器的编号,由此管理服务器可以查询到该文件;

(4)所述Server(B)计算该文件的哈希值,根据该哈希值判断该文件是否已存储在服务器中,如果已存储,则该文件是重复数据,仅为该文件保留一个指针,指向已存储的数据即可;如果并未存储,则Server(B)存储该文件和其哈希值,方法结束;

文件服务器保存了每个存储的文件或数据块的哈希值,因此将该文件的哈希值与已有哈希值进行比较,就可以判断该文件是否是重复数据,如果是重复数据,就不用再次存储整个文件;

(5)所述管理服务器准备对该文件进行数据分块,首先设置初始的分块向量 V=0;

(6)所述管理服务器从该文件的第MinBlockLength个字节开始向后扫描,当扫描某个字节等于分块向量时,记录该字节的位置P1,然后再从 P1+MinBlockLength的位置开始扫描,寻找并记录下一个等于分块向量的字节位置,如此循环,直到文件的末尾;换言之,每一次扫描的开始位置与上一次记录位置的距离都是MinBlockLength,直到达到文件的末尾;

(7)根据步骤6的所记录的位置,将每个位置作为一个数据块的结尾,对文件进行分块,由此可以得到一个或多个数据块,设得到KV个数据块;

步骤7得到的数据块可能有两类,第一类是以分块向量V结尾的数据块,第二类是文件的最后一个数据块,即以B结尾的数据块;其中第二类的数据块的数量只能是1或者0,第一类数据块的数据量也可能为0,这取决于文件的具体内容;

(8)分块向量V增加1,如果V≤255,则返回步骤6,否则继续步骤9;

所述步骤6-8是一个循环,基于0到255的每个分块向量值进行文件扫描,从而获得了多种数据块分割形式,数量从K0到K255

(9)对K0到K255按照从大到小进行排序,如果有相等的KV,则下标大的在前,获取排在最前的(即最大的)4个值,假设为KV1,KV2,KV3,KV4

(10)按照V1到V4四个分块向量对该文件的分块结果,将各个数据块按照其结尾字节发送到相应的文件服务器进行重复性检测;

如前所述,如果一个数据块的结尾字节是X,则将该数据块发送到Server(X);

(11)每个文件服务器对接收到的每个数据块,计算其哈希值,根据该哈希值判断该数据块是否是重复数据,即该数据块与已存储的数据块相同,将判断结果发送给管理服务器;

(12)所述管理服务器根据步骤11接收到的判断结果,从四种分块方式中选择重复数据量最多的两种,如果重复数据量相同,则随机选择;根据这两种分块方式,通知相应的文件服务器进行存储;管理服务器自身保存该文件的相关信息,包括其两种分块方式和相应的文件服务器;

文件服务器的存储方式与步骤4相同,如果是重复的数据块,则只保留指针和相应的哈希值,如果是不重复的数据块,则保存该数据块和相应的哈希值。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科星图股份有限公司,未经中科星图股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201611207434.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top