CN110188084A - 一种分布式文件存储系统及文件存储方法 - Google Patents

一种分布式文件存储系统及文件存储方法 Download PDF

Info

Publication number
CN110188084A
CN110188084A CN201910410024.7A CN201910410024A CN110188084A CN 110188084 A CN110188084 A CN 110188084A CN 201910410024 A CN201910410024 A CN 201910410024A CN 110188084 A CN110188084 A CN 110188084A
Authority
CN
China
Prior art keywords
file
storage unit
document
storage
write
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
Application number
CN201910410024.7A
Other languages
English (en)
Other versions
CN110188084B (zh
Inventor
俞小浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Xunmeng Technology Co Ltd
Original Assignee
Zhejiang Xunmeng Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Xunmeng Technology Co Ltd filed Critical Zhejiang Xunmeng Technology Co Ltd
Priority to CN201910410024.7A priority Critical patent/CN110188084B/zh
Publication of CN110188084A publication Critical patent/CN110188084A/zh
Application granted granted Critical
Publication of CN110188084B publication Critical patent/CN110188084B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

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)

Abstract

本发明涉及一种分布式文件存储系统及文件存储方法。一种分布式文件存储方法,该方法基于分布式文件存储系统实现,该方法包括以下步骤:对每个存储单元预置一个唯一的存储单元编号,并对互备的存储单元之间建立关联;文件存储系统的接收层接收到文件写入请求后,首先判断请求写入的文件是否是初次写入;对于被初次写入的文件,文件存储系统为请求写入的文件分配存储单元,被分配的存储单元为该文件分配唯一的文件编号;若待写入的文件已存在,直接向业务方返回该文件编号;存储单元将存储文件的文件索引的关键信息实时反馈给缓存单元。本发明除具有普通分布式文件存储系统的优点外,还具有无中心、数据易恢复的特点。

Description

一种分布式文件存储系统及文件存储方法
技术领域
本发明涉及数据存储领域,尤其涉及高并发下的分布式文件存储系统及存储方法。
背景技术
随着互联网技术的发展,对数据存储的并发性要求越来越高,原来的集中式数据存储由于价格和性能等各方面的原因,已越来越不能满足需要。与此同时,分布式文件存储系统得到了很大的发展,特别是谷歌的GFS系统,提出在廉价的普通硬件设备上,通过软件方法搭建高容错性的分布式文件系统,对大容量、高并发的数据存储带来了革命性的变化。此后Apache根据GFS的思想推出了开源的HDFS(Hadoop分布式文件系统)。
但这些存储系统都由一个单点的master服务来负责空间的分配,尽管master只做空间分配而不涉及具体数据的写入,所以负载较小,但作为单点也存在系统负载的上限和风险。
同时,在GFS或HDFS中,数据的存储是随机分配的,所有的存储单元都是完全不同的,这样当有机器发生物理故障或扩容时,数据的恢复/扩容会有额外的开销。
发明内容
为了解决上述问题,本发明的目的在于提供一种分布式文件存储方法,执行该方法的分布式文件存储系统除具有普通分布式文件存储系统的优点外,还具有无中心、数据易恢复的特点。
为了实现上述的目的,本发明采用了以下的技术方案:
一种分布式文件存储方法,该方法基于分布式文件存储系统实现,该方法包括以下步骤:
对每个存储单元预置一个唯一的存储单元编号,并对互备的存储单元之间建立关联;
文件写入:
文件存储系统的接收层接收到文件写入请求后,首先判断请求写入的文件是否是初次写入;
对于被初次写入的文件,文件存储系统为请求写入的文件分配存储单元,被分配的存储单元为该文件分配唯一的文件编号;
若待写入的文件已存在,直接向业务方返回该文件编号;
存储单元将存储文件的文件索引的关键信息实时反馈给缓存单元。此处所指的文件索引的关键信息基于存储单元中的文件提取,能够根据所述关键信息确定到存储在存储单元中的某一确定文件。
于实施例中,存储单元一般指分布式存储系统中的存储服务器。
作为优选方案,所述判断请求写入的文件是否初次写入,包括:
将请求写入的文件的摘要信息、长度及一串任意位置的原始数据作为预存储操作上传;
按请求写入文件的摘要信息和长度从存储单元获取文件编号;
若能从存储单元中获取对应的文件编号,则根据文件编号获取该文件的指定片段,与待写入文件片断进行比对,若相同,则认为文件已经存在,否则请求写入的文件是初次写入;此处的文件的指定片段是指,预存储的待写入文件的一串任意位置的原始数据选定的文件编码指代的文件的对应位置的数据片段。预存储的待写入文件的原始数据可以是偏移量和/或数据。
其中,所述文件索引的关键信息包括存储文件的摘要信息、长度、文件编号和文件的指定片段。
按上述方法,相比于现有技术中常用的只比对文件摘要信息的方式(如MD5值比对),能够更准确的进行数据去重判断,以避免重复地存储相同的数据文件,并提高文件上传的效率。
作为优选方案,文件存储系统中存储单元定时向所有接入服务通报本簇块的存储状况,文件存储系统综合考虑时间和可用空间,按优先级选择当前最合适的簇块,并向该簇块下的首个存储单元(编号最小者)发送对文件的写入请求。本方法所述的分布式文件存储系统,由多个簇块组成,每个簇块下包括一组互备的存储单元,需要写入文件时,需要先选定待写入的存储单元簇块,然后向该簇块下的存储单元写入文件。簇块的选择综合考虑时间和空间因素进行优先级划分:如果简单地向簇块轮循发起写入请求,则所有的簇块空间使用将同步增长,但对空闲空间不同的簇块(比如由于扩容加入了一组完全空闲的存储单元)来说是不公平的,因为为了提高使用率,总是希望新的写入请求向那些空间更大的簇块倾斜;而如果仅按可用空间作为优先级因素,则会导致所有写入请求都会指向空间较大的簇块,又不利于负载均衡,所以此处所述的最合适的簇块需要综合时间和可用空间因素进行考虑:在单位时间内,所有可写的簇块都将被轮循到,但根据可用空间大小而占比不同。
作为优选方案,在文件存储系统中维护了一个由不同簇块下存储单元的簇块编号组成的环,并按环的顺序分配存储单元;在环中,存储空间越大的存储单元出现的次数越多,被分配到的比重就越大,以使负载均衡。
作为优选方案,将所有互备的存储单元按存储单元编号组成一个环形的列表,当存储单元接收到一个写入请求时,在该存储单元完成写入操作,并判断是否还存在有未写入的备份节点,如有则向下一个备份节点转发数据及空间分配信息。按这一方法,在向备份服务器同步信息后,所有的文件在所有的备份服务器上的存储位置是完全相同的,即所有的数据都存储在相同块的相同偏移量下,所以备份扩容只需复制所有的数据文件即可。该优选方案旨在解决相同簇块下数据的互备,该优选方案中,环中的存储单元是完全互备的,实施例中指定环中的首节点负责空间的分配。
作为优选方案,被分配的存储单元为初次写入的文件分配的文件编号包含其所在的存储单元编号信息和所在存储单元下的一个自增序列;对于根据文件编号指定的文件,由文件编号确定存储有该文件的存储单元编号以及关联的存储该文件备份的存储单元,写入时选取这组存储单元的首节点(存储单元编号最小者),读取时依次轮流从互备的存储单元中选取一个,并根据文件编号中的自增序列确定或分配要操作的块文件列表,根据偏移量确定数据在块内的物理地址,最终实现对选定文件的写入/读取操作。写入时首节点优先以解决互斥问题词,读取时采用轮循方式。文件按上述方式编号,可以根据文件编号快速选定对应文件的存储位置。并且,按以上方法,在进行存储单元扩容时,横向的容量扩容,只需要分配新的存储单元编号给新加入的存储服务,并加入分布式存储系统中,新数据的写入就会线性地分配到新加入的存储服务中。
作为优选方案,对于已存储的数据进行读取操作时,运行数据容错处理:在动行中动态调整差错数据,
当一个读取操作发生时,如果从当前轮循的存储单元中未能获取所需的数据,则依次尝试向其它与其互备的备份存储单元获取数据,获取成功时,将当批数据同步给获取失败的存储单元。
综上所述,上述分布式文件的存储方法具有能动态线性扩容,数据多点互备,高容错性、高效数据存储的优点。
本发明还提供了一种如上任一项所述的分布式文件存储方法中的分布式文件存储系统,所述分布式文件存储系统包括一组可扩展的响应单元、缓存单元和多个互备的存储单元,
响应单元作为接入层与请求方交互,将业务指令分拆成一系列功能指令,并依次与相应的功能组件进行交互,完成业务指令并向请求方作出响应;
缓存单元在内存中存储并实时更新文件索引的关键信息,缓存单元与响应单元交互,并为响应单元的功能实现提供支持;
存储单元基于操作系统的文件系统完成对文件的物理存储,针对响应单元的功能指令做出相应。
上述分布式文件存储系统运行请求接入、数据缓存、数据存储等多组服务以实现上述分布式文件存储方法。
本发明提出的分布式存储系统,空间的分配由不同簇块下的首个存储单元完成的,是完全分布式的,不存在单点问题。并且,相同的存储单元的数据是完全相同的,发生故障或需要扩容时,只需要拷贝相应的全量甚至部份文件,即可实现存储的迁移或扩容,提高了系统的容错能力。
本发明中的方法通过计算机程序实现,因此,本发明还提供了一种存储介质,存储介质上存储有计算机程序,程序被处理器执行实现如上任一项所述的一种分布式文件存储方法。
附图说明
图1为本发明中文件编号的组成规则与存储单元的映射关系。
图2为基于本发明方法的一个文件写入的操作示例。
图3为本发明中在存储单元中的文件结构。
图4为基于本发明方法的一个文件读取的操作示例以及数据的恢复机制
图5为基于本发明方法的一种存储扩容的方法示例。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
本发明公开了一种分布式文件存储方法,该方法基于分布式文件存储系统实现,所述分布式文件存储系统包括一组可扩展的响应单元、缓存单元和多个互备的存储单元,
响应单元作为接入层与请求方交互,将业务指令分拆成一系列功能指令,并依次与相应的功能组件进行交互,完成业务指令并向请求方作出响应;
缓存单元在内存中存储并实时更新文件索引的关键信息,缓存单元与响应单元交互,并为响应单元的功能实现提供支持;
存储单元基于操作系统的文件系统完成对文件的物理存储,针对响应单元的功能指令做出相应。
上述分布式文件存储系统运行请求接入、数据缓存、数据存储等多组服务以实现以下分布式文件存储方法。
分布式文件存储方法包括以下步骤:
对每个存储单元预置一个唯一的存储单元编号,并对互备的存储单元之间建立关联;
文件写入:
文件存储系统的接收层接收到文件写入请求后,首先判断请求写入的文件是否是初次写入;
对于被初次写入的文件,响应单元为请求写入的文件分配存储单元,被分配的存储单元为该文件分配唯一的文件编号;
若待写入的文件已存在,直接向业务方返回该文件编号;
存储单元将存储文件的文件索引的关键信息实时反馈给缓存单元。
图1描述了文件编号的组成规则与存储单元的映射关系。本方法中的文件编号由存储单元分配生成,并蕴含了所有文件寻址的关键信息。文件在初次写入时,被分配的存储单元负责文件编号的生成。
所有的存储单元,都将被预置一个唯一的簇号,不同的备份也将被预置一个不同的备份号,簇号与备份号一起组成全局唯一的存储单元编号。
文件编号由存储单元编号+顺序增长的序列号组成,在一个存储单元中生成本单元唯一的序列号是容易实现的,这样生成的文件编号就将是全域唯一的。
除初次写入时以外,所有对文件的访问都是通过文件编号来进行的。由于从文件编号可以轻易提取存储单元编号,所以请求可以被转发到指定的存储单元,或相关的互备的存储单元中。
互备的文件S106、S108存储在互备的存储单元中,为了便于数据同步,减少计算量,文件一旦被存储后,在所有的备份中的存储位置都是完全相同的。
有规则的文件编号将大大降低文件的寻址操作。
上述的分布式文件存储方法中,所述判断请求写入的文件是否初次写入,可以包括以下步骤:
将请求写入的文件的摘要信息、长度及一串任意位置的原始数据作为预存储操作上传;
按请求写入文件的摘要信息和长度从存储单元获取文件编号;
若能从存储单元中获取对应的文件编号,则根据文件编号获取该文件的指定片段,与待写入文件片断进行比对,若相同,则认为文件已经存在,否则请求写入的文件是初次写入;此处的文件的指定片段是指,预存储的待写入文件的一串任意位置的原始数据选定的文件编码指代的文件的对应位置的数据片段。预存储的待写入文件的原始数据可以是偏移量和/或数据。
其中,所述文件索引的关键信息包括存储文件的摘要信息、长度、文件编号和文件的指定片段。
文件存储系统中存储单元定时向所有接入服务通报本簇块的存储状况,响应单元综合考虑时间和可用空间,选择当前最合适的簇块,并按优先级向不同簇块下的存储单元发送文件写入请求。
在响应单元中维护了一个由不同簇块下存储单元的簇块编号组成的环,并按环的顺序分配存储单元;在环中,存储空间越大的存储单元出现的次数越多,被分配到的比重就越大,以使负载均衡。
并且,将所有互备的存储单元按存储单元编号组成一个环形的列表,当存储单元接收到一个写入请求时,在该存储单元完成写入操作,并判断是否还存在有未写入的备份节点,如有则向下一个备份节点转发数据及空间分配信息。
如2给出了一个文件写入的操作实例,结合该实例对以上步骤进行进一步说明。
文件的写入包括以下步骤:
S201,响应单元接收来自请求方的文件写入请求;
S202-S204,判断请求写入的文件是否已存在,先按文件的摘要信息和长度,从缓存单元获取文件编号,如果文件已经存在,则从存储单元获取指定的片断信息,判断与待写入文件片断是否相同。如果相同,则认为文件已经存在,直接向业务方返回该文件编号。
S205,响应单元分配最合适的存储单元。所有的存储单元定时向响应单元发送心跳包,报告自己的存储空间使用情况,响应单元在分配存储单元时,将尽量分配给可用存储空间最大的存储单元。为此,在响应单元中维护了一个由存储单元编号组成的环,并按环的顺序分配存储单元。在环中,存储空间越大的存储单元将出现越多的次数(最多两倍),以此实现负载均衡。
具体方法如下:
首先,对每个簇块,根据其空闲空间大小计算空间权重值,空间权重值由预定基准值+空间调整值决定,预定基准值保证所有可写的簇块都将被轮循到,空间调整值根据可用空间/单位权重空间得到,单位权重空间可以置为预估的簇块总空间/预定基准值,这样空间调整值最大=预定基准值,也就是一个完全空闲的簇块将会比近满的簇块有2倍的机率被分配到。比如预定基准值取8,则权重值会是8~16之间的一个数。
其次,把所有簇块的权重值累加得到权重总值K,由此得到一个长度为K的列表,把这个列表首尾相连得到一个环,我们要把所有的簇块按权重值散列到这个列表中。设某个簇块的权重值为M,表示在这个环表中,该簇块要出现M次,所以我们得到簇块出现的步长S=K/M,按这个步长S将簇块均匀地填充到环表中即可。
最后,在分布式系统中,接入服务会有多台,每一台维护的环表可能会略有差异,至少在分配次序上会有差异,所以两台接入服务器同时向一个簇块发起写请求是可能的。这时由于我们取的是首个存储单元(单元编号最小者),所以并发的写请求将向同一个存储单元发起,而存储单元在分配空间时是在内存中互斥进行的,所以不会出现分配冲突的情况。即使在极端情况下,如某台机器刚好重启而使“首个存储单元”的含义发生了变化,出现不同的存储单元同时在分配空间的情况,也会在向备份存储单元同步空间分配时检测到这种冲突,这时本次空间分配将会被回滚。
S206:存储单元接收到文件写入操作后,根据数据大小分配相应的物理存储空间,得到一个包括块号、块内偏移量以及数据长度组成的位置信息列表,将数据依次写入列表指定的位置。
S207:如S206所述,存储单元将文件分配的位置信息列表以及文件源数据发送给邻近的互备存储单元,进行数据同步。这里需要确保所有的存储单元存储的数据是在同一个块的相同位置上,所以需要等所有的互备存储单元数据空间分配完成后再向响应单元返回。由于空间分配主要是内存操作以及极少量的磁盘文件操作,可以保证在很小的时间内完成,不会对系统的性能造成很大的影响。而文件数据的同步是异步完成的,而且在互备的存储单元间串行地传输,并行写入,可以保障系统高效运行。
以下结合图3对本发明中存储单元中的文件结构进行说明。
文件数据的存储是建立在操作系统的文件系统之上的,通常我们会在磁盘上建立两种文件:数据文件和信息文件。数据文件是由固定大小(如64M)的一组块文件组成的,每个块文件被分配一个唯一的编号,称为块号。数据文件存储文件的原始数据,而信息文件则记录每个文件的信息,包括摘要(md5)、文件总长度以及文件数据在块文件在的位置信息。一个文件可能被分批上传,也可能超过一个块文件大小,这些都可能使文件被分片存储到不同的块文件中,或者同一个块文件的不同位置处。所以文件的位置信息是一个有序的列表,记录每个片断的块号、块内偏移量以及片断长度。每个块对应一个信息文件,记录本块内的文件信息。在系统启动时,所有信息文件将被加载到内存中,并得到每个文件的完整存储信息。
多个互备的存储单元中,第一台被认为是“主”存储,数据写入时,先向主存储发送请求,这样数据空间的分配是在主存储上进行的,可以防止空间位置冲突。每个备份存储单元的数据文件和信息文件都是完全相同的,这样在系统扩容或一些块的数据出错时,只需要从备份存储单元上复制指定块的数据文件和信息文件即可,便于系统的维护。
本发明的分布式文件存储方法中,对于已存储的数据进行读取操作时,运行数据容错处理:在动行中动态调整差错数据,
当一个读取操作发生时,如果从当前轮循的存储单元中未能获取所需的数据,则依次尝试向其它与其互备的备份存储单元获取数据,获取成功时,将当批数据同步给获取失败的存储单元。
结合图4对上述方法所执行的数据容错处理操作进行进一步说明。
图4描述了一个文件读取的操作示例以及数据的恢复机制。
S401-S402,响应单元接收到文件读取的请求后,从文件编号中提取簇号,以确定所有的互备存储单元,轮流向存储单元发送文件读取请求。
S403,存储单元根据文件编号、文件偏移量以及长度从文件信息表中获取该文件数据的位置信息。
S404,从步骤S403判断在本存储单元中数据是否存在。
S405,如果数据存在,则从数据文件块中读取数据,并向响应单元返回。
S406,如果数据不存在,则依次向邻近的备份存储单元发起读取请求。
S407,如果从备份存储单元读取数据成功,则向响应单元返回,并将数据更新到本存储单元中。
如果备份存储单元也没有数据,则继续向下一个备份存储单元转发请求,重复S404,直到最后一个备份存储单元,这时向响应单元返回失败。
在文件写入时,由于网络故障、存储故障、服务不可用等各种原因,可能会在某些存储单元写入失败,这时通过读取操作,有一定的机率实现数据恢复。
执行上述分布式文件存储方法的文件存储系统,其存储扩容分为两种情况:容量扩容和备份扩容。
图5描述了一种存储扩容的方法示例。
如图1描述了本发明中存储单元编号的构成:存储单元编号由簇号和备份号组成。同一个簇号下的一组存储单元互相备份,存储的是同一批数据,但备份号各不相同,以区别不同的存储单元。
一般选取备份号最小的存储单元为主存储单元,存储空间的分配由主存储单元完成并同步给所有的备份存储单元。当主存储单元不可访问时,备份号第二小的升格为主存储单元。
如图5示例给出的存储系统,原始有簇号为001、002和003的三组存储单元,同一簇号下有备份号为00、01两个互备的存储单元。
容量扩容的目的是提高系统的存储空间,这时只需要给新加入的存储单元分配新的簇号,并依次分配备份号即可加入系统。响应单元会根据存储分配方案将新的数据存储请求发送给新加入的存储单元,提高集群的存储能力。本实施例中,进行容量扩容时,给新加入的存储单元分配新的簇号004,被依次分配备份号01、02给簇号004下的两个互备的存储单元即可。
备份扩容是为数据增加新的备份以提高数据的可靠性,同时由于读操作会在互备的存储单元之间均衡请求,所以备份扩容后也能减轻集群的负载,提高集群的稳定性。备份扩容时需要在原有的簇号下分配新的备份号,在新增的存储单元将在启动时向别的备份上同步所有数据。本实施例中,进行备份扩容时,只需要在原有簇号下按原有备份号的次续分配新的备份号02给新加入到该簇号下的存储单元即可。
综上所述,本发明的分布式文件存储方法及存储系统,具有能动态线性扩容,数据多点互备,高容错性、高效数据存储的优点。
需要说明的是,本领域技术人员通过计算机程序实现上述分布式文件存储方法,因此为了实现以上方法,需要提供一种存储介质,存储介质上存储有计算机程序,程序被处理器执行实现如上所述的一种分布式文件存储方法。相应的,还需要提供一种装置,该装置包括处理器和存储介质,存储介质上存储有计算机程序,程序被处理器执行实现如上所述的一种分布式文件存储方法。

Claims (9)

1.一种分布式文件存储方法,其特征在于,该方法基于分布式文件存储系统实现,该方法包括以下步骤:
对每个存储单元预置一个唯一的存储单元编号,并对互备的存储单元之间建立关联;
文件写入:
文件存储系统的接收层接收到文件写入请求后,首先判断请求写入的文件是否是初次写入;
对于被初次写入的文件,文件存储系统为请求写入的文件分配存储单元,被分配的存储单元为该文件分配唯一的文件编号;
若待写入的文件已存在,直接向业务方返回该文件编号;
存储单元将存储文件的文件索引的关键信息实时反馈给缓存单元。
2.根据权利要求1所述的一种分布式文件存储方法,其特征在于,所述判断请求写入的文件是否初次写。
入,包括:
将请求写入的文件的摘要信息、长度及一串任意位置的原始数据作为预存储操作上传;
按请求写入文件的摘要信息和长度从存储单元获取文件编号;
若能从存储单元中获取对应的文件编号,则根据文件编号获取该文件的指定片段,与待写入文件片断进行比对,若相同,则认为文件已经存在,否则请求写入的文件是初次写入。
3.根据权利要求1所述的一种分布式文件存储方法,其特征在于,文件存储系统中存储单元定时向所有接入服务通报本簇块的存储状况,文件存储系统综合考虑时间和可用空间,选择当前最合适的簇块,并按优先级向不同簇块下的存储单元发送文件写入请求。
4.根据权利要求3所述的一种分布式文件存储方法,其特征在于,在文件存储系统中维护了一个由不同簇块下存储单元的簇块编号组成的环,并按环的顺序分配存储单元;在环中,可用存储空间越大的存储单元出现的次数越多,被分配到的比重就越大。
5.根据权利要求1所述的一种分布式文件存储方法,其特征在于,将所有互备的存储单元按存储单元编号组成一个环形的列表,当存储单元接收到一个写入请求时,在该存储单元完成写入操作,并判断是否还存在有未写入的备份节点,如有则向下一个备份节点转发数据及空间分配信息。
6.根据权利要求1所述的一种分布式文件存储方法,其特征在于,被分配的存储单元为初次写入的文件分配的文件编号包含其所在的存储单元编号信息和所在存储单元下的一个自增序列;对于根据文件编号指定的文件,由文件编号确定存储有该文件的存储单元编号以及关联的存储该文件备份的存储单元,写入时选取这组存储单元的首节点(存储单元编号最小者),读取时依次轮流从互备的存储单元中选取一个,,并根据文件编号中的自增序列确定或分配要操作的块文件列表,根据偏移量确定数据在块内的物理地址,最终实现对选定文件的写入/读取操作。
7.根据权利要求1所述的一种分布式文件存储方法,其特征在于,对于已存储的数据进行读取操作时,运行数据容错处理:
当一个读取操作发生时,如果从当前轮循的存储单元中未能获取所需的数据,则依次尝试向其它与其互备的备份存储单元获取数据,获取成功时,将当批数据同步给获取失败的存储单元。
8.如权利要求1-7中任一项所述的分布式文件存储方法中的分布式文件存储系统,其特征在于,包括一组可扩展的响应单元、缓存单元和多个互备的存储单元,
响应单元作为接入层与请求方交互,将业务指令分拆成一系列功能指令,并依次与相应的功能组件进行交互,完成业务指令并向请求方作出响应;
缓存单元在内存中存储并实时更新文件索引的关键信息,缓存单元与响应单元交互,并为响应单元的功能实现提供支持;
存储单元基于操作系统的文件系统完成对文件的物理存储,针对响应单元的功能指令做出相应。
9.一种存储介质,存储介质上存储有计算机程序,程序被处理器执行实现如权利要求1-7中任一项所述的一种可在线实时调试的方法。
CN201910410024.7A 2019-05-16 2019-05-16 一种分布式文件存储系统及文件存储方法 Active CN110188084B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910410024.7A CN110188084B (zh) 2019-05-16 2019-05-16 一种分布式文件存储系统及文件存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910410024.7A CN110188084B (zh) 2019-05-16 2019-05-16 一种分布式文件存储系统及文件存储方法

Publications (2)

Publication Number Publication Date
CN110188084A true CN110188084A (zh) 2019-08-30
CN110188084B CN110188084B (zh) 2021-10-15

Family

ID=67716519

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910410024.7A Active CN110188084B (zh) 2019-05-16 2019-05-16 一种分布式文件存储系统及文件存储方法

Country Status (1)

Country Link
CN (1) CN110188084B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078153A (zh) * 2019-12-20 2020-04-28 同方知网(北京)技术有限公司 一种基于文件的分布式存储方法
CN111782616A (zh) * 2020-07-14 2020-10-16 武汉空心科技有限公司 一种工作平台分包用文件存储方法
CN112506434A (zh) * 2020-12-11 2021-03-16 杭州安恒信息技术股份有限公司 一种web微服务集群中数据的读写方法及相关装置
CN112698783A (zh) * 2019-10-22 2021-04-23 北京金山云网络技术有限公司 对象存储方法、装置及系统
CN113900994A (zh) * 2021-12-02 2022-01-07 新华三智能终端有限公司 一种文件写入方法及装置
CN117880553A (zh) * 2024-03-13 2024-04-12 济南浪潮数据技术有限公司 流媒体存储方法、系统、服务器、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346773A (zh) * 2011-09-23 2012-02-08 深圳市赫迪威信息技术有限公司 文件操作方法、控制器及文件操作系统
CN104951569A (zh) * 2015-07-21 2015-09-30 成都傅立叶电子科技有限公司 文件系统以及采用该文件系统的文件管理方法
CN106101291A (zh) * 2016-08-26 2016-11-09 苏州蓝海彤翔系统科技有限公司 一种传输文件的方法、系统、服务器及客户端
CN106843773A (zh) * 2017-02-16 2017-06-13 天津书生云科技有限公司 存储方法和分布式存储系统
US20170277715A1 (en) * 2016-03-25 2017-09-28 Amazon Technologies, Inc. File system mode switching in a distributed storage service

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346773A (zh) * 2011-09-23 2012-02-08 深圳市赫迪威信息技术有限公司 文件操作方法、控制器及文件操作系统
CN104951569A (zh) * 2015-07-21 2015-09-30 成都傅立叶电子科技有限公司 文件系统以及采用该文件系统的文件管理方法
US20170277715A1 (en) * 2016-03-25 2017-09-28 Amazon Technologies, Inc. File system mode switching in a distributed storage service
CN106101291A (zh) * 2016-08-26 2016-11-09 苏州蓝海彤翔系统科技有限公司 一种传输文件的方法、系统、服务器及客户端
CN106843773A (zh) * 2017-02-16 2017-06-13 天津书生云科技有限公司 存储方法和分布式存储系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112698783A (zh) * 2019-10-22 2021-04-23 北京金山云网络技术有限公司 对象存储方法、装置及系统
CN111078153A (zh) * 2019-12-20 2020-04-28 同方知网(北京)技术有限公司 一种基于文件的分布式存储方法
CN111782616A (zh) * 2020-07-14 2020-10-16 武汉空心科技有限公司 一种工作平台分包用文件存储方法
CN112506434A (zh) * 2020-12-11 2021-03-16 杭州安恒信息技术股份有限公司 一种web微服务集群中数据的读写方法及相关装置
CN113900994A (zh) * 2021-12-02 2022-01-07 新华三智能终端有限公司 一种文件写入方法及装置
CN113900994B (zh) * 2021-12-02 2022-03-01 新华三智能终端有限公司 一种文件写入方法及装置
CN117880553A (zh) * 2024-03-13 2024-04-12 济南浪潮数据技术有限公司 流媒体存储方法、系统、服务器、电子设备和存储介质

Also Published As

Publication number Publication date
CN110188084B (zh) 2021-10-15

Similar Documents

Publication Publication Date Title
CN110188084A (zh) 一种分布式文件存储系统及文件存储方法
CN102855294B (zh) 一种智能哈希数据布局方法、集群存储系统及其方法
AU2015221548B2 (en) A computer implemented method for dynamic sharding
JP4317876B2 (ja) データストレージシステムにおける冗長データ割り当て
US7590672B2 (en) Identification of fixed content objects in a distributed fixed content storage system
CN102955845B (zh) 数据访问方法、装置与分布式数据库系统
US7689764B1 (en) Network routing of data based on content thereof
US9201747B2 (en) Real time database system
CN103647797A (zh) 一种分布式文件系统及其数据访问方法
CN104184812B (zh) 一种基于私有云的多点数据传输方法
TW201314470A (zh) 分散式儲存系統管理裝置及方法
CN102253869A (zh) 可缩放的容错元数据服务
CN110213352A (zh) 名字空间统一的分散自治存储资源聚合方法
CN102571991A (zh) 基于多级映射的大规模多副本分布式存储系统及其应用方法
CN112559637B (zh) 基于分布式存储的数据处理方法、装置、设备以及介质
CN111182067A (zh) 一种基于星际文件系统ipfs的数据写入方法及设备
KR100936238B1 (ko) 파일 입출력과 복제의 균형적 수행을 위한 지연복제 시스템및 방법
CN101751415A (zh) 元数据服务系统、元数据同步方法与写服务器更新方法
CN110213326A (zh) 元数据节点集群的扩容方法、系统、设备和存储介质
Rajalakshmi et al. An improved dynamic data replica selection and placement in cloud
CN111935320B (zh) 一种数据同步的方法、相关装置、设备以及存储介质
CN105069152A (zh) 数据处理方法及装置
CN103365740B (zh) 一种数据冷备方法及装置
WO2014107901A1 (zh) 数据存储方法、数据库存储节点故障处理方法及装置
CN110231915A (zh) 数据管理方法、系统、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant