CN110569213A - 文件存取方法、装置和设备 - Google Patents
文件存取方法、装置和设备 Download PDFInfo
- Publication number
- CN110569213A CN110569213A CN201810483272.XA CN201810483272A CN110569213A CN 110569213 A CN110569213 A CN 110569213A CN 201810483272 A CN201810483272 A CN 201810483272A CN 110569213 A CN110569213 A CN 110569213A
- Authority
- CN
- China
- Prior art keywords
- file
- storage nodes
- data block
- data blocks
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种文件存取方法、装置和设备,该方法包括:响应于与待存储的文件对应的文件存储请求,获取N个存储节点的性能参数;根据性能参数从N个存储节点中确定出性能参数满足预设要求的M个存储节点以及确定M个存储节点分别对应的数据块,其中,所述文件被切分为由M个存储节点分别对应的数据块组成的P个数据块,N≥M>1;将P个数据块存入到对应的存储节点中。本方案中,通过结合各存储节点的性能来选出用于存储当前的文件的存储节点以及该存储节点能够存储的数据块大小和数量,从而提高分布式文件系统的存储性能。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种文件存取方法、装置和设备。
背景技术
在处于信息爆炸时代的当今,各种各样的业务所产生的数据量成指数倍的增长,为满足海量数据的存储容量、数据备份、数据安全等需求,分布式文件系统应运而生,分布式文件系统主要的功能是用于存储文档、图像、视频之类的非结构化数据。
简单来说,分布式文件系统由两类节点构成,一类是元数据服务器,主要用于管理文件系统的目录空间信息和客户端对文件的访问以及管理所有数据节点服务器;一类是数据节点服务器(也俗称为存储节点),负责管理本节点上存储的数据块(也称为数据分片)。一般地,为了提高存储节点的I/O性能,需要存储的文件通常会被切分成多个数据块以存储在不同的存储节点上,并且为了保证数据不丢失,数据块还会以多个副本的形式进行存储,不同副本存储在不同存储节点上。
目前,一种常用的文件存储过程是:以固定分块大小比如为64MB来对需要存储的文件进行切分,进而将切分得到的各数据块以随机方式或轮转方式存入各存储节点中。这种以固定分块大小对文件进行切分,随机或轮转方式确定存储数据块的存储节点的方式,会对文件系统的存储性能、文件访问效率产生不利影响。
发明内容
有鉴于此,本发明实施例提供一种文件存取方法、装置和设备,用以提高分布式文件系统的存储性能。
第一方面,本发明实施例提供一种文件存取方法,包括:
响应于与待存储的文件对应的文件存储请求,获取N个存储节点的性能参数;
根据所述性能参数从所述N个存储节点中确定出所述性能参数满足预设要求的M个存储节点以及确定所述M个存储节点分别对应的数据块,其中,所述文件被切分为由所述M个存储节点分别对应的数据块组成的P个数据块,N≥M>1,P>1;
将所述P个数据块存入到对应的存储节点中。
第二方面,本发明实施例提供一种文件存取装置,包括:
获取模块,用于响应于与待存储的文件对应的文件存储请求,获取N个存储节点的性能参数;
确定模块,用于根据所述性能参数从所述N个存储节点中确定出所述性能参数满足预设要求的M个存储节点以及确定所述M个存储节点分别对应的数据块,其中,所述文件被切分为由所述M个存储节点分别对应的数据块组成的P个数据块,N≥M>1,P>1;
存储模块,用于将所述P个数据块存入到对应的存储节点中。
第三方面,本发明实施例提供一种电子设备,包括处理器和存储器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第一方面中的文件存取方法。该电子设备还可以包括通信接口,用于与其他设备或通信网络通信。
本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第一方面中的文件存取方法。
本发明实施例提供的文件存取方法,当接收到用户针对待存储的文件的存储请求,在将该文件向分布式文件系统中的N个存储节点中存储的过程中,先获取N个存储节点的性能参数,进而根据该性能参数从N个存储节点中确定出性能参数满足预设要求的M个存储节点,以结合这M个存储节点的性能参数对该文件进行切分以确定M个存储节点分别对应的数据块,其中,M个存储节点可能每个存储节点都会被分配一个或几个数据块,也可能只有其中的部分存储节点会被分配有数据块,假设该文件被切分P个数据块,从而可以将该P个数据块存入到对应的存储节点中。本方案中,通过结合各存储节点的性能来选出用于存储当前的文件的存储节点以及该存储节点能够存储的数据块大小和数量,从而提高分布式文件系统的存储性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的文件存取方法实施例一的流程图;
图2为本发明实施例提供的文件存取方法实施例二的流程图;
图3为图2所示实施例中的文件索引标识的生成过程示意图;
图4为本发明实施例提供的文件存取方法实施例三的流程图;
图5为本发明实施例提供的一种文件存取装置的结构示意图;
图6为与图5所示实施例提供的文件存取装置对应的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
图1为本发明实施例提供的文件存取方法实施例一的流程图,本实施例中的文件存取方法可以由一服务器来执行,该服务器可以是分布式文件系统中的元数据服务器。以下实施例中将统称为服务器作为本发明实施例的提供的文件存取方法的执行主体。如图1所示,该方法包括如下步骤:
101、响应于与待存储的文件对应的文件存储请求,获取N个存储节点的性能参数。
本发明实施例中假设分布式文件系统中包括N个存储节点,可想而知,N>1,这N个存储节点可以是分布在不同地理位置处的存储服务器。
当某个用户需要将某个待存储的文件存入到分布式文件系统中时,可以向服务器发送文件存储请求,该文件存储请求中携带有该待存储的文件。
服务器在接收到该文件存储请求后,获取N个存储节点各自对应的性能参数,该性能参数用于度量存储节点的存储性能,具体可以包括如下参数中的至少一种:I/O性能参数、与服务器间的物理距离、剩余存储空间、网络质量、资源占用率。当然,实际应用中,该性能参数中还可以包括其他参数,比如存储节点的已使用时间等。其中,网络质量比如体现为网络带宽,资源占用率体现为CPU占用率等,I/O性能参数比如体现为吞吐量、IO响应时间、IOPS。
102、根据性能参数从N个存储节点中确定出性能参数满足预设要求的M个存储节点以及确定M个存储节点分别对应的数据块,其中,所述文件被切分为由M个存储节点分别对应的数据块组成的P个数据块。
其中,N≥M>1,P>1。
在获得当前N个存储节点各自对应的性能参数之后,可以先从N个存储节点中确定出性能参数满足预设要求的M个存储节点。其中,该预设要求可以是各性能参数对应的阈值,也可以是各性能参数的加权总分排名,等等。
举例来说,比如可以认为满足如下要求的存储节点将作为M个存储节点之一:资源占用率低于一定阈值、闲置带宽大于总带宽的一定比例比如三分之二、剩余存储空间至少大于待存储的文件大小的一定倍数比如1000倍。
从N个存储节点中选择出的M个存储节点是相对于其他存储节点具有更佳性能的存储节点,但是,这并非意味着这M个存储节点一定都会被用于进行当前待存储的文件的存储。
本发明实施例中,除了根据性能参数从N个存储节点中确定出M个存储节点外,还根据性能参数确定M个存储节点分别对应的数据块,也就是说,可以在选出M个存储节点后,进一步结合该M个存储节点的性能参数确定M个存储节点分别对应的数据块。其中,M个存储节点分别对应的数据块是指M个存储节点中每个存储节点将会被分配的数据块数量以及每个数据块的大小。其中,数据块是指对文件进行切分后得到的数据块。
值得说明的是,本实施例中,确定M个存储节点分别对应的数据块,并未意味着M个存储节点都会被用于存储该文件的一个或几个数据块,即可能这M个存储节点中仅部分会被用于存储该文件的数据块,其他的存储节点可能不会被使用,具体根据M个存储节点的性能参数而定。
可选地,可以按照一定的性能参数排序策略先对该M个存储节点按照性能优劣顺序进行排序,进而,根据预先设定的性能参数与数据块大小、数据块数量的映射关系依次确定其中的每个存储节点对应的数据块数量和每个数据块的大小。
其中,可选地,上述性能参数排序策略比如为:预先设定性能参数优先级,按照该性能参数优先级对M个存储节点进行排序。举例来说,假设包括I/O性能参数、与服务器间的物理距离、剩余存储空间、网络质量这几个性能参数,且假设优先级从高到低依次为:与服务器间的物理距离、I/O性能参数、剩余存储空间、网络质量,则可选地,可以根据如下方式对M个存储节点排序:
可以先设定多个距离区间,该多个距离区间反映了与服务器间的距离依次由近及远,从而,按照M个存储节点各自与服务器间的物理距离将M个存储节点分别划入相应的距离区间。若同一距离区间内存在多个存储节点,则可以忽略同一距离区间内的多个存储节点与服务器间的物理距离上的差异,即可以认为同一距离区间内的多个存储节点在物理距离上具有相同排名,如此,为了区别同一距离区间内的多个存储节点,需要进而考虑下一优先级的性能参数。下一优先级为I/O性能参数,对I/O性能参数来说,同样地,也可以先设定多个I/O性能参数区间,从而,针对每个距离区间对应的多个存储节点,进一步按照该多个存储节点各自对应的I/O性能参数将该多个存储节点划入相应的I/O性能参数区间,从而,可以得到该多个存储节点在I/O性能参数这个优先级下的排序结果。同样地,如果同一I/O性能参数区间内包括多个存储节点,则该多个存储节点的排序在I/O性能参数这个优先级上不做区分,而在下一个优先级的性能参数上再进行区分,如此类推,直到最后一个性能参数优先级。由此可知,针对每个距离区间,最多执行到最后一个优先级的性能参数时即可得到该距离区间内多个存储节点的最终排序结果,在得到每个距离区间内多个存储节点的排序结果后,便得到了由多个距离区间对应的排序结果依次拼接而成的M个存储节点的排序结果。
之后,可以按照M个存储节点的排序结果,依次遍历各存储节点,根据当前遍历到的存储节点的性能参数确定该存储节点对应的数据块,即应该从待存储的文件中切分出几个怎么大小的数据块分配给该存储节点。其中,可以预先设定存储节点的性能参数与数据块数量和大小的映射关系,以便根据该映射关系进行数据块向存储节点的分配。可以理解的是,排序在前的存储节点往往比排序在后的存储节点分配到更大的数据块或更多的数据块。
另外,值得说明的是,为保证存储节点的I/O性能,每个存储节点中被分配的数据块大小不宜过大,可以设定一个上限。
103、将P个数据块存入到对应的存储节点中。
本实施例中假设待存储的文件最终被切分为P个数据块,从而可以基于步骤102的处理结果,即每个数据块所对应的存储节点,将这P个数据块存入到对应的存储节点中存储。
综上,基于本发明实施例提供的文件存取方法,当接收到用户针对待存储的文件的存储请求,在将该文件向分布式文件系统中的N个存储节点中存储的过程中,先获取N个存储节点的性能参数,进而根据该性能参数从N个存储节点中确定出性能参数满足预设要求的M个存储节点,以结合这M个存储节点的性能参数对该文件进行切分以确定M个存储节点分别对应的数据块,假设该文件被切分P个数据块,从而可以将该P个数据块存入到对应的存储节点中。本方案中,通过结合各存储节点的性能来选出用于存储当前的文件的存储节点以及该存储节点能够存储的数据块大小和数量,从而提高分布式文件系统的存储性能。
值得说明的是,该文件被切分为P个数据块存入到不同的存储节点中后,后续实际应用中,可能会有用户针对该文件进行搜索即需要访问该文件,该用户可能是存入该文件的用户,也可能是其他用户。为了支持对该文件的访问,在将P个数据块存入到对应的存储节点的同时,服务器可以记录该文件、各数据块以及各存储节点之间的对应关系,该对应关系反映出该文件的各数据块分别存储在哪个存储节点的什么地址空间中,以便后续用户访问该文件时,能够基于该对应关系从各存储节点中获得各数据块,从而拼接得到该文件。为此,本发明实施例还提供了图2所示实施例中的存储索引构建方法。
图2为本发明实施例提供的文件存取方法实施例二的流程图,如图2所示,可以包括如下步骤:
201、响应于与待存储的文件对应的文件存储请求,获取N个存储节点的性能参数。
202、根据性能参数从N个存储节点中确定出性能参数满足预设要求的M个存储节点以及确定M个存储节点分别对应的数据块,其中,所述文件被切分为由M个存储节点分别对应的数据块组成的P个数据块。
203、生成P个数据块各自对应的数据块索引标识以及文件对应的文件索引标识。
204、获取文件的文件特征。
本实施例中,待存储的文件的存储索引主要涉及如下几个关键点:文件特征、文件索引标识、数据块索引标识和存储节点标识。
其中,文件特征比如可以是文件的名称、关键词、摘要等。可以是用户在请求存储该文件的时候由用户提供的,也可以是服务器从文件中提取出来的。该文件特征主要用于在后续用户需要访问该文件时,能够基于该文件特征确定出用户是需要访问该文件。
可选地,上述文件索引标识和数据块索引标识可以通过如下方式生成:
分别对P个数据块进行哈希运算,以P个数据块各自对应的哈希值作为P个数据块各自对应的数据块索引标识;
通过以P个数据块各自对应的哈希值作为叶子节点构建Merkle可信树,以Merkle可信树的根节点的哈希值作为该文件的文件索引标识。
为方便理解该文件索引标识的生成过程,结合图3来进行举例说明,假设P=4,即文件被依次切分为如图3所示的数据块1至数据块4这四个数据块,通过对每个数据块进行哈希运算得到这四个数据块分别对应的哈希值,假设为图3中示意的HASH1至HASH4。进而,依次对这四个数据块的哈希值进行两两哈希运算,得到如图3所示的a、b两个父节点,其中,a节点的哈希值HASHa是对HASH1和HASH2进行哈希运算得到的,b节点的哈希值HASHb是对HASH3和HASH4进行哈希运算得到的。进而,再对HASHa和HASHb进行哈希运算得到根节点root的哈希值HASHr。
205、建立文件特征与文件索引标识间的对应关系。
206、在目录空间中建立文件索引标识与生成的P个数据块索引标识间的对应关系,其中,每个数据块索引标识上关联有相应数据块的存储节点标识。
为了支持后续用户针对上述文件的搜索访问,服务器首先需建立文件特征与文件索引标识间的对应关系,以便当基于该文件特征发现用户访问该文件时,能够确定出对应的文件索引标识。其次,为了能够定位出文件的各个数据块,服务器还需建立文件索引标识与数据块索引标识间的对应关系。
具体地,在服务器中维护有目录空间,服务器可以在该目录空间内建立文件索引标识与P个数据块索引标识间的对应关系,其中,每个数据块索引标识上关联有相应数据块的存储节点标识。
可选地,上述文件特征和文件索引标识间的对应关系也可以建立在目录空间中,从而,该目录空间中可以建立文件特征、文件索引标识与P个数据块索引标识间的对应关系。
实际应用中,分布式文件系统中存储的文件数量往往非常大,当用户访问某个文件时,往往需要从头遍历目录空间,以找寻到该文件对应的文件索引标识,进而得知其对应的数据块索引标识以及数据块索引标识所关联的存储节点标识。
在一可选实施例中,为了提高文件索引标识的搜索效率,在目录空间中建立文件索引标识与P个数据块索引标识间的对应关系,可以实现为:
根据文件的文件类型在目录空间中确定文件对应的目录列表;
在目录列表中建立文件索引标识与P个数据块索引标识间的对应关系。
具体地,可以将目录空间划分为多个目录列表,不同目录列表对应于不同的文件类型,或者也可以称为文件类目。比如可以将文件划分为电影、音乐、电视剧、综艺、文档、图片等类型。从而,针对当前待存储的文件来说,可以根据先确定出与该文件的文件类型对应的目录列表,进而在该目录列表中建立该文件的文件索引标识与P个数据块索引标识间的对应关系。
基于此,后续搜索该文件时,也可以根据该文件的文件类型在相应目录列表中搜索对应的文件索引标识,而不用在整个目录空间中搜索。
值得说明的是,上述文件类型可以是服务器根据用户上传的文件的后缀识别得到的,当无法基于后缀识别出所属文件类型时,可以通过提示用户输入文件类型的方式获得文件类型,比如当基于后缀无法识别出文件是属于电影还是电视剧时,可以提示用户输入文件类型。
207、将P个数据块以及P个数据块各自对应的数据块索引标识存入到对应的存储节点中。
为了便于后续用户对该文件的访问,在将P个数据块存入对应的存储节点的同时,也可以将P个数据块各自对应的数据块索引标识与该P个数据块对应存入相应存储节点中,此时,该数据块索引标识相当于是相应数据块的存储索引。
为了保证数据安全性,避免存储节点损坏而造成的该存储节点内存储的数据块丢失从而导致相应文件不能被完整访问的问题,每个数据块在分布式文件系统中都是存在多个副本来备份的。
为此,本发明实施例中,可选地,针对上述P个数据块中的数据块i,可以生成K个与该数据块i对应的数据块副本,K≥1。其中,数据块i可以是P个数据块中的任一数据块或者为满足预设要求的数据块,也就是说,可以针对每个数据块都进行备份处理,也可以仅针对某些特定的数据块进行备份处理。其中,上述预设要求比如可以是数据块大小大于一定阈值的数据块,或者,如果上述文件对应的文件类型为预设某种类型,等等。
进而,可以根据N个存储节点的性能参数从N个存储节点中确定出K个存储节点,分别向该K个存储节点中存入该数据块副本和数据块i对应的数据块索引标识,进而将K个存储节点的标识关联到数据块i对应的数据块索引标识上。可以理解的是,如果某个数据块具有多个副本,那么该数据块对应的数据块索引标识将关联上多个存储节点标识,该多个存储节点标识是该数据块及其各副本所位于的存储节点的标识。
其中,如前述M个存储节点的选定一样,此时,可以从N个存储节点中选出K个性能参数满足预设要求的存储节点。当满足该预设要求的存储节点的数量大于K时,可以随机从中选出K个存储节点,或者,也可以按照最高优先级的性能参数从中选出该性能参数上表现最佳的K个存储节点。可以理解的是,针对数据块i来说,数据块i对应的存储节点不包含于K个存储节点中,也就是说,数据块i与其副本不能存储在同一存储节点中。
图4为本发明实施例提供的文件存取方法实施例三的流程图,如图4所示,在图2所示实施例基础上,还可以包括如下步骤:
401、响应于客户端发送的文件搜索请求,若文件搜索请求中包含的搜索词与所述文件特征匹配,则确定与文件特征对应的文件索引标识。
402、从目录空间中确定与文件索引标识对应的P个数据块索引标识。
403、将P个数据块索引标识和P个数据块索引标识所关联的存储节点标识反馈至客户端。
对分布式文件系统中存储的文件进行搜索访问的情况,可以是文件的上传者即文件所有者对该文件进行访问,与可以是其他授权用户对该文件进行访问。
用户可以通过在搜索框内输入搜索词的方式触发上述文件搜索请求,该搜索词比如为文件名称、文件类型等信息。服务器接收到该文件搜索请求后,将该搜索词与已存储的各文件的文件特征进行匹配,从而找到与之匹配的文件特征。文件特征与搜索词的匹配可以是指文件特征与搜索词一致,或者文件特征包含搜索词。
得到匹配的文件特征后,可以基于已经建立的文件特征与文件索引标识间的对应关系确定对应的文件索引标识。假设该文件索引标识即为前述实施例中存入的文件所对应的文件索引标识,则进而从目录空间中确定与该文件索引标识对应的P个数据块索引标识,将P个数据块索引标识和P个数据块索引标识所关联的存储节点标识反馈至客户端,从而,客户端可以向相应的存储节点发送携带有相应数据块索引标识的获取请求,以从各存储节点中获得相应的数据块,拼接后得到完整的文件。
在一可选实施例中,当数据块是以多个副本进行备份存储时,为提高数据块搜索效率,可以通过如下方式确定从哪个存储节点中获取该数据块:
若P个数据块索引标识中存在关联有多个存储节点标识的数据块索引标识j,说明数据块索引标识j对应的数据块具有多个数据块副本,则此时可以根据数据块索引标识j所关联的多个存储节点标识所对应的该多个存储节点的性能参数从这多个存储节点中选择出性能最佳的存储节点,从而将该数据块索引标识j和该性能最佳的存储节点的标识反馈至客户端,使得客户端可以从该性能最佳的存储节点中获取数据块索引标识j对应的数据块。
以下将详细描述本发明的一个或多个实施例的文件存取装置。本领域技术人员可以理解,这些文件存取装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图5为本发明实施例提供的一种文件存取装置的结构示意图,如图5所示,该装置包括:获取模块11、确定模块12、存储模块13。
获取模块11,用于响应于与待存储的文件对应的文件存储请求,获取N个存储节点的性能参数。
确定模块12,用于根据所述性能参数从所述N个存储节点中确定出所述性能参数满足预设要求的M个存储节点以及确定所述M个存储节点分别对应的数据块,其中,所述文件被切分为由所述M个存储节点分别对应的数据块组成的P个数据块,N≥M>1,P>1。
存储模块13,用于将所述P个数据块存入到对应的存储节点中。
可选地,所述性能参数包括如下参数中的至少一种:I/O性能参数、与服务器间的物理距离、剩余存储空间、网络质量、资源占用率。
可选地,所述装置还包括:生成模块14、文件特征获取模块15、建立模块16。
生成模块14,用于生成所述P个数据块各自对应的数据块索引标识以及所述文件对应的文件索引标识。
文件特征获取模块15,用于获取所述文件的文件特征。
建立模块16,用于建立所述文件特征与所述文件索引标识间的对应关系,以及在目录空间中建立所述文件索引标识与生成的P个数据块索引标识间的对应关系,其中,每个数据块索引标识上关联有相应数据块的存储节点标识;
从而,所述存储模块13具体用于:将所述P个数据块以及所述P个数据块各自对应的数据块索引标识存入到对应的存储节点中。
可选地,所述建立模块16可以用于:根据所述文件的文件类型在所述目录空间中确定所述文件对应的目录列表;在所述目录列表中建立所述文件索引标识与所述P个数据块索引标识间的对应关系。
可选地,所述生成模块14可以用于:分别对所述P个数据块进行哈希运算,以所述P个数据块各自对应的哈希值作为所述P个数据块各自对应的数据块索引标识;通过以所述P个数据块各自对应的哈希值作为叶子节点构建Merkle可信树,以所述Merkle可信树的根节点的哈希值作为所述文件索引标识。
可选地,所述生成模块14还可以用于:针对所述P个数据块中的数据块i,生成K个与所述数据块i对应的数据块副本,K≥1,所述数据块i为所述P个数据块中的任一数据块或者为满足预设要求的数据块。
相应地,所述确定模块12还可以用于:根据所述性能参数从所述N个存储节点中确定出K个存储节点,所述数据块i对应的存储节点不包含于所述K个存储节点中。
所述存储模块13还可以用于:分别向所述K个存储节点中存入所述数据块副本和所述数据块i对应的数据块索引标识。
所述建立模块16还用于:将所述K个存储节点的标识关联到所述数据块i对应的数据块索引标识上。
可选地,所述装置还包括:搜索处理模块17。
所述搜索处理模块17,用于响应于客户端发送的文件搜索请求,若所述文件搜索请求中包含的搜索词与所述文件特征匹配,则确定与所述文件特征对应的文件索引标识;从所述目录空间中确定与所述文件索引标识对应的所述P个数据块索引标识;将所述P个数据块索引标识和所述P个数据块索引标识所关联的存储节点标识反馈至所述客户端。
可选地,所述搜索处理模块还可以用于:若所述P个数据块索引标识中存在关联有多个存储节点标识的数据块索引标识j,则根据所述多个存储节点标识对应的多个存储节点的性能参数从所述多个存储节点中选择出性能最佳的存储节点;将所述数据块索引标识j和所述性能最佳的存储节点的标识反馈至所述客户端。
图5所示装置可以执行图1-图4所示实施例的方法,本实施例未详细描述的部分,可参考对图1-图4所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1-图4所示实施例中的描述,在此不再赘述。
以上描述了文件存取装置的内部功能和结构,在一个可能的设计中,文件存取装置的结构可实现为一电子设备,该电子设备可以为分布式文件系统中的元数据服务器,如图6所示,该电子设备可以包括:处理器21和存储器22。其中,所述存储器22用于存储支持该电子设备执行上述图1-图4所示实施例中提供的文件存取方法的程序,所述处理器21被配置为用于执行所述存储器22中存储的程序。
所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器21执行时能够实现如下步骤:
响应于与待存储的文件对应的文件存储请求,获取N个存储节点的性能参数;
根据所述性能参数从所述N个存储节点中确定出所述性能参数满足预设要求的M个存储节点以及确定所述M个存储节点分别对应的数据块,其中,所述文件被切分为由所述M个存储节点分别对应的数据块组成的P个数据块,N≥M>1,P>1;
将所述P个数据块存入到对应的存储节点中。
可选地,所述处理器21还用于执行前述图1-图4所示实施例中的全部或部分步骤。
其中,所述电子设备的结构中还可以包括通信接口23,用于该电子设备与其他设备比如存储节点或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存上述电子设备所用的计算机软件指令,其包含用于执行上述图1-图4所示方法实施例中文件存取方法所涉及的程序。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程文件存取设备的处理器以产生一个机器,使得通过计算机或其他可编程文件存取设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程文件存取设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程文件存取设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种文件存取方法,其特征在于,包括:
响应于与待存储的文件对应的文件存储请求,获取N个存储节点的性能参数;
根据所述性能参数从所述N个存储节点中确定出所述性能参数满足预设要求的M个存储节点以及确定所述M个存储节点分别对应的数据块,其中,所述文件被切分为由所述M个存储节点分别对应的数据块组成的P个数据块,N≥M>1,P>1;
将所述P个数据块存入到对应的存储节点中。
2.根据权利要求1所述的方法,其特征在于,所述性能参数包括如下参数中的至少一种:I/O性能参数、与服务器间的物理距离、剩余存储空间、网络质量、资源占用率。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
生成所述P个数据块各自对应的数据块索引标识以及所述文件对应的文件索引标识;
获取所述文件的文件特征;
建立所述文件特征与所述文件索引标识间的对应关系;
在目录空间中建立所述文件索引标识与生成的P个数据块索引标识间的对应关系,其中,每个数据块索引标识上关联有相应数据块的存储节点标识;
所述将所述P个数据块存入到对应的存储节点中,包括:
将所述P个数据块以及所述P个数据块各自对应的数据块索引标识存入到对应的存储节点中。
4.根据权利要求3所述的方法,其特征在于,所述生成所述P个数据块各自对应的数据块索引标识以及所述文件对应的文件索引标识,包括:
分别对所述P个数据块进行哈希运算,以所述P个数据块各自对应的哈希值作为所述P个数据块各自对应的数据块索引标识;
通过以所述P个数据块各自对应的哈希值作为叶子节点构建Merk l e可信树,以所述Merk l e可信树的根节点的哈希值作为所述文件索引标识。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
针对所述P个数据块中的数据块i,生成K个与所述数据块i对应的数据块副本,K≥1,所述数据块i为所述P个数据块中的任一数据块或者为满足预设要求的数据块;
根据所述性能参数从所述N个存储节点中确定出K个存储节点,所述数据块i对应的存储节点不包含于所述K个存储节点中;
分别向所述K个存储节点中存入所述数据块副本和所述数据块i对应的数据块索引标识;
将所述K个存储节点的标识关联到所述数据块i对应的数据块索引标识上。
6.根据权利要求3所述的方法,其特征在于,所述在目录空间中建立所述文件索引标识与生成的P个数据块索引标识间的对应关系,包括:
根据所述文件的文件类型在所述目录空间中确定所述文件对应的目录列表;
在所述目录列表中建立所述文件索引标识与所述P个数据块索引标识间的对应关系。
7.根据权利要求3至6中任一项所述的方法,其特征在于,所述方法还包括:
响应于客户端发送的文件搜索请求,若所述文件搜索请求中包含的搜索词与所述文件特征匹配,则确定与所述文件特征对应的文件索引标识;
从所述目录空间中确定与所述文件索引标识对应的所述P个数据块索引标识;
将所述P个数据块索引标识和所述P个数据块索引标识所关联的存储节点标识反馈至所述客户端。
8.根据权利要求7所述的方法,其特征在于,所述将所述P个数据块索引标识和所述P个数据块索引标识所关联的存储节点标识反馈至所述客户端,包括:
若所述P个数据块索引标识中存在关联有多个存储节点标识的数据块索引标识j,则根据所述多个存储节点标识对应的多个存储节点的性能参数从所述多个存储节点中选择出性能最佳的存储节点;
将所述数据块索引标识j和所述性能最佳的存储节点的标识反馈至所述客户端。
9.一种文件存取装置,其特征在于,包括:
获取模块,用于响应于与待存储的文件对应的文件存储请求,获取N个存储节点的性能参数;
确定模块,用于根据所述性能参数从所述N个存储节点中确定出所述性能参数满足预设要求的M个存储节点以及确定所述M个存储节点分别对应的数据块,其中,所述文件被切分为由所述M个存储节点分别对应的数据块组成的P个数据块,N≥M>1,P>1;
存储模块,用于将所述P个数据块存入到对应的存储节点中。
10.一种电子设备,其特征在于,包括:存储器、处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求1至8中任一项所述的文件存取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810483272.XA CN110569213A (zh) | 2018-05-18 | 2018-05-18 | 文件存取方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810483272.XA CN110569213A (zh) | 2018-05-18 | 2018-05-18 | 文件存取方法、装置和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110569213A true CN110569213A (zh) | 2019-12-13 |
Family
ID=68771909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810483272.XA Pending CN110569213A (zh) | 2018-05-18 | 2018-05-18 | 文件存取方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110569213A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111182067A (zh) * | 2019-12-31 | 2020-05-19 | 上海焜耀网络科技有限公司 | 一种基于星际文件系统ipfs的数据写入方法及设备 |
CN111240897A (zh) * | 2020-01-07 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
CN111586094A (zh) * | 2020-03-26 | 2020-08-25 | 平安养老保险股份有限公司 | 一种文件上传方法、装置及计算机设备 |
CN111970520A (zh) * | 2020-08-13 | 2020-11-20 | 北京中电兴发科技有限公司 | 一种异构节点流式数据分布式存储方法 |
CN112583904A (zh) * | 2020-12-04 | 2021-03-30 | 北京百度网讯科技有限公司 | 文件上传方法、装置、设备以及存储介质 |
CN112631833A (zh) * | 2020-12-25 | 2021-04-09 | 苏州浪潮智能科技有限公司 | 一种数据归档查询方法、系统、存储介质及设备 |
CN113204314A (zh) * | 2021-03-30 | 2021-08-03 | 海南视联通信技术有限公司 | 一种数据存储的方法和装置 |
CN113448920A (zh) * | 2020-03-27 | 2021-09-28 | 伊姆西Ip控股有限责任公司 | 管理存储系统中的索引的方法、设备和计算机程序产品 |
CN113609090A (zh) * | 2021-08-06 | 2021-11-05 | 杭州网易云音乐科技有限公司 | 数据存储方法及装置、计算机可读存储介质、电子设备 |
CN115174591A (zh) * | 2022-07-01 | 2022-10-11 | 深圳市玄羽科技有限公司 | 一种智能制造系统及其数据安全管理方法 |
CN115190136A (zh) * | 2021-04-21 | 2022-10-14 | 统信软件技术有限公司 | 一种数据存储方法、数据传输方法及计算设备 |
CN111400250B (zh) * | 2020-03-11 | 2023-04-25 | 安徽文香科技有限公司 | 一种资源获取方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387179A (zh) * | 2010-09-02 | 2012-03-21 | 联想(北京)有限公司 | 分布式文件系统及其结点、存储方法和存储控制方法 |
CN107113323A (zh) * | 2015-06-27 | 2017-08-29 | 华为技术有限公司 | 一种数据存储方法、装置和系统 |
CN107770154A (zh) * | 2017-09-22 | 2018-03-06 | 中国科学院信息工程研究所 | 基于云存储的区块链可靠数据存储方法、终端及系统 |
-
2018
- 2018-05-18 CN CN201810483272.XA patent/CN110569213A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387179A (zh) * | 2010-09-02 | 2012-03-21 | 联想(北京)有限公司 | 分布式文件系统及其结点、存储方法和存储控制方法 |
CN107113323A (zh) * | 2015-06-27 | 2017-08-29 | 华为技术有限公司 | 一种数据存储方法、装置和系统 |
CN107770154A (zh) * | 2017-09-22 | 2018-03-06 | 中国科学院信息工程研究所 | 基于云存储的区块链可靠数据存储方法、终端及系统 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111182067A (zh) * | 2019-12-31 | 2020-05-19 | 上海焜耀网络科技有限公司 | 一种基于星际文件系统ipfs的数据写入方法及设备 |
CN111240897A (zh) * | 2020-01-07 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
CN111400250B (zh) * | 2020-03-11 | 2023-04-25 | 安徽文香科技有限公司 | 一种资源获取方法、装置、设备及存储介质 |
CN111586094A (zh) * | 2020-03-26 | 2020-08-25 | 平安养老保险股份有限公司 | 一种文件上传方法、装置及计算机设备 |
CN113448920B (zh) * | 2020-03-27 | 2024-05-31 | 伊姆西Ip控股有限责任公司 | 管理存储系统中的索引的方法、设备和计算机程序产品 |
CN113448920A (zh) * | 2020-03-27 | 2021-09-28 | 伊姆西Ip控股有限责任公司 | 管理存储系统中的索引的方法、设备和计算机程序产品 |
CN111970520B (zh) * | 2020-08-13 | 2022-04-08 | 北京中电兴发科技有限公司 | 一种异构节点流式数据分布式存储方法 |
CN111970520A (zh) * | 2020-08-13 | 2020-11-20 | 北京中电兴发科技有限公司 | 一种异构节点流式数据分布式存储方法 |
CN112583904A (zh) * | 2020-12-04 | 2021-03-30 | 北京百度网讯科技有限公司 | 文件上传方法、装置、设备以及存储介质 |
CN112631833A (zh) * | 2020-12-25 | 2021-04-09 | 苏州浪潮智能科技有限公司 | 一种数据归档查询方法、系统、存储介质及设备 |
CN113204314A (zh) * | 2021-03-30 | 2021-08-03 | 海南视联通信技术有限公司 | 一种数据存储的方法和装置 |
CN115190136A (zh) * | 2021-04-21 | 2022-10-14 | 统信软件技术有限公司 | 一种数据存储方法、数据传输方法及计算设备 |
CN115190136B (zh) * | 2021-04-21 | 2024-03-01 | 统信软件技术有限公司 | 一种数据存储方法、数据传输方法及计算设备 |
CN113609090A (zh) * | 2021-08-06 | 2021-11-05 | 杭州网易云音乐科技有限公司 | 数据存储方法及装置、计算机可读存储介质、电子设备 |
CN115174591A (zh) * | 2022-07-01 | 2022-10-11 | 深圳市玄羽科技有限公司 | 一种智能制造系统及其数据安全管理方法 |
CN115174591B (zh) * | 2022-07-01 | 2023-10-13 | 深圳市玄羽科技有限公司 | 一种智能制造系统及其数据安全管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110569213A (zh) | 文件存取方法、装置和设备 | |
US20200409798A1 (en) | Tiered cloud storage for different availability and performance requirements | |
US10459899B1 (en) | Splitting database partitions | |
US8977623B2 (en) | Method and system for search engine indexing and searching using the index | |
US9165068B2 (en) | Techniques for cloud-based similarity searches | |
CN107015985B (zh) | 一种数据存储与获取方法及装置 | |
CN109936571B (zh) | 一种海量数据共享方法、开放共享平台及电子设备 | |
CN102725755B (zh) | 文件访问方法及系统 | |
US11531658B2 (en) | Criterion-based retention of data object versions | |
WO2018233630A1 (zh) | 故障发现 | |
CN109766318B (zh) | 文件读取方法及装置 | |
US10984059B2 (en) | Data retrieval method and system | |
CN110019048A (zh) | 基于MongoDB的文件处理方法、装置、系统及服务器 | |
CN111163072A (zh) | 机器学习模型中特征值的确定方法、装置及电子设备 | |
CN108154024B (zh) | 一种数据检索方法、装置及电子设备 | |
CN112131507A (zh) | 网站内容处理方法、装置、服务器和计算机可读存储介质 | |
CN107357557B (zh) | 一种信息更新方法及装置 | |
CN108363727B (zh) | 一种基于zfs文件系统的数据存储方法及装置 | |
US11531666B1 (en) | Indexing partitions using distributed bloom filters | |
US10528536B1 (en) | Managing data object versions in a storage service | |
US20160034700A1 (en) | Search permissions within hierarchically associated data | |
CN115129789A (zh) | 一种分布式对象存储系统的桶索引存储方法、装置及介质 | |
CN115391581A (zh) | 索引创建、图像存储、图像检索方法、装置及电子设备 | |
US11080301B2 (en) | Storage allocation based on secure data comparisons via multiple intermediaries | |
CN113411364B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191213 |