CN108241640A - 一种分布式的文件存储方法 - Google Patents
一种分布式的文件存储方法 Download PDFInfo
- Publication number
- CN108241640A CN108241640A CN201611207434.4A CN201611207434A CN108241640A CN 108241640 A CN108241640 A CN 108241640A CN 201611207434 A CN201611207434 A CN 201611207434A CN 108241640 A CN108241640 A CN 108241640A
- Authority
- CN
- China
- Prior art keywords
- file
- server
- storage
- management server
- document storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种分布式的文件存储方法,该方法包括:使用多个文件存储服务器实现分布式的文件存储,并使用管理服务器对所述文件存储服务器进行管理;当需要存储文件时,由管理服务器根据文件长度,确定是否对文件分块,如果需要分块则确定文件的分块方式,将文件或者分块发送到相应的文件存储服务器进行存储;文件存储服务器根据接收的文件或数据块的哈希值确定该数据的存储方式。
Description
【技术领域】
本发明属于计算机和文件存储领域,具体的,涉及一种分布式的文件存储方法。
【背景技术】
近年来,随着计算机技术对各个方面的渗透,各行各业都被计算机化了,许多原有的系统都被改造成计算机系统,原有的纸质文件也被改成计算机文件。计算机文件相对于纸质文件具有许多优点,例如容易复制,容易保存等等。但是,计算机文件如果都存储在同一个地方,也会有巨大的危险性,一旦该地方发生灾难,将造成大量文件丢失。因此,现有技术中出现了分布式文件存储的概念,一方面设置多个文件文件服务器,分布在不同地点,用于存储文件;另一方面,将同一文件存储在不同服务器上,实现了冗余备份。
但是,现有技术中的分布式文件存储没有考虑重复文件对存储空间的占用,造成了存储资源的浪费。
【发明内容】
为了解决现有技术中的上述问题,本发明提出了一种新的分布式的文件存储方法,其技术方案如下:
一种分布式的文件存储方法,该方法包括以下步骤:
步骤100:使用多个文件存储服务器实现分布式的文件存储,并使用管理服务器对所述文件存储服务器进行管理;
步骤200:当需要存储文件时,由管理服务器根据文件长度,确定是否对文件分块,如果需要分块则确定文件的分块方式,将文件或者分块发送到相应的文件存储服务器进行存储;
步骤300:文件存储服务器根据接收的文件或数据块的哈希值确定该数据的存储方式。
进一步地,所述管理服务器和文件服务器之间通过网络连接。
进一步地,所述网络是局域网。
进一步地,所述网络是互联网。
进一步地,所述网络是广域网。
本发明的技术效果是:提高了分布式文件存储的资源利用率。
【附图说明】
此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:
图1是本发明方法的基本流程图。
【具体实施方式】
下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的不当限定。
本发明方法所应用的系统结构包括管理服务器和多个文件服务器,所述管理服务器负责管理文件的清洗比对入库,而文件服务器用于存储数据。为了存储海量的数据,本发明的优选方案是使用256个文件服务器,当然这是对于大型数据存储系统而言的,如果使用者是小型企业,为了减少成本,也可以考虑将其中的多个服务器合并成一个,从而减少文件服务器数量。管理服务器和文件服务器之间,以及各个文件服务器之间通过网络连接,可以是局域网、互联网或者广域网。
在上述系统结构的基础上,本发明的方法的基本步骤如下:
步骤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。但是,本发明写成循环的形式只是为了叙述方便,实际应用中,本领域技术人员可以了解,可以只对文件进行一遍扫描就完成上述256个循环,从而提高执行效率。
(9)对K0到K255按照从大到小进行排序(如果有相等的KV,则下标大的在前),获取排在最前的(即最大的)4个值,假设为KV1,KV2,KV3,KV4。
(10)按照V1到V4四个分块向量对该文件的分块结果,将各个数据块按照其结尾字节发送到相应的文件服务器进行重复性检测。
如前所述,如果一个数据块的结尾字节是X,则将该数据块发送到Server(X)。
(11)每个文件服务器对接收到的每个数据块,计算其哈希值,根据该哈希值判断该数据块是否是重复数据(即该数据块与已存储的数据块相同),将判断结果发送给管理服务器。
(12)所述管理服务器根据步骤11接收到的判断结果,从四种分块方式中选择重复数据量最多的两种(如果重复数据量相同,则随机选择)。根据这两种分块方式,通知相应的文件服务器进行存储。管理服务器自身保存该文件的相关信息,包括其两种分块方式和相应的文件服务器。
文件服务器的存储方式与步骤4相同,如果是重复的数据块,则只保留指针和相应的哈希值,如果是不重复的数据块,则保存该数据块和相应的哈希值。
保留的两种分块方式是为了冗余备份的考虑,即在一种分块方式的文件服务器出故障后,另外一种分块方式仍然可以组合成原文件。
另外,上述步骤中,在四种分块方式中选择两种仅仅是本发明的一种优选的实施方式,本领域技术人员可以根据具体情况选择另外的数值,例如从3种中选择2种,或者5种中选择3种。
以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。
Claims (5)
1.一种分布式的文件存储方法,其特征在于,该方法包括以下步骤:
步骤100:使用多个文件存储服务器实现分布式的文件存储,并使用管理服务器对所述文件存储服务器进行管理;
步骤200:当需要存储文件时,由管理服务器根据文件长度,确定是否对文件分块,如果需要分块则确定文件的分块方式,将文件或者分块发送到相应的文件存储服务器进行存储;
步骤300:文件存储服务器根据接收的文件或数据块的哈希值确定该数据的存储方式。
2.根据权利要求1所述的分布式的文件存储方法,其特征在于,所述管理服务器和文件服务器之间通过网络连接。
3.根据权利要求2所述的分布式的文件存储方法,其特征在于,所述网络是局域网。
4.根据权利要求2所述的分布式的文件存储方法,其特征在于,所述网络是互联网。
5.根据权利要求2所述的分布式的文件存储方法,其特征在于,所述网络是广域网。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611207434.4A CN108241640B (zh) | 2016-12-23 | 2016-12-23 | 一种分布式的文件存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611207434.4A CN108241640B (zh) | 2016-12-23 | 2016-12-23 | 一种分布式的文件存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108241640A true CN108241640A (zh) | 2018-07-03 |
CN108241640B CN108241640B (zh) | 2022-04-08 |
Family
ID=62703978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611207434.4A Active CN108241640B (zh) | 2016-12-23 | 2016-12-23 | 一种分布式的文件存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108241640B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112202910A (zh) * | 2020-10-10 | 2021-01-08 | 上海威固信息技术股份有限公司 | 一种计算机分布式存储系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193877A (zh) * | 2011-04-15 | 2011-09-21 | 北京邮电大学 | 一种基于三维空间结构的数据拆分置乱和恢复方法 |
US20120150826A1 (en) * | 2010-12-14 | 2012-06-14 | Commvault Systems, Inc. | Distributed deduplicated storage system |
CN102629247A (zh) * | 2011-12-31 | 2012-08-08 | 成都市华为赛门铁克科技有限公司 | 一种数据处理方法、装置和系统 |
CN103246730A (zh) * | 2013-05-08 | 2013-08-14 | 网易(杭州)网络有限公司 | 文件存储方法和设备、文件发送方法和设备 |
CN103399941A (zh) * | 2013-08-13 | 2013-11-20 | 广州中国科学院软件应用技术研究所 | 一种分布式文件处理方法、装置及系统 |
CN103455631A (zh) * | 2013-09-22 | 2013-12-18 | 广州中国科学院软件应用技术研究所 | 一种数据处理方法、装置及系统 |
US20140164487A1 (en) * | 2012-12-12 | 2014-06-12 | Hon Hai Precision Industry Co., Ltd. | File saving system and method |
CN103873507A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 数据分块上传与存储系统及方法 |
CN103944988A (zh) * | 2014-04-22 | 2014-07-23 | 南京邮电大学 | 一种适用于云存储的重复数据删除系统和方法 |
US20140280765A1 (en) * | 2013-03-15 | 2014-09-18 | Futurewei Technologies, Inc. | Self-Organizing Disk (SoD) |
CN105335513A (zh) * | 2015-10-30 | 2016-02-17 | 迈普通信技术股份有限公司 | 一种分布式文件系统及文件存储方法 |
-
2016
- 2016-12-23 CN CN201611207434.4A patent/CN108241640B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120150826A1 (en) * | 2010-12-14 | 2012-06-14 | Commvault Systems, Inc. | Distributed deduplicated storage system |
CN102193877A (zh) * | 2011-04-15 | 2011-09-21 | 北京邮电大学 | 一种基于三维空间结构的数据拆分置乱和恢复方法 |
CN102629247A (zh) * | 2011-12-31 | 2012-08-08 | 成都市华为赛门铁克科技有限公司 | 一种数据处理方法、装置和系统 |
US20140164487A1 (en) * | 2012-12-12 | 2014-06-12 | Hon Hai Precision Industry Co., Ltd. | File saving system and method |
CN103873504A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 数据分块存储至分布式服务器的系统及方法 |
CN103873507A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 数据分块上传与存储系统及方法 |
US20140280765A1 (en) * | 2013-03-15 | 2014-09-18 | Futurewei Technologies, Inc. | Self-Organizing Disk (SoD) |
CN103246730A (zh) * | 2013-05-08 | 2013-08-14 | 网易(杭州)网络有限公司 | 文件存储方法和设备、文件发送方法和设备 |
CN103399941A (zh) * | 2013-08-13 | 2013-11-20 | 广州中国科学院软件应用技术研究所 | 一种分布式文件处理方法、装置及系统 |
CN103455631A (zh) * | 2013-09-22 | 2013-12-18 | 广州中国科学院软件应用技术研究所 | 一种数据处理方法、装置及系统 |
CN103944988A (zh) * | 2014-04-22 | 2014-07-23 | 南京邮电大学 | 一种适用于云存储的重复数据删除系统和方法 |
CN105335513A (zh) * | 2015-10-30 | 2016-02-17 | 迈普通信技术股份有限公司 | 一种分布式文件系统及文件存储方法 |
Non-Patent Citations (2)
Title |
---|
PENGFEI MA 等: "A Distributed File System for Frequency Reading of Various File Sizes", 《2013 10TH WEB INFORMATION SYSTEM AND APPLICATION CONFERENCE》 * |
陈煌: "基于差异同步的云存储研究和实践", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112202910A (zh) * | 2020-10-10 | 2021-01-08 | 上海威固信息技术股份有限公司 | 一种计算机分布式存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108241640B (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101313495B (zh) | 数据同步方法、系统及装置 | |
CN102413156B (zh) | 一种分布式数据存储系统和方法 | |
CN105404679A (zh) | 数据处理方法和装置 | |
CN102142032A (zh) | 一种分布式文件系统的数据读写方法及系统 | |
CN109446202A (zh) | 标识符分配方法、装置、服务器和存储介质 | |
CN109842652A (zh) | 一种文件的上传方法、终端、云服务器和计算机存储介质 | |
CN109710466A (zh) | 一种数据备份方法及装置 | |
CN108243207B (zh) | 一种网络云盘的数据存储方法 | |
CN108241639B (zh) | 一种数据去重方法 | |
CN114936254A (zh) | 云链融合机制下的食品安全大数据共享管理方法及系统 | |
CN112068812B (zh) | 一种微服务生成方法、装置、计算机设备和存储介质 | |
CN108241640A (zh) | 一种分布式的文件存储方法 | |
CN106844480B (zh) | 一种清洗比对入库方法 | |
CN103500129A (zh) | 一种备份对象的发送、备份方法、生产端、灾备端及系统 | |
US20130058333A1 (en) | Method For Handling Requests In A Storage System And A Storage Node For A Storage System | |
CN106487884A (zh) | 数据传输方法及客户端 | |
CN104932982B (zh) | 一种消息访存的编译方法及相关装置 | |
CN101415029A (zh) | 文件分发方法及装置 | |
CN113268251A (zh) | 微服务的部署方法及其设备、计算机存储介质 | |
CN106850345B (zh) | 一种网络用户状态的监测及查询方法 | |
CN106600250B (zh) | 区块链去中心化到中心化的用户标识方法和装置 | |
CN106453441B (zh) | 一种通信预处理方法及管理系统 | |
CN109344573A (zh) | 一种激活方法及装置 | |
CN109033189A (zh) | 链路结构日志的压缩方法、装置、服务器及可读存储介质 | |
CN117278521B (zh) | 资产认定方法和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 101399 No. 2 East Airport Road, Shunyi Airport Economic Core Area, Beijing (1st, 5th and 7th floors of Industrial Park 1A-4) Applicant after: Zhongke Star Map Co., Ltd. Address before: 101399 Building 1A-4, National Geographic Information Technology Industrial Park, Guomen Business District, Shunyi District, Beijing Applicant before: Space Star Technology (Beijing) Co., Ltd. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |