CN112650721A - 一种文件存储方法、装置、***以及设备 - Google Patents

一种文件存储方法、装置、***以及设备 Download PDF

Info

Publication number
CN112650721A
CN112650721A CN202011596322.9A CN202011596322A CN112650721A CN 112650721 A CN112650721 A CN 112650721A CN 202011596322 A CN202011596322 A CN 202011596322A CN 112650721 A CN112650721 A CN 112650721A
Authority
CN
China
Prior art keywords
file
storage
server
stored
target
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.)
Pending
Application number
CN202011596322.9A
Other languages
English (en)
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.)
Hangzhou Qulian Technology Co Ltd
Original Assignee
Hangzhou Qulian 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 Hangzhou Qulian Technology Co Ltd filed Critical Hangzhou Qulian Technology Co Ltd
Priority to CN202011596322.9A priority Critical patent/CN112650721A/zh
Publication of CN112650721A publication Critical patent/CN112650721A/zh
Pending legal-status Critical Current

Links

Images

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/13File access structures, e.g. distributed indices
    • 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/178Techniques for file synchronisation in file systems
    • 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

一种文件存储方法、装置、***以及设备
技术领域
本申请涉及存储领域,具体涉及一种文件存储方法、装置、***以及设备。
背景技术
为便于文件的存储管理,一般可配置一文件存储***,以供消费者或者公司内部人员等用户使用,用户可在客户端侧将文件上传至文件存储***的服务器进行存储。
而在服务器侧,为方便工作的分层处理,文件存储***具体可包括目录服务器和存储服务器,由目录服务器来集中处理客户端发起的存储请求,分配可存储当前文件的存储服务器,再由该存储服务存储客户端上传的文件,文件的查询、下载环节与此类似。如此基于目录服务器所提供的索引服务,实现文件存储***的文件存储服务。
而在现有的相关技术的研究过程中,发明人发现,随着文件存储***提供的文件存储服务,随着如今大文件的出现频次逐步提高,目录服务器正逐渐不堪重负,时常出现处理效率低下的情况。
发明内容
本申请提供了一种文件存储方法、装置、***以及设备,通过搭建多目录服务器架构的文件存储***,保障文件存储***可实现高效的索引服务,如此避免现有技术中目录服务器出现处理效率低下的情况,提供更为高效的文件存储服务。
第一方面,本申请提供了一种文件存储方法,方法包括:
确定待存储文件,其中,待存储文件为客户端请求存储于文件存储***的文件;
在目录服务器集合中为待存储文件分配对应的目标目录服务器,其中,目录服务器集合包括不同目录服务器;
通过目标目录服务器将获取到的待存储文件发送至目标存储服务器进行存储,并建立待存储文件与目标存储服务器之间的索引数据,其中,目标存储服务器由目标服务器从存储服务器集合中分配得到,存储服务器集合包括不同存储服务器。
结合本申请第一方面,在本申请第一方面第一种可能的实现方式中,在目录服务器集合中为待存储文件分配对应的目标目录服务器,包括:
通过测试数据包的传输测试,评估不同目录服务器分别与客户端之间的网络传输质量;
将最佳网络传输质量对应的目录服务器选定为目标目录服务器。
结合本申请第一方面,在本申请第一方面第二种可能的实现方式中,目标存储服务器包括多个子目标存储服务器,通过目标目录服务器将获取到的待存储文件发送至目标存储服务器进行存储,并建立待存储文件与目标存储服务器之间的索引数据,包括:
通过目标目录服务器将获取到的待存储文件进行分片,得到多个分片文件;
将多个分片文件分别发送至多个子目标存储服务器进行分布式存储;
建立多个分片文件与多个子目标存储服务器之间的索引数据。
结合本申请第一方面,在本申请第一方面第三种可能的实现方式中,方法还包括:
通过目标目录服务器将待存储文件与目标存储服务器之间的索引数据,同步至目录服务器集合中的其他目录服务器。
结合本申请第一方面,在本申请第一方面第四种可能的实现方式中,通过目标目录服务器将获取到的待存储文件发送至目标存储服务器进行存储,包括:
由目录服务器接收客户端上传的待存储文件;
通过目标服务器将待存储文件发送至目标存储服务器进行存储。
结合本申请第一方面,在本申请第一方面第五种可能的实现方式中,文件存储***是基于区块链平台搭建的,不同目录服务器以及不同存储服务器皆为区块链平台中的不同区块链节点设备。
结合本申请第一方面,在本申请第一方面第六种可能的实现方式中,方法还包括:
接收下载请求,其中,下载请求用于请求从文件存储***中下载待存储文件;
由索引数据确定存储待存储文件的目标存储服务器;
通过目标存储服务器向发起下载请求的客户端提供待存储文件的下载服务。
第二方面,本申请提供了一种文件存储装置,方法包括:
确定单元,用于确定待存储文件,其中,待存储文件为客户端请求存储于文件存储***的文件;
分配单元,用于在目录服务器集合中为待存储文件分配对应的目标目录服务器,其中,目录服务器集合包括不同目录服务器;
发送单元,用于通过目标目录服务器将获取到的待存储文件发送至目标存储服务器进行存储,其中,目标存储服务器由目标服务器从存储服务器集合中分配得到,存储服务器集合包括不同存储服务器;
建立单元,用于建立待存储文件与目标存储服务器之间的索引数据。
结合本申请第二方面,在本申请第二方面第一种可能的实现方式中,分配单元,具体用于:
通过测试数据包的传输测试,评估不同目录服务器分别与客户端之间的网络传输质量;
将最佳网络传输质量对应的目录服务器选定为目标目录服务器。
结合本申请第二方面,在本申请第二方面第二种可能的实现方式中,目标存储服务器包括多个子目标存储服务器,发送单元,具体用于:
通过目标目录服务器将获取到的待存储文件进行分片,得到多个分片文件;
将多个分片文件分别发送至多个子目标存储服务器进行分布式存储;
建立单元,具体用于:
建立多个分片文件与多个子目标存储服务器之间的索引数据。
结合本申请第二方面,在本申请第二方面第三种可能的实现方式中,装置还包括同步单元,用于:
通过目标目录服务器将待存储文件与目标存储服务器之间的索引数据,同步至目录服务器集合中的其他目录服务器。
结合本申请第二方面,在本申请第二方面第四种可能的实现方式中,发送单元,具体用于:
由目录服务器接收客户端上传的待存储文件;
通过目标服务器将待存储文件发送至目标存储服务器进行存储。
结合本申请第二方面,在本申请第二方面第五种可能的实现方式中,文件存储***是基于区块链平台搭建的,不同目录服务器以及不同存储服务器皆为区块链平台中的不同区块链节点设备。
结合本申请第二方面,在本申请第二方面第六种可能的实现方式中,装置还包括下载单元,用于:
接收下载请求,其中,下载请求用于请求从文件存储***中下载待存储文件;
由索引数据确定存储待存储文件的目标存储服务器;
通过目标存储服务器向发起下载请求的客户端提供待存储文件的下载服务。
第三方面,本申请还提供了一种文件存储***,***包括目录服务器集合以及存储服务器集合,目标服务器集合包括不同目录服务器,存储服务器集合包括不同存储服务器,***用于执行本申请第一方面或者本申请第一方面任一种可能的实现方式提供的方法。
第四方面,本申请还提供了一种文件存储设备,包括处理器和存储器,存储器中存储有计算机程序,处理器调用存储器中的计算机程序时执行本申请第一方面或者本申请第一方面任一种可能的实现方式提供的方法。
第五方面,本申请还提供了一种计算机可读存储介质,计算机可读存储介质存储有多条指令,指令适于处理器进行加载,以执行本申请第一方面或者本申请第一方面任一种可能的实现方式提供的方法。
从以上内容可得出,本申请具有以下的有益效果:
针对于文件存储场景,本申请所搭建的文件存储***中,其部署了多目录服务器架构,当确定客户端请求存储于文件存储***的待存储文件后,在目录服务器集合中为该待存储文件分配对应的目标目录服务器,再通过目标目录服务器将获取到的待存储文件发送至目标存储服务器进行存储,并建立待存储文件与目标存储服务器之间的索引数据,其中,目标存储服务器由目标服务器从存储服务器集合中分配得到,在该文件的存储流程中,由于所选择的目标目录服务器为适于处理当前待存储文件的索引服务的目录服务器,因此保障文件存储***可实现高效的索引服务,如此避免现有技术中目录服务器出现处理效率低下的情况,提供更为高效的文件存储服务,具有更佳的用户体验。
附图说明
图1为本申请文件存储***的一种架构示意图;
图2为本申请文件存储方法的一种流程示意图;
图3为本申请分配目标目录服务器的一种流程示意图;
图4为本申请处理待存储文件的一种流程示意图;
图5为本申请文件存储装置的一种结构示意图;
图6为本申请文件存储设备的一种结构示意图。
具体实施方式
首先,在介绍本申请之前,先介绍下本申请关于应用背景的相关内容。
本申请提供的文件存储方法、装置以及计算机可读存储介质,可应用于文件存储设备上,通过搭建多目录服务器架构的文件存储***,保障文件存储***可实现高效的索引服务,如此提供更为高效的文件存储服务。
本申请提及的文件存储方法,其执行主体可以为文件存储装置,或者集成了该装置的服务器设备、物理主机或者用户设备(User Equipment,UE)等不同类型的文件存储设备,其中,装置可以采用硬件或者软件的方式实现,UE具体可以为智能手机、平板电脑、笔记本电脑、掌上电脑、台式电脑或者个人数字助理(Personal Digital Assistant,PDA)等终端设备,设备还可以以设备集群的形式配置。
其中,可以理解的是,文件存储设备,并不是特指文件存储***为当前的待存储文件所分配的,用于存储待存储文件的存储服务器,而是指应用本申请文件存储方法的设备。
参阅图1示出的本申请文件存储***的一种架构示意图,在本申请中,所搭建的文件存储***,按照功能区分,包括了索引服务以及存储服务两部分,而对应于索引服务,相比于现有的文件存储***中单一的目录服务器架构,本申请引入了多目录服务器架构,如此可根据实际情况为当前的待存储文件分配适于处理的目标服务服务器,实现更为高效的负载均衡机制。
其中如图1所示,在文件存储***中,多个的目录服务器以及多个的存储服务器可形成对应的服务器集合,而对于不同的目标服务器所对应的存储服务器集合,可存在相互独立、重叠(如图1中存储服务器集合A与存储服务器集合B,存储服务集合C与存储服务器集合D为两种重叠状态)、包含或者为一整体的对应关系。
此外,图1所示的目录服务器以及存储服务器的数量仅为举例,不应作为限定。
下面,开始介绍本申请提供的文件存储方法。
图2示出了本申请文件存储方法的一种流程示意图,如图2示出的,本申请提供的文件存储方法,具体可包括如下步骤:
步骤S201,确定待存储文件,其中,待存储文件为客户端请求存储于文件存储***的文件;
步骤S202,在目录服务器集合中为待存储文件分配对应的目标目录服务器,其中,目录服务器集合包括不同目录服务器;
步骤S203,通过目标目录服务器将获取到的待存储文件发送至目标存储服务器进行存储,并建立待存储文件与目标存储服务器之间的索引数据,其中,目标存储服务器由目标服务器从存储服务器集合中分配得到,存储服务器集合包括不同存储服务器。
从上述图2所示实施例可看出,针对于文件存储场景,本申请所搭建的文件存储***中,其部署了多目录服务器架构,当确定客户端请求存储于文件存储***的待存储文件后,在目录服务器集合中为该待存储文件分配对应的目标目录服务器,再通过目标目录服务器将获取到的待存储文件发送至目标存储服务器进行存储,并建立待存储文件与目标存储服务器之间的索引数据,其中,目标存储服务器由目标服务器从存储服务器集合中分配得到,在该文件的存储流程中,由于所选择的目标目录服务器为适于处理当前待存储文件的索引服务的目录服务器,因此保障文件存储***可实现高效的索引服务,如此避免现有技术中目录服务器出现处理效率低下的情况,提供更为高效的文件存储服务,具有更佳的用户体验。
以下结合图1所示文件存储***的架构,继续对图2所示的各步骤以及在实际应用中可能采用的具体实施方式进行详细阐述:
首先可以理解的是,本申请是以文件存储***的角度来说明所提供的文件存储方法的,在实际应用中,该文件存储方法,不仅可由文件存储***中的一个节点来执行,更有可能的是,由文件存储***中的不同节点以协作的方式进行,而其中还涉及到不同节点之间的信令交互,以实现节点之间的协作,该信令交互的内容,除了涉及到本申请文件存储方法的步骤内容,一般不再展开赘述。
在实际应用中,确定客户端请求存储于文件存储***的待存储文件,主要对应两种应用场景。
一种,是客户端已上报存储请求,并将该待存储文件携带在了该存储请求的请求信息中,例如一些网盘服务中,用户可登录用户账号并直接将文件进行上传及其存储,此时,待存储文件可保存在文件存储***中接收到存储请求的节点,例如某一目录服务器或者其他节点。
另一种,则是客户端先上报存储请求,待文件存储***分配目标目录服务器以及目标存储服务器后,在目录服务器的调度下,指示客户端将待存储文件上传至目标存储服务器,或者由目标目录服务器接收客户端上传的待存储文件,并将待存储文件转发至目标存储服务器进行存储。
如此可看出,步骤S201中确定待存储文件,可能指的是确定客户端将要发起存储操作的待存储文件,当文件存储***确定该待存储文件的存储策略后,再进行该待存储文件的接收以及存储;或者也可能指的是客户端已经上传至文件存储***的待存储文件,将已经处于***中的待存储文件继续部署后续的存储策略。
该待存储文件,其可以为文档、表格、图片、视频、音频或者压缩包等不同文件类型的文件,其文件类型具体可随实际需要调整,在此不做限定,而本申请文件存储方法尤其针对的是较大文件大小的待存储文件,例如高清视频文件。
在确定当前的待存储文件后,文件存储***则可为其分配适配的目标目录服务器甚至目标存储服务器,以实现适配的高质量索引服务。
在本申请的多目录服务器架构中,目标目录服务器的分配策略,具体可根据不同的适配指标进行设置。
例如,若文件存储***面对的是较大地区范围的用户,则文件存储***可在不同的地方配置目录服务器,当确定待存储文件后,可选择与发起待存储文件的客户端最近的目录服务器作为目标目录服务器,或者选择与当前***中存储了待存储文件的节点最近的目录服务器作为目标目录服务器;
又例如,若文件存储***考虑了计算资源、存储资源对目录索引服务的影响,则可计算目标服务器集合中的每个目录服务器的当前计算资源和/或当前存储资源,并将空闲资源量或者空闲资源比例最高的目录服务器作为目标目录服务器;
又例如,若文件存储***考虑的是传输速度,则可从目录服务器集合中挑选出与发起待存储文件的客户端之间具有最高传输速度的目录服务器作为目标目录服务器,或者选择与当前***中存储了待存储文件的节点之间具有最高传输速度的目录服务器作为目标目录服务器;
以客户端还未上传待存储文件的存储场景为例,参阅图3示出的本申请分配目标目录服务器的一种流程示意图,目标目录服务器的分配,可包括下面的步骤S3101以及步骤S302:
步骤S301,通过测试数据包的传输测试,评估不同目录服务器分别与客户端之间的网络传输质量;
对应于以传输速度为目标目录服务器的分配因素,可配置一测试数据包,该数据包用于测试客户端与目录服务器之间的传输速度,该数据包,可以为针对测试所配置的数据包,或者也可以为客户端与目录服务器之间可能在其他业务中传输的数据包。
文件存储***,可触发客户端向***的每个目录服务器发送该测试数据包,或者,客户端侧涉及到文件存储***的应用程序,也可自行触发向***的每个目录服务器发送该测试数据包。
每一次测试数据包的发送,通过采集客户端侧的发送时间点以及目录服务器的采集时间点,则可确定传输过程所用时长,即传输时长。
其次,在传输过程中,有可能还会出现网络波动、丢包等其他的影响因素,因此,可对应影响到网络传输质量的参考因素,结合不同参考因素的评估值及其权重,评估当前客户端与不同目录服务器之间的网络传输质量,作为传输速度的量化信息。
步骤S302,将最佳网络传输质量对应的目录服务器选定为目标目录服务器。
在评估了客户端与不同目录服务器之间的网络传输质量后,则可将最佳网络传输质量对应的目录服务器作为目标目录服务器,如此,达到高效的索引服务,进而达到高效的文件存储服务。
当然,在实际应用中,目标目录服务器的分配策略,不仅可采用上述提及的分配策略,对应于实际条件,也可配置其他的分配策略,具体在此不做限定。
当分配了目标目录服务器后,则可通过目标目录服务器将获取到的待存储文件发送至目标存储服务器进行存储。
对于目录服务器,其预设有可进行索引的存储服务器范围(存储服务器集合),在确定了自身所需处理的待存储文件后,目标目录服务器则可从存储服务器集合中为待存储文件分配目标存储服务器,由该目标存储服务器进行待存储文件的存储。
在该目标存储服务器的分配处理中,可以理解,一般优先以具有最多空闲存储资源或者最高空闲存储资源比例的存储服务器作为分配结果,当然,也不排除其他的分配策略,具体在此不做限定。
此外,可以理解的是,对于目标存储服务器,其在实际应用中,可能还存在两个甚至多个的情况,以实现在多个存储服务器都存储了待存储文件的情况,达到提高***容灾能力的效果,避免单个存储服务器故障对***的文件存储服务的影响。
与此同时,为进一步提高存储服务的响应效率,在本申请中,还引入了待存储文件的分片机制。
参阅图4示出的本申请处理待存储文件的一种流程示意图,在本申请中,通过目标目录服务器实现的对待存储文件的处理,具体可包括下面的步骤S401至步骤S403:
步骤S401,通过目标目录服务器将获取到的待存储文件进行分片,得到多个分片文件;
可以理解,目标目录服务器获取到待存储文件后,例如目标目录服务器可接收客户端上传的待存储文件,或者从***中存储有待存储文件的节点调取待存储文件,可将待存储文件进行分片;或者,客户端在本地已进行分片处理,再进行上传。
分片,可以理解为分割,将待存储文件分解成多份的子文件,称为分片文件,这些分片文件进行组合后,则可得到原来的待存储文件。
应当理解的是,这些分片文件,待存储文件在不同的分片范围下分片得到的,而这些分片范围,可能是相互独立,也可能存在重叠的情况。
其分片范围,可采用随机、预置等方式进行配置,而若引入分片范围的重叠机制,值得注意的是,还可因为分片文件之间存在文件内容重复的情况,进一步减少发生文件丢失等异常情况时所导致的内容损失,即。若A分片文件丢失,由于B分片文件存在A分片文件的X文件内容,则该X文件内容显然由于B分片文件的存在,并未造成内容损失。
步骤S402,将多个分片文件分别发送至多个子目标存储服务器进行分布式存储;
对待存储文件进行分片类似的,本申请文件存储***也可将存储待待存储文件的目标存储服务器分散为多个存储服务器(子存储服务器),每个子存储服务可存储一份或者多份的分片文件。
在该情况下,目标目录服务器则可基于自身与多个分配的子目标存储服务之间的通信连接,发起分布式存储,将分片文件分发至这些子目标存储服务器上。
通过该分布式存储机制,不仅可提高待存储文件发送至目标存储服务器的传输速度,此外,也可进一步提高待存储文件在文件存储服务器的数据安全性,减少个别存储服务器异常引起的数据损失。
步骤S403,建立多个分片文件与多个子目标存储服务器之间的索引数据。
目录服务器,可以理解的,其提供的索引服务,可通过索引数据实现,该索引数据中,记载了不同的待存储文件与不同的存储服务器之间的对应关系,如此,当确定了当前待存储文件的目标存储服务后,则可在索引数据中体现出该存储关系,后续若出现了待存储文件的查询或者下载时,则可根据该索引数据,响应查询或者下载需求。
具体的,索引数据可通过数据表的方式进行配置,或者也可采用其他的数据形式进行配置,具体在此不做限定。
与此同时,当应用了分片机制以及多目标存储服务器机制时,则可将该存储关系存储于索引数据中,例如,将该存储关系更新进总的索引数据中,或者新建一索引数据,达到当前索引数据的建立。
进一步的,考虑到后续的查询、下载场景,在一些应用场景中,针对于某一待存储文件,原先的目标目录服务器与发起查询、下载的客户端之间的网络传输质量会随实际条件的影响发生变化,例如客户端所连接的网络环境更新、客户端的位置更等情况,此时,原来的目标目录服务器,并不是目录服务器集合中与当前客户端之间具有最佳网络传输质量的目录服务器,显然,此时,响应于当前客户端的查询、下载的目录服务器可分配至最佳网络传输质量对应的目录服务器。
或者,考虑到接收到查询、下载请求的目录服务器,可能不是原先处理待存储文件的目录服务器。
此时,为节省当前目录服务器从原先处理待存储文件的目录服务器处调取相关的索引数据的所需成本,本申请则可预先将指示待存储文件与目标存储服务器之间的存储关系的索引数据同步至目录服务器集合中的其他目录服务器上,如此,后续则可直接调用,保障索引服务的高处理效率,同时,在该同步机制下,也可进一步提高索引数据的数据安全性,避免单个目录服务器异常或者数据丢失的情况发生,提高文件存储***的容灾能力。
后续的,为进一步提高数据安全,本申请还可引入区块链技术,或者说,文件存储***是在区块链平台的基础上搭建得到的,对此,目录服务器以及存储服务器都是区块链平台中的区块链节点设备,此时,本地将待存储文件作为待上链数据进行上链,达到将待存储文件存储至文件存储***的目的。
此外,对于所称的客户端,也可能是区块链平台中的区块链节点设备甚至包含于文件存储***中,例如可由客户端进行待存储文件的分片处理,当然,也可能是区块链平台外的设备,具体在此不再赘述。
在该应用场景下,容易理解的是,基于区块链技术,待存储文件、子待存储文件、索引数据等上述内容涉及的数据,在区块链平台中进行传输时,可涉及到基于哈希(Hash)算法计算哈希值的处理,数据的发起方在发送数据时,可通过哈希算法计算该数据的哈希值,并将该哈希值进行上链(例如上链至目录服务器或者存储服务器),数据的接收方接收到该数据时,可通过哈希算法计算该数据的哈希值,由于哈希算法是一种只可加密不可解密的算法,因此可以认为某一数据通过哈希算法所计算得到的哈希值是具有唯一性的,此时,若数据的接收方比对发现自身计算的哈希值与链上的哈希值一致,则可认为数据在传输过程中未经过篡改、具有其真实性,为可信数据。
举例而言,其哈希值的具体计算过程,一般为将相应数据转换为二进制数据,再将二进制数据使用SHA-256函数,转换为一个长度为64的十六进制字符串。
当然,除了哈希算法实现的校验机制,区块链技术还存在其他保证数据安全的数据处理机制,具体在此不再赘述,而由于区块链技术存在的规则透明、数据安全等特点,因此基于区块链平台搭建本申请所提供的文件存储***,显然具有更高的实用价值,不仅由于区块链工作机制可防止数据传输过程中数据遭到篡改、保证了数据安全性,且由于本申请在上述内容揭露的***架构以及工作模式,具有更高的处理效率以及***容灾能力。
而在完成待存储文件的存储后,文件存储***还可为用户提供查询、下载服务,其中,容易理解的是,在实际应用中,下载服务可包含查询服务。
以文件存储***提供的文件下载服务为例,其下载流程一般为:
获取下载请求,其中,下载请求用于请求从文件存储***中下载待存储文件;
通过索引数据确定存储待存储文件的目标存储服务器;
通过目标存储服务器向发起下载请求的客户端提供待存储文件的下载服务。
具体的,文件存储***可配置向用户开放的节点,以供用户发起下载请求,例如目录服务器或者其他节点,而当获取到下载请求时,通过原先配置的索引数据,可确定原先处理待存储文件的目标目录服务器,再由该目标目录服务对该下载请求进行响应。
当然,由于客户端之前可能已经与原先处理待存储文件的目标目录服务器进行通信后,因此,客户端也可直接根据历史记录(例如历史通信地址、历史服务器标识等),向目标目录服务器发起下载请求。
目标目录服务器在响应下载请求的过程中,可根据预先配置的索引数据确定对应的目标存储服务器,再由该目标存储服务器向客户端提供下载服务。
需要说明的是,该下载场景仅为举例,在实际应用中,如前文提及到,索引数据是可在目录服务器之间同步的,因此,可将下载请求交由任意一个存储有索引数据的目录服务进行响应;或者,也可由接收到下载请求的节点向目录服务器查询目标存储服务器,以进行响应,或者,也可根据下载请求,向客户端反馈索引数据,由客户端根据索引数据向目标存储服务器发起下载服务。
而通过目标存储服务器向客户端提供下载服务,不仅可以理解为目标存储服务器向客户端直接传输待存储文件,也可理解为通过目录服务器的转发,向客户端间接传输待存储文件,例如将上述提及的各子目标存储服务器的分片文件由目录服务器进行汇总甚至组合得到待存储文件,再传输至客户端,或者各子目标存储服务器将存储的子待存储文件直接传输至客户端,由客户端组合得到原来的待存储文件。
下面,为便于说明,则以基于区块链平台搭建得到的文件存储***为例,结合上述提及的分片机制,提供一待存储文件所涉及存储服务的处理流程实例。
1.客户端请求文件上传;
2.测试网络,选择属于最佳上传节点的目录服务器;
3.目录服务器将客户端上传的文件分片(原文件分片得到),存储至存储服务器,形成分片文件的冗余备份(一个分片可在多个存储服务器中存储),同时目录服务器将原文件、文件分片均计算哈希值,并上链存证;
4.各存储服务器接收到文件分片后,计算分片哈希值,并与链上的对应文件分片的哈希值进行比对,确保接收到的分片文件真实一致;
5.目录服务器建立索引目录,将索引目录上链存证;
6.原目录服务器将索引目录同步至其他目录服务器甚至存储服务器中,其他目录服务器将接收到的索引目录的哈希值与链上存证的索引目录的哈希值进行比对,确保真实一致;
7.客户端发起下载请求;
8.选取目录服务器,目录服务器提供索引目录给客户端;
9.客户端把获取到的索引目录的哈希值与链上存证的索引目录的哈希值进行比对,确保真实一致。
10.客户端根据索引目录从存储服务器获取分片文件,每个分片文件在客户端进行哈希计算,得到的哈希值与链上的哈希值进行比对,确保分片文件的真实一致;若存在个别分片文件不一致,则可根据索引目录获取同一个分片文件在另一个存储服务器上的备份,再次进行哈希值的比对,直至真实一致;
11.客户端根据分片文件组合出原文件,计算哈希值,并与链上原文件的哈希值进行比对,确保真实一致。
以上是本申请文件存储方法的说明,为便于更好的实施本申请提供的文件存储方法,本申请还提供了文件存储装置。
参阅图5,图5为本申请文件存储装置的一种结构示意图,在本申请中,文件存储装置500应用于文件存储***,文件存储装置500具体可包括如下结构:
确定单元501,用于确定待存储文件,其中,待存储文件为客户端请求存储于文件存储***的文件;
分配单元502,用于在目录服务器集合中为待存储文件分配对应的目标目录服务器,其中,目录服务器集合包括不同目录服务器;
发送单元503,用于通过目标目录服务器将获取到的待存储文件发送至目标存储服务器进行存储,其中,目标存储服务器由目标服务器从存储服务器集合中分配得到,存储服务器集合包括不同存储服务器;
建立单元504,用于建立待存储文件与目标存储服务器之间的索引数据。
在一种示例性的实现方式中,分配单元502,具体用于:
通过测试数据包的传输测试,评估不同目录服务器分别与客户端之间的网络传输质量;
将最佳网络传输质量对应的目录服务器选定为目标目录服务器。
在又一种示例性的实现方式中,目标存储服务器包括多个子目标存储服务器,发送单元503,具体用于:
通过目标目录服务器将获取到的待存储文件进行分片,得到多个分片文件;
将多个分片文件分别发送至多个子目标存储服务器进行分布式存储;
建立单元,具体用于:
建立多个分片文件与多个子目标存储服务器之间的索引数据。
在又一种示例性的实现方式中,装置还包括同步单元505,用于:
通过目标目录服务器将待存储文件与目标存储服务器之间的索引数据,同步至目录服务器集合中的其他目录服务器。
在又一种示例性的实现方式中,发送单元503,具体用于:
由目录服务器接收客户端上传的待存储文件;
通过目标服务器将待存储文件发送至目标存储服务器进行存储。
在又一种示例性的实现方式中,文件存储***是基于区块链平台搭建的,不同目录服务器以及不同存储服务器皆为区块链平台中的不同区块链节点设备。
在又一种示例性的实现方式中,装置还包括下载单元506,用于:
接收下载请求,其中,下载请求用于请求从文件存储***中下载待存储文件;
由索引数据确定存储待存储文件的目标存储服务器;
通过目标存储服务器向发起下载请求的客户端提供待存储文件的下载服务。
本申请还提供了文件存储设备,参阅图6,图6示出了本申请文件存储设备的一种结构示意图,具体的,本申请文件存储设备包括处理器601、存储器602以及输入输出设备603,处理器601用于执行存储器602中存储的计算机程序时实现如图2至图4对应任意实施例中文件存储方法的各步骤;或者,处理器601用于执行存储器602中存储的计算机程序时实现如图5对应实施例中各单元的功能,存储器602用于存储处理器601执行上述图2至图4对应任意实施例中文件存储方法所需的计算机程序。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器602中,并由处理器601执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机装置中的执行过程。
文件存储设备可包括,但不仅限于处理器601、存储器602、输入输出设备603。本领域技术人员可以理解,示意仅仅是文件存储设备的示例,并不构成对文件存储设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如文件存储设备还可以包括网络接入设备、总线等,处理器601、存储器602、输入输出设备603以及网络接入设备等通过总线相连。
处理器601可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是文件存储设备的控制中心,利用各种接口和线路连接整个设备的各个部分。
存储器602可用于存储计算机程序和/或模块,处理器601通过运行或执行存储在存储器602内的计算机程序和/或模块,以及调用存储在存储器602内的数据,实现计算机装置的各种功能。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如等;存储数据区可存储根据文件存储设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器601用于执行存储器602中存储的计算机程序时,具体可实现以下功能:
确定待存储文件,其中,待存储文件为客户端请求存储于文件存储***的文件;
在目录服务器集合中为待存储文件分配对应的目标目录服务器,其中,目录服务器集合包括不同目录服务器;
通过目标目录服务器将获取到的待存储文件发送至目标存储服务器进行存储,并建立待存储文件与目标存储服务器之间的索引数据,其中,目标存储服务器由目标服务器从存储服务器集合中分配得到,存储服务器集合包括不同存储服务器。
本申请还提供一种文件存储***,该***包括目录服务器集合以及存储服务器集合,目标服务器集合包括不同目录服务器,存储服务器集合包括不同存储服务器,***用于执行如图2至图4对应任意实施例中文件存储方法,目标服务器以及存储服务器的硬件结构说明,可参阅图6对应实施例中有关文件存储设备的硬件结构的说明内容。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的文件存储装置、设备及其相应单元的具体工作过程,可以参考如图2至图4对应任意实施例中文件存储方法的说明,具体在此不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请如图2至图4对应任意实施例中文件存储方法中的步骤,具体操作可参考如图2至图4对应任意实施例中文件存储方法的说明,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(Read Only Memory,ROM)、随机存取记忆体(Random Access Memory,RAM)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本申请如图2至图4对应任意实施例中文件存储方法中的步骤,因此,可以实现本申请如图2至图4对应任意实施例中文件存储方法所能实现的有益效果,详见前面的说明,在此不再赘述。
以上对本申请提供的文件存储方法、装置、设备以及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种文件存储方法,其特征在于,所述方法包括:
确定待存储文件,其中,所述待存储文件为客户端请求存储于所述文件存储***的文件;
在目录服务器集合中为所述待存储文件分配对应的目标目录服务器,其中,所述目录服务器集合包括不同目录服务器;
通过所述目标目录服务器将获取到的所述待存储文件发送至目标存储服务器进行存储,并建立所述待存储文件与所述目标存储服务器之间的索引数据,其中,所述目标存储服务器由所述目标服务器从存储服务器集合中分配得到,所述存储服务器集合包括不同存储服务器。
2.根据权利要求1所述的方法,其特征在于,所述在目录服务器集合中为所述待存储文件分配对应的目标目录服务器,包括:
通过测试数据包的传输测试,评估所述不同目录服务器分别与所述客户端之间的网络传输质量;
将最佳网络传输质量对应的目录服务器选定为所述目标目录服务器。
3.根据权利要求1所述的方法,其特征在于,所述目标存储服务器包括多个子目标存储服务器,所述通过所述目标目录服务器将获取到的所述待存储文件发送至目标存储服务器进行存储,并建立所述待存储文件与所述目标存储服务器之间的索引数据,包括:
通过所述目标目录服务器将获取到的所述待存储文件进行分片,得到多个分片文件;
将多个所述分片文件分别发送至多个所述子目标存储服务器进行分布式存储;
建立多个所述分片文件与多个所述子目标存储服务器之间的索引数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述目标目录服务器将所述待存储文件与所述目标存储服务器之间的索引数据,同步至所述目录服务器集合中的其他目录服务器。
5.根据权利要求1所述的方法,其特征在于,所述通过所述目标目录服务器将获取到的所述待存储文件发送至目标存储服务器进行存储,包括:
由所述目录服务器接收所述客户端上传的所述待存储文件;
通过所述目标服务器将所述待存储文件发送至所述目标存储服务器进行存储。
6.根据权利要求1所述的方法,其特征在于,所述文件存储***是基于区块链平台搭建的,所述不同目录服务器以及所述不同存储服务器皆为所述区块链平台中的不同区块链节点设备。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收下载请求,其中,所述下载请求用于请求从所述文件存储***中下载所述待存储文件;
由所述索引数据确定存储所述待存储文件的目标存储服务器;
通过所述目标存储服务器向发起所述下载请求的客户端提供所述待存储文件的下载服务。
8.一种文件存储装置,其特征在于,所述方法包括:
确定单元,用于确定待存储文件,其中,所述待存储文件为客户端请求存储于所述文件存储***的文件;
分配单元,用于在目录服务器集合中为所述待存储文件分配对应的目标目录服务器,其中,所述目录服务器集合包括不同目录服务器;
发送单元,用于通过所述目标目录服务器将获取到的所述待存储文件发送至目标存储服务器进行存储,其中,所述目标存储服务器由所述目标服务器从存储服务器集合中分配得到,所述存储服务器集合包括不同存储服务器;
建立单元,用于建立所述待存储文件与所述目标存储服务器之间的索引数据。
9.一种文件存储***,其特征在于,所述***包括目录服务器集合以及存储服务器集合,所述目标服务器集合包括不同目录服务器,所述存储服务器集合包括不同存储服务器,所述***用于执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述的方法。
CN202011596322.9A 2020-12-29 2020-12-29 一种文件存储方法、装置、***以及设备 Pending CN112650721A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011596322.9A CN112650721A (zh) 2020-12-29 2020-12-29 一种文件存储方法、装置、***以及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011596322.9A CN112650721A (zh) 2020-12-29 2020-12-29 一种文件存储方法、装置、***以及设备

Publications (1)

Publication Number Publication Date
CN112650721A true CN112650721A (zh) 2021-04-13

Family

ID=75363830

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011596322.9A Pending CN112650721A (zh) 2020-12-29 2020-12-29 一种文件存储方法、装置、***以及设备

Country Status (1)

Country Link
CN (1) CN112650721A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113220644A (zh) * 2021-05-28 2021-08-06 北京微纳星空科技有限公司 一种文件处理方法、装置、设备及存储介质
CN113259449A (zh) * 2021-05-27 2021-08-13 四块科技(深圳)有限公司 分布式存储方法、装置、设备及存储介质
CN113656348A (zh) * 2021-08-25 2021-11-16 北京微纳星空科技有限公司 一种卫星应用大数据的分布式集群管理***及方法
CN113961908A (zh) * 2021-12-23 2022-01-21 杭州链城数字科技有限公司 数据存证方法、装置、计算机设备和存储介质
CN117194439A (zh) * 2023-11-07 2023-12-08 杭州优云科技有限公司 一种资源存储***的创建方法、电子设备及存储介质
CN117215502A (zh) * 2023-11-09 2023-12-12 深圳市活力天汇科技股份有限公司 一种存储方法及存储***

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1996843A (zh) * 2005-12-26 2007-07-11 北大方正集团有限公司 轻量级分布式文件存储***及文件上传的方法
CN103002027A (zh) * 2012-11-26 2013-03-27 中国科学院高能物理研究所 基于键值对***实现树形目录结构的数据存储***及方法
JP2013105289A (ja) * 2011-11-14 2013-05-30 Hitachi Solutions Ltd 階層ファイルストレージに対する差分インデクシング方法
CN103888499A (zh) * 2012-12-21 2014-06-25 中国科学院深圳先进技术研究院 一种分布式对象处理的方法及***
CN104731516A (zh) * 2013-12-18 2015-06-24 腾讯科技(深圳)有限公司 一种存取文件的方法、装置及分布式存储***
CN111049884A (zh) * 2019-11-18 2020-04-21 武汉方始科技有限公司 一种分布式大文件存储***及文件上传和下载方法
CN111258958A (zh) * 2020-01-10 2020-06-09 北京猎豹移动科技有限公司 一种数据获取方法、数据提供方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1996843A (zh) * 2005-12-26 2007-07-11 北大方正集团有限公司 轻量级分布式文件存储***及文件上传的方法
JP2013105289A (ja) * 2011-11-14 2013-05-30 Hitachi Solutions Ltd 階層ファイルストレージに対する差分インデクシング方法
CN103002027A (zh) * 2012-11-26 2013-03-27 中国科学院高能物理研究所 基于键值对***实现树形目录结构的数据存储***及方法
CN103888499A (zh) * 2012-12-21 2014-06-25 中国科学院深圳先进技术研究院 一种分布式对象处理的方法及***
CN104731516A (zh) * 2013-12-18 2015-06-24 腾讯科技(深圳)有限公司 一种存取文件的方法、装置及分布式存储***
CN111049884A (zh) * 2019-11-18 2020-04-21 武汉方始科技有限公司 一种分布式大文件存储***及文件上传和下载方法
CN111258958A (zh) * 2020-01-10 2020-06-09 北京猎豹移动科技有限公司 一种数据获取方法、数据提供方法及装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113259449A (zh) * 2021-05-27 2021-08-13 四块科技(深圳)有限公司 分布式存储方法、装置、设备及存储介质
CN113220644A (zh) * 2021-05-28 2021-08-06 北京微纳星空科技有限公司 一种文件处理方法、装置、设备及存储介质
CN113656348A (zh) * 2021-08-25 2021-11-16 北京微纳星空科技有限公司 一种卫星应用大数据的分布式集群管理***及方法
CN113961908A (zh) * 2021-12-23 2022-01-21 杭州链城数字科技有限公司 数据存证方法、装置、计算机设备和存储介质
CN117194439A (zh) * 2023-11-07 2023-12-08 杭州优云科技有限公司 一种资源存储***的创建方法、电子设备及存储介质
CN117194439B (zh) * 2023-11-07 2024-03-22 杭州优云科技有限公司 一种资源存储***的创建方法、电子设备及存储介质
CN117215502A (zh) * 2023-11-09 2023-12-12 深圳市活力天汇科技股份有限公司 一种存储方法及存储***
CN117215502B (zh) * 2023-11-09 2024-03-26 深圳市活力天汇科技股份有限公司 一种存储方法及存储***

Similar Documents

Publication Publication Date Title
CN112650721A (zh) 一种文件存储方法、装置、***以及设备
US11297140B2 (en) Point of presence based data uploading
US10484465B2 (en) Combining stateless and stateful server load balancing
EP3296870B1 (en) Cdn-based content management system
WO2022141021A1 (zh) 一种文件存储方法、装置、***以及设备
CN110263035A (zh) 基于区块链的数据存储、查询方法及装置和电子设备
EP2656552B1 (en) Third party initiation of communications between remote parties
WO2020253634A1 (zh) 一种数据处理方法、***及装置
US10129358B2 (en) Partitioned serialized caching and delivery of large files
CN113517985B (zh) 文件数据处理方法、装置、电子设备及计算机可读介质
WO2016180188A1 (zh) 分发建链方法、装置和***
US11444998B2 (en) Bit rate reduction processing method for data file, and server
US10122539B2 (en) URL replication for live broadcast streaming
CN116471586A (zh) 一种数据处理方法、装置以及可读存储介质
CN106790610B (zh) 一种云***消息分发方法,装置和***
CN111416851A (zh) 在多个负载均衡器之间进行会话同步的方法和负载均衡器
CN115002195B (zh) 自适应对等模式的服务注册发现方法、***及介质
CN109831467B (zh) 数据传输方法、设备及***
CN112653539B (zh) 一种待存储数据的存储方法、装置以及设备
CN115378962A (zh) 一种基于iSCSI协议的存储集群的高可用性连通方法和***
CN116781764A (zh) 长连接的任务执行方法、装置及相关设备
US20100057914A1 (en) Method, apparatus and system for scheduling contents
CN114036234A (zh) 区块链数据存储***及方法
US20190052649A1 (en) Detecting malware on spdy connections
CN110784775A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210413

RJ01 Rejection of invention patent application after publication