CN101000610B - 文件分散式储存系统及方法 - Google Patents
文件分散式储存系统及方法 Download PDFInfo
- Publication number
- CN101000610B CN101000610B CN200610032944.2A CN200610032944A CN101000610B CN 101000610 B CN101000610 B CN 101000610B CN 200610032944 A CN200610032944 A CN 200610032944A CN 101000610 B CN101000610 B CN 101000610B
- Authority
- CN
- China
- Prior art keywords
- file
- node
- child node
- place
- checksum value
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种文件分散式储存方法,该方法包括以下步骤:将一待储存文件储存于一节点后分割成一系列子文件,并将各子文件储存至相应的子节点;判断用户访问时该文件是否受损;若该文件受损,则利用子该文件所在节点的子节点处文件修复该文件。利用本方法,可将文件分散储存于不同节点,当某一节点处文件损毁时可由其子节点处文件组合还原,实现文件的自行修复功能,降低传统单一节点储存方式的风险。
Description
【技术领域】
本发明涉及一种文件储存系统及方法。
【背景技术】
目前,窗口操作系统下的个人计算机平台均采用文件夹(folder)来存放电子文件,传统的储存方法通常是将一份完整电子文件储存于一储存设备(如硬盘),其优点是用户操作起来简便。然而,由于文件的所有部分储存在一段连续的储存空间,如因外力介入,例如病毒入侵或是人为疏忽删除,将导致文件无法修复。
为了对文件进行更严密的保护,需要一种更安全的文件储存机制,不仅与传统的文件储存方法一样简便易行,而且可以避免因外力介入所导致的文件损毁,实现文件的自行修复功能。
【发明内容】
鉴于以上内容,有必要提供一种文件分散式储存系统,将文件分散储存于不同节点,当某一节点处文件损毁时可由其子节点处文件组合还原,降低传统单一节点储存方式的风险。
此外,还有必要提供一种文件分散式储存方法,将文件分散储存于不同节点,当某一节点处文件损毁时可由其子节点处文件组合还原,降低传统单一节点储存方式的风险。
一种文件分散式储存系统,包括至少一应用服务器,该应用服务器包括:一分割模块,用于将储存在一节点的文件根据该节点的配置文件中记载的子节点的数量分割成一系列子文件;一发送模块,用于将各子文件发送至各相应节点储存;一判断模块,用于判断用户访问一节点处文件时该文件是否受损,及用于判断每一节点是否存在相应子节点;一获取模块,用于通过应用编程接口获取各节点处文件最初的CRC32校验和值,及获取用户访问时各节点处文件的当前CRC32校验和值;及一合并模块,用于当某一节点处文件受损时,合并该节点的所有子节点文件用于修复该受损的节点文件。
一种文件分散式储存方法,该方法包括以下步骤:(A)将一文件储存于一节点,根据该节点的配置文件中记载的子节点的数量将该文件分割成一系列子文件,并将各子文件储存至相应的子节点;(B)判断用户访问时该文件是否受损;及(C)若该文件受损,则利用子节点文件修复受损文件。
其中,步骤(A)包括以下步骤:(A1)将一待储存文件通过应用编程接口储存至一节点;(A2)通过应用编程接口获取该节点处文件的CRC32校验和值,并保存该CRC32校验和值;(A3)判断该节点是否存在子节点;(A4)若该节点存在子节点,则将该节点处文件分割成一系列子文件,并将各子文件储存至相应子节点;及(A5)对各子节点分别执行步骤(A2)至(A4)。
进一步地,步骤(C)包括以下步骤:(C1)判断该文件所在节点是否存在子节点;(C2)若存在子节点,则检查该各子节点处文件的当前CRC32校验和值;(C3)判断该各子节点处文件的当前CRC32校验和值是否与其最初的CRC32校验和值一致;及(C4)若一致,则合并该各子节点处文件用于修复受损的该节点处文件。
其中,若步骤(C3)的判断结果为否,则执行以下步骤:找出当前CRC32校验和与最初的CRC32校验和不一致的文件;返回步骤(C1)。
若步骤(C1)的判断该文件所在节点不存在子节点,则利用应用编程接口抛出异常。
本发明将文件分散储存于不同节点,当某一节点处文件损毁时,合并其各子节点处文件将其修复,实现了文件的自行修复功能。
【附图说明】
图1是本发明文件分散式储存系统较佳实施例的硬件架构图。
图2是本发明文件分散式储存系统较佳实施例的应用服务器的功能模块图。
图3是本发明文件分散式储存方法较佳实施例的主流程图。
图4是图3中步骤S10的细化流程图。
图5是图3中步骤S30的细化流程图。
图6是本发明文件分散式储存方法的一示意图。
【具体实施方式】
为方便理解,对部分术语作以下解释:
节点(node):储存空间,不同节点可以分配在同一机器的不同储存空间,也可以分配在不同机器的不同储存空间。本实施例以不同节点分配在不同机器为例说明。
配置文件:里面记载了每一节点下子节点的数量及各子节点的地址。
Checksum(校验和):数据处理和数据通信领域中一个简单易行的完整性控制方法。通过一系列算术或逻辑操作将数据的所有字节组合起来,得到一个校验和值。以后可以通过相同的方法计算出校验和值并与上次计算出的值进行比较。若相等,说明数据没有改变;若不等,说明数据已经被修改了。
CRC(Cyclic Redundancy Check):循环冗余码校验,CRC32是通过4个字节(4*8=32bits)校验,另有CRC16、CRC64,字节多少会影响校验速度。
API(Application Programming Interface):应用编程接口。
Exception(异常):是指由API所丢出的错误信息,用以提示错误的发生。
如图1所示,是本发明文件分散式储存系统较佳实施例的硬件架构图。该系统包括一用户端计算机10、多个应用服务器20及一内部网络30,用户端计算机10通过内部网络30与应用服务器20相连,并通过内部网络30访问储存于应用服务器20上的各种文件,用户端计算机10也可通过内部网络30将文件储存至应用服务器20。多个应用服务器20之间的互连关系为一树状结构,每一应用服务器20包括多个功能模块用于执行文件分散式储存操作。
如图2所示,是本发明文件分散式储存系统较佳实施例的应用服务器20的功能模块图。该应用服务器20包括一分割模块200、一发送模块201、一判断模块202、一获取模块203及一合并模块204。分割模块200用于将一待储存文件分割成一系列子文件。发送模块201用于将分割前的待储存文件发送至一根节点储存,分割模块200根据配置文件中记载的子节点的数量将待储存文件分割成一系列子文件,发送模块201将分割后的各子文件发送至各相应子节点储存。获取模块203用于通过API从各节点获取该各节点处文件储存时的CRC32校验和值,并用于获取用户访问各节点处文件时该节点处文件的当前CRC32校验和值。判断模块202用于判断各节点是否存在子节点,并用于依据访问时各节点处文件的当前CRC32校验和值是否与其被储存时CRC32校验和值一致判断该节点处文件是否受损。合并模块204用于当某一节点处文件被损毁时,合并其子节点文件将其修复。
如图3所示,是本发明文件分散式储存方法较佳实施例的主流程图。发送模块201将一待储存文件储存于一节点后,分割模块200根据配置文件中记载的子节点的数量将该待储存文件分割成一系列子文件,然后发送模块201将各子文件发送至各子节点储存(步骤S10)。判断模块202判断用户访问某节点处文件时该节点处文件是否受损(步骤S20)。若该节点处文件受损,则合并模块204合并该节点的子节点处文件用于修复该受损的节点处文件(步骤S30);若该节点处文件未受损,则用户访问该文件,结束流程。
如图4所示,是图3中步骤S10的细化流程图。首先,分割模块200将一待储存文件通过API储存于一节点(步骤S100)。获取模块203通过API获取该节点处文件的CRC32校验和值,并将其储存于该节点(步骤S101)。判断模块202根据该节点的配置文件的记载判断该节点是否有子节点(步骤S102)。若有子节点,则分割模块200根据子节点数量将该根节点处文件分割成若干个子文件,发送模块201分别将各子文件发送至各子节点储存(步骤S103)。对于各子节点,分别执行步骤S101、步骤S102再根据各子节点的配置文件判断其是否有子节点,若有子节点,则又将子节点处文件再分割,直至到最后一层的节点没有子节点时,结束分割文件。
如图5所示,是图3中步骤S30的细化流程图。若用户访问某一文件时该文件受损,则判断模块202判断该文件所在节点是否有子节点(步骤S300)。若该文件所在节点有子节点,则获取模块203通过API分别获取该文件所在节点的下一级各子节点处文件的当前CRC32校验和值(步骤S301)。判断模块202分别判断各文件的当前CRC32校验和值是否与各文件最初的CRC32校验和值一致(步骤S302)。若一致,则表明受损文件所在节点的各子节点处文件无损毁,则合并模块204合并该各子节点处的文件用于修复该受损文件(步骤S304)。
若在步骤S302,判断模块202判断的结果是该层有某一文件或某些文件的当前CRC32校验和值与其最初的校验和值不一致,亦即该层的某些节点处文件亦被损毁,则判断模块202找出受损的文件(步骤S303)。对这些受损的文件再分别执行步骤S300,判断其所在节点是否有子节点,若无子节点,则以API的形式抛出异常(Exception)(步骤S305);若有子节点,则再次转入步骤S301。
如图6所示,是本发明文件分散式储存方法的一示意图。图中,节点A有两个子节点B和C,其中节点B又有三个子节点D、E、F。首先,将一文件A0储存于节点A,然后将文件A0分割为两个子文件,分别记为A1、A2,将A1储存于节点B,A2储存于节点C。再将A1分割为三个子文件,分别记为A11、A12、A13,将A11储存于节点D,A12储存于节点E,A13储存于节点F。当用户访问节点A处文件A0时,若A0发生损毁,则合并节点A的子节点B处文件A1、子节点C处文件A2将A0修复,若子节点B处文件A1发生损毁,则合并节点B的子节点D处文件A11、子节点E处文件A12、子节点F处文件A13将文件A1修复。
Claims (9)
1.一种文件分散式储存方法,其特征在于,该方法包括以下步骤:
将一文件储存于一节点,根据该节点的配置文件中记载的子节点的数量将该文件分割成一系列子文件,并将各子文件储存至相应的子节点;
依据用户访问时该节点处文件的当前校验和值是否与该节点处文件最初的校验和值一致判断用户访问时该文件是否受损;及
若该文件受损,则合并该文件所在节点的子节点处文件修复该文件。
2.如权利要求1所述的文件分散式储存方法,其特征在于,其中步骤将一文件储存于一节点,根据该节点的配置文件中记载的子节点的数量将该文件分割成一系列子文件,并将各子文件储存至相应的子节点包括以下步骤:
(a)将该文件通过应用编程接口储存至该节点;
(b)通过应用编程接口获取该节点处文件的校验和值,并保存该校验和值;
(c)根据该节点的配置文件的记载判断该节点是否存在子节点;
(d)若该节点存在子节点,则将该节点处文件分割成一系列子文件,并将各子文件储存至相应子节点;及
(e)根据各子节点的配置文件判断各子节点是否有子节点,若有子节点,则将子节点处文件再分割,直至到最后一层的节点没有子节点时,结束分割文件。
3.如权利要求2所述的文件分散式储存方法,其特征在于,在步骤(c)中,若判断该节点不存在子节点,则不必分割该节点处文件。
4.如权利要求2所述的文件分散式储存方法,其特征在于,其中步骤利用子节点文件修复受损文件包括以下步骤:
判断该文件所在节点是否存在子节点;
若存在子节点,则检查该各子节点处文件的当前校验和值;
判断该各子节点处文件的当前校验和值是否与其最初的校验和值一致;
若一致,则合并该各子节点处文件用于修复受损的该节点处文件。
5.如权利要求4所述的文件分散式储存方法,其特征在于,若步骤判断各文件的当前校验和值是否与其最初的校验和值一致的结果为否,则执行以下步骤:
找出当前校验和值与最初的校验和值不一致的文件;及
返回判断该文件所在节点是否存在子节点的步骤。
6.如权利要求4所述的文件分散式储存方法,其特征在于,若步骤利用子节点文件修复受损文件时判断该文件所在节点是否存在子节点的结果为否,则执行以下步骤:
利用应用编程接口抛出异常。
7.一种文件分散式储存系统,该系统包括至少一应用服务器,用于将文件分散储存于不同节点,其特征在于,该应用服务器包括:
一分割模块,用于将储存在一节点的文件根据该节点的配置文件中记载的子节点的数量分割成一系列子文件;
一发送模块,用于将各子文件发送至各相应节点储存;
一获取模块,用于通过应用编程接口获取各节点处文件最初的校验和值,及获取用户访问时各节点处文件的当前校验和值;
一判断模块,用于判断用户访问一节点处文件时该文件是否受损,及用于判断每一节点是否存在相应子节点;及
一合并模块,用于当某一节点处文件受损时,合并该节点的所有子节点文件用于修复该受损的节点文件。
8.如权利要求7所述的文件分散式储存系统,其特征在于,所述的判断模块判断用户访问一节点处文件时该文件是否受损,是依据用户访问时该节点处文件的当前校验和值是否与该节点处文件最初的校验和值一致。
9.如权利要求7所述的文件分散式储存系统,其特征在于,所述的判断模块还用于当受损文件所在节点无子节点时,利用应用编程接口抛出异常。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610032944.2A CN101000610B (zh) | 2006-01-11 | 2006-01-11 | 文件分散式储存系统及方法 |
US11/309,712 US7533291B2 (en) | 2006-01-11 | 2006-09-15 | System and method for storing a data file backup |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610032944.2A CN101000610B (zh) | 2006-01-11 | 2006-01-11 | 文件分散式储存系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101000610A CN101000610A (zh) | 2007-07-18 |
CN101000610B true CN101000610B (zh) | 2010-09-29 |
Family
ID=38233968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610032944.2A Expired - Fee Related CN101000610B (zh) | 2006-01-11 | 2006-01-11 | 文件分散式储存系统及方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7533291B2 (zh) |
CN (1) | CN101000610B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8943024B1 (en) | 2003-01-17 | 2015-01-27 | Daniel John Gardner | System and method for data de-duplication |
US8630984B1 (en) | 2003-01-17 | 2014-01-14 | Renew Data Corp. | System and method for data extraction from email files |
US8375008B1 (en) | 2003-01-17 | 2013-02-12 | Robert Gomes | Method and system for enterprise-wide retention of digital or electronic data |
US8065277B1 (en) | 2003-01-17 | 2011-11-22 | Daniel John Gardner | System and method for a data extraction and backup database |
US8069151B1 (en) | 2004-12-08 | 2011-11-29 | Chris Crafford | System and method for detecting incongruous or incorrect media in a data recovery process |
US8527468B1 (en) | 2005-02-08 | 2013-09-03 | Renew Data Corp. | System and method for management of retention periods for content in a computing system |
US8150827B2 (en) * | 2006-06-07 | 2012-04-03 | Renew Data Corp. | Methods for enhancing efficiency and cost effectiveness of first pass review of documents |
US7873878B2 (en) * | 2007-09-24 | 2011-01-18 | International Business Machines Corporation | Data integrity validation in storage systems |
CN101141278B (zh) * | 2007-10-17 | 2010-07-14 | 北大方正集团有限公司 | 数据传输系统、数据发送方法、数据处理方法及相应装置 |
US8615490B1 (en) * | 2008-01-31 | 2013-12-24 | Renew Data Corp. | Method and system for restoring information from backup storage media |
CN101751398B (zh) * | 2008-12-08 | 2011-11-16 | 纬创资通股份有限公司 | 文件管理方法 |
WO2011072172A1 (en) * | 2009-12-09 | 2011-06-16 | Renew Data Corp. | System and method for quickly determining a subset of irrelevant data from large data content |
US8738668B2 (en) | 2009-12-16 | 2014-05-27 | Renew Data Corp. | System and method for creating a de-duplicated data set |
US8453031B2 (en) * | 2010-03-24 | 2013-05-28 | International Business Machines Corporation | Data deduplication using CRC-seed differentiation between data and stubs |
WO2013039534A1 (en) * | 2011-09-12 | 2013-03-21 | Microsoft Corporation | Querying and repairing data |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1371050A (zh) * | 2001-02-20 | 2002-09-25 | 英业达股份有限公司 | 一种生成具有自检测和自修复功能的应用程序的方法 |
US6505216B1 (en) * | 1999-10-01 | 2003-01-07 | Emc Corporation | Methods and apparatus for backing-up and restoring files using multiple trails |
CN1472963A (zh) * | 2002-07-30 | 2004-02-04 | 深圳市中兴通讯股份有限公司 | 分布式视频点播系统及其实现数据存储和访问的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5506983A (en) | 1992-07-06 | 1996-04-09 | Microsoft Corporation | Method and system for transactioning of modifications to a tree structured file |
US6073220A (en) * | 1997-09-03 | 2000-06-06 | Duocor, Inc. | Apparatus and method for providing a transparent disk drive back-up |
US20030126247A1 (en) * | 2002-01-02 | 2003-07-03 | Exanet Ltd. | Apparatus and method for file backup using multiple backup devices |
KR100359423B1 (en) * | 2002-01-04 | 2002-11-07 | Ncerti Co Ltd | Very high speed high capacity backup system and backup method thereof |
US7055008B2 (en) * | 2003-01-22 | 2006-05-30 | Falconstor Software, Inc. | System and method for backing up data |
US7472332B2 (en) * | 2005-07-26 | 2008-12-30 | International Business Machines Corporation | Method for the reliability of host data stored on fibre channel attached storage subsystems |
-
2006
- 2006-01-11 CN CN200610032944.2A patent/CN101000610B/zh not_active Expired - Fee Related
- 2006-09-15 US US11/309,712 patent/US7533291B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6505216B1 (en) * | 1999-10-01 | 2003-01-07 | Emc Corporation | Methods and apparatus for backing-up and restoring files using multiple trails |
CN1371050A (zh) * | 2001-02-20 | 2002-09-25 | 英业达股份有限公司 | 一种生成具有自检测和自修复功能的应用程序的方法 |
CN1472963A (zh) * | 2002-07-30 | 2004-02-04 | 深圳市中兴通讯股份有限公司 | 分布式视频点播系统及其实现数据存储和访问的方法 |
Non-Patent Citations (1)
Title |
---|
US 6505216 B1,摘要、说明书第4栏第3行至第9栏第67行,第14栏第43行至第23栏第6行、附图4-9. |
Also Published As
Publication number | Publication date |
---|---|
US20070162523A1 (en) | 2007-07-12 |
US7533291B2 (en) | 2009-05-12 |
CN101000610A (zh) | 2007-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101000610B (zh) | 文件分散式储存系统及方法 | |
CN103345472B (zh) | 基于有限二叉树布隆过滤器的去冗文件系统及其构建方法 | |
US20050038803A1 (en) | System and method performing an on-line check of a file system | |
US20090037491A1 (en) | Storage system and method for updating a hash tree | |
CN106649362B (zh) | 网页爬取方法和装置 | |
CN105159603A (zh) | 一种分布式数据存储系统的修复方法 | |
CN110727644B (zh) | 一种区块链数据裁剪的方法、系统及存储介质 | |
NO20080273L (no) | Fordelt mellomlagring av filer i et nettverk | |
CN109445861A (zh) | 系统启动方法、装置、计算机装置及存储介质 | |
DE102006003146B4 (de) | Vorrichtung und Verfahren zum Auslesen eines Datenwortes und Vorrichtung und Verfahren zum Speichern eines Datenblocks | |
US10095415B2 (en) | Performance during playback of logged data storage operations | |
Xia et al. | Performance and availability modeling of ITSystems with data backup and restore | |
CN105550071B (zh) | 系统文件升级及检测方法、通信设备 | |
CN113821478A (zh) | 一种基于区块链的大文件存储方法及系统 | |
CN106708927A (zh) | 文件的去重处理方法和装置 | |
US8539598B2 (en) | Detection of customizations of application elements | |
CN114301575A (zh) | 数据处理方法、系统、设备及介质 | |
CN103136234B (zh) | 处理数据的方法和装置 | |
US8838545B2 (en) | Incremental and prioritized restoration of blocks | |
CN101174294B (zh) | 一种基于版本增量备份的软件保护方法 | |
CN106325769A (zh) | 一种数据存储的方法及装置 | |
CN110851840A (zh) | 基于网站漏洞的web后门检测方法及装置 | |
CN105635264A (zh) | 一种基于网络游戏应用的文件系统 | |
CN108600312A (zh) | 一种基于文件分块的多线程并行下载方法 | |
CN109271194A (zh) | 基于分布式版本控制系统的分支访问方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100929 Termination date: 20150111 |
|
EXPY | Termination of patent right or utility model |