CN107562757B - 基于分布式文件系统的查询、访问方法、装置及系统 - Google Patents
基于分布式文件系统的查询、访问方法、装置及系统 Download PDFInfo
- Publication number
- CN107562757B CN107562757B CN201610512696.5A CN201610512696A CN107562757B CN 107562757 B CN107562757 B CN 107562757B CN 201610512696 A CN201610512696 A CN 201610512696A CN 107562757 B CN107562757 B CN 107562757B
- Authority
- CN
- China
- Prior art keywords
- file
- main server
- read
- name
- server
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种基于分布式文件系统的查询方法、装置、电子设备、一种基于分布式文件系统的访问方法、装置、电子设备、一种主服务器的分片方法、装置以及一种分布式文件系统。其中,所述基于分布式文件系统的查询方法,包括:接收客户端发送的请求读取文件的名称;根据所述文件的名称查询在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,获取所述客户端请求读取的文件对应的主服务器的位置信息;向所述客户端发送该客户端请求读取的文件对应的主服务器的位置信息。采用上述方法,解决了对单主服务器的内存要求高,且大量的元数据信息导致系统的存储访问性能降低的问题,扩展了整个系统的容量。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种基于分布式文件系统的查询方法、一种基于分布式文件系统的访问方法、一种主服务器的分片方法以及一种分布式文件系统;本申请同时涉及一种基于分布式文件系统的查询装置及一种电子设备、一种基于分布式文件系统的访问装置及一种电子设备以及一种主服务器的分片装置。
背景技术
随着互联网应用的种类越来越多,面对不断增长的互联网用户,也带来了不同的不断增长的海量数据。如何提高存储和处理这些海量数据的能力,对于互联网企业是一个巨大的技术挑战。为了解决海量数据存储问题,分布式文件系统应运而生。基于分布式文件系统架构提供存储服务能够充分利用现有的低端硬件设备的处理能力,并提高了用户访问存储的效率和存储服务的可靠性。
市面上各种分布式文件系统种类繁多,层出不穷,例如:Google的核心存储平台GFS(google File System)。以GFS为典型代表的分布式文件系统采用的是服务器/客户端结构,主要组成部分包括主服务器master(元数据服务器)、块数据服务器chunk server和客户端client,三者之间通过各自的网络协议进行指令和数据通信。
但在这种分布式文件系统中,主服务器master作为系统中的单点,把所有的元数据信息都保存在内存中,因此对于主服务器master的内存要求很高,并且大量的元数据信息也导致系统的存储访问性能降低,制约着整个系统的容量。大数据技术要求的单集群中文件数量越来越大,但是主服务器master节点内存是有限的,无法满足需求。
发明内容
本申请提供一种基于分布式文件系统的查询方法、一种基于分布式文件系统的访问方法、一种主服务器的分片方法以及一种分布式文件系统,以解决现有技术中的上述问题。本申请同时涉及一种基于分布式文件系统的查询装置及一种电子设备、一种基于分布式文件系统的访问装置及一种电子设备以及一种主服务器的分片装置。
本申请提供了一种基于分布式文件系统的查询方法,所述基于分布式文件系统的查询方法,包括:
接收客户端发送的请求读取文件的名称;
根据所述文件的名称查询在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,获取所述客户端请求读取的文件对应的主服务器的位置信息;
向所述客户端发送该客户端请求读取的文件对应的主服务器的位置信息。
可选的,所述根据所述文件的名称查询在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,获取所述客户端请求读取的文件对应的主服务器的位置信息,包括:
遍历当前节点中全部文件到对应文件的主服务器的映射关系,查询映射关系中的元素与所述客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系;
获取查询出的映射关系中携带的主服务器的位置信息。
可选的,所述的基于分布式文件系统的查询方法,还包括:
检测在分布式文件系统中每一主服务器的内存消耗;
判断是否有主服务器的内存消耗超过预设的阈值;
若是,则查询内存消耗最低的主服务器;
将内存消耗超过预设的阈值的主服务器中的目录树转移到查询出的内存消耗最低的主服务器。
可选的,所述将内存消耗超过预设的阈值的主服务器中的目录树转移到查询出的内存消耗最低的主服务器,包括:
判断内存消耗超过预设的阈值的主服务器中的目录树的数目是否大于一;
若大于,则将所述主服务器中的任一目录树转移到查询出的内存消耗最低的主服务器;
若不大于,则将所述主服务器中的目录树进行分裂,将分裂出的目录树转移到查询出的内存消耗最低的主服务器。
可选的,所述将所述主服务器中的目录树进行分裂,包括:
选取所述主服务器中的目录树中任一具有子结点的结点;
在所述结点的位置将所述主服务器中的目录树进行分裂。
相应的,本申请还提供了一种基于分布式文件系统的查询装置,所述基于分布式文件系统的查询装置,包括:
接收单元,用于接收客户端发送的请求读取文件的名称;
位置获取单元,用于根据所述文件的名称查询在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,获取所述客户端请求读取的文件对应的主服务器的位置信息;
位置发送单元,用于向所述客户端发送该客户端请求读取的文件对应的主服务器的位置信息。
可选的,所述位置获取单元,包括:
主服务器查询子单元,用于遍历当前节点中全部文件到对应文件的主服务器的映射关系,查询映射关系中的元素与所述客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系;
位置信息获取子单元,用于获取查询出的映射关系中携带的主服务器的位置信息。
可选的,所述的基于分布式文件系统的查询装置,还包括:
内存检测单元,用于检测在分布式文件系统中每一主服务器的内存消耗;
阈值判断单元,用于判断是否有主服务器的内存消耗超过预设的阈值;
低消耗服务器查询单元,用于接收所述阈值判断单元的判断结果,若是,则查询内存消耗最低的主服务器;
目录树转移单元,用于将内存消耗超过预设的阈值的主服务器中的目录树转移到查询出的内存消耗最低的主服务器。
可选的,所述目录树转移单元,包括:
数目判断子单元,用于判断内存消耗超过预设的阈值的主服务器中的目录树的数目是否大于一;
目录树转移子单元,用于接收所述数目判断子单元的判断结果,若大于,则将所述主服务器中的任一目录树转移到查询出的内存消耗最低的主服务器;
目录树分裂子单元,用于接收所述数目判断子单元的判断结果,若不大于,则将所述主服务器中的目录树进行分裂,将分裂出的目录树转移到查询出的内存消耗最低的主服务器。
可选的,所述目录树分裂子单元,包括:
结点选取子单元,用于选取所述主服务器中的目录树中任一具有子结点的结点;
结点分裂子单元,用于在所述结点的位置将所述主服务器中的目录树进行分裂。
此外,本申请还提供了一种电子设备,包括:
显示器;
处理器;
存储器,用于存储查询程序,所述程序在被所述处理器读取执行时,执行如下操作:接收客户端发送的请求读取文件的名称;根据所述文件的名称查询在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,获取所述客户端请求读取的文件对应的主服务器的位置信息;向所述客户端发送该客户端请求读取的文件对应的主服务器的位置信息。
此外,本申请还提供了一种基于分布式文件系统的访问方法,所述基于分布式文件系统的访问方法,包括:
向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称;
接收所述节点基于查询操作发送的请求读取的文件对应的主服务器的位置信息;
根据所述位置信息向对应的主服务器发送读取文件的请求;所述请求包括:请求读取的文件的名称;
接收所述主服务器基于查询操作发送的所述读取的文件的位置信息。
可选的,所述读取的文件的位置信息,包括:
对应所述名称的文件的全部块数据的位置信息。
可选的,在所述接收所述主服务器基于查询操作发送的所述读取的文件的位置信息的步骤之后,包括:
在本地缓存中存储接收的所述主服务器基于查询操作发送的所述读取的文件的位置信息。
可选的,在所述在本地缓存中存储接收的所述主服务器基于查询操作发送的所述读取的文件的位置信息的步骤之后,包括:
根据所述文件的位置信息向对应的块数据服务器发送获取对应块数据的请求;
接收所述块数据服务器发送的对应的块数据。
可选的,在所述向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称的步骤之前,包括:
判断本地缓存中是否存储请求读取的文件的位置信息;
若是,则不执行所述向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称的步骤,并触发所述根据所述文件的位置信息向对应的块数据服务器发送获取对应块数据的请求的步骤。
相应的,本申请还提供了一种基于分布式文件系统的访问装置,所述基于分布式文件系统的访问装置,包括:
文件名称发送单元,用于向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称;
主服务器位置信息接收单元,用于接收所述节点基于查询操作发送的请求读取的文件对应的主服务器的位置信息;
请求发送单元,用于根据所述位置信息向对应的主服务器发送读取文件的请求;所述请求包括:请求读取的文件的名称;
位置信息接收单元,用于接收所述主服务器基于查询操作发送的所述读取的文件的位置信息。
可选的,所述位置信息接收单元具体用于接收所述主服务器基于查询操作发送的对应所述名称的文件的全部块数据的位置信息。
可选的,所述的基于分布式文件系统的访问装置,还包括:
位置存储单元,用于在所述接收所述主服务器基于查询操作发送的所述读取的文件的位置信息之后,在本地缓存中存储接收的所述主服务器基于查询操作发送的所述读取的文件的位置信息。
可选的,所述的基于分布式文件系统的访问装置,还包括:
块数据请求单元,用于在所述在本地缓存中存储接收的所述主服务器基于查询操作发送的所述读取的文件的位置信息之后,根据所述文件的位置信息向对应的块数据服务器发送获取对应块数据的请求;
块数据接收单元,用于接收所述块数据服务器发送的对应的块数据。
可选的,所述的基于分布式文件系统的访问装置,还包括:
缓存判断单元,用于在所述向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称之前,判断本地缓存中是否存储请求读取的文件的位置信息;
块数据请求触发单元,用于接收所述缓存判断单元的判断结果,若是,则不触发所述请求发送单元,并触发所述块数据请求单元。
此外,本申请还提供了一种电子设备,包括:
显示器;
处理器;
存储器,用于存储访问程序,所述程序在被所述处理器读取执行时,执行如下操作:向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称;接收所述节点基于查询操作发送的请求读取的文件对应的主服务器的位置信息;根据所述位置信息向对应的主服务器发送读取文件的请求;所述请求包括:请求读取的文件的名称;接收所述主服务器基于查询操作发送的所述读取的文件的位置信息。
此外,本申请还提供了一种主服务器的分片方法,所述主服务器的分片方法,包括:
将所述主服务器中的目录树按照命名空间进行分片,并获取分片后的目录树数目M;
获取预设的扩展后的主服务器数目N;
将获取的所述目录树的数目M除以所述预设的主服务器扩展数目N,将分片后的目录树均匀分配在各主服务器中。
相应的,本申请还提供了一种主服务器的分片装置,所述主服务器的分片装置,包括:
分片单元,用于将所述主服务器中的目录树按照命名空间进行分片,并获取分片后的目录树数目M;
主服务器数目扩展单元,用于获取预设的扩展后的主服务器数目N;
分配单元,用于将获取的所述目录树的数目M除以所述预设的主服务器扩展数目N,将分片后的目录树均匀分配在各主服务器中。
此外,本申请还提供了一种分布式文件系统,所述分布式文件系统,包括:
根据上述任一项所述的基于分布式文件系统的查询装置;
根据上述任一项所述的基于分布式文件系统的访问装置;
以及根据所述的主服务器的分片装置。
与现有技术相比,本申请具有以下优点:
本申请提供的一种基于分布式文件系统的查询方法、装置以及电子设备,通过接收客户端发送的请求读取文件的名称;根据所述文件的名称查询在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,获取所述客户端请求读取的文件对应的主服务器的位置信息;向所述客户端发送该客户端请求读取的文件对应的主服务器的位置信息。所述技术方案通过在系统中设立多个主服务器,并将每个主服务器中的文件到存储对应文件位置的映射关系备份存储在节点中,解决了对单主服务器的内存要求高,且大量的元数据信息导致系统的存储访问性能降低的问题,扩展了整个系统的容量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1示出了根据本申请的实施例提供的基于分布式文件系统的查询方法的流程图;
图2示出了根据本申请的实施例提供的检测在分布式文件系统中每一主服务器的内存消耗的流程图;
图3示出了根据本申请的实施例提供的根据所述文件的名称查询在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,获取所述客户端请求读取的文件对应的主服务器的位置信息的流程图;
图4示出了根据本申请的实施例提供的基于分布式文件系统的查询装置的示意图;
图5示出了根据本申请的实施例提供的电子设备的示意图;
图6示出了根据本申请的实施例提供的基于分布式文件系统的访问方法的流程图;
图7示出了根据本申请的实施例提供的基于分布式文件系统的访问装置的示意图;
图8示出了根据本申请的实施例提供的电子设备的示意图;
图9示出了根据本申请的实施例提供的主服务器的分片方法的流程图;
图10示出了根据本申请的实施例提供的主服务器的分片装置的示意图;
图11示出了根据本申请的实施例提供的分布式文件系统的示意图。
具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面结合附图和具体实施方式对本申请进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。
本申请的实施例提供了一种基于分布式文件系统的查询方法、一种基于分布式文件系统的访问方法、一种主服务器的分片方法以及一种分布式文件系统;本申请的实施例同时提供一种基于分布式文件系统的查询装置及一种电子设备、一种基于分布式文件系统的访问装置及一种电子设备以及一种主服务器的分片装置。在详细描述本实施例的具体步骤之前,为了方便对本技术方案的理解,先对现有的分布式文件系统作简要说明。
一个GFS系统由一个主服务器master和大量块服务器chunk server构成,并被许多客户端client访问,三者之间通过各自的网络协议进行指令和数据通信。主服务器和块服务器通常是运行用户层服务进程的Linux机器。只要资源和可靠性允许,块服务器和客户端可以运行在同一个机器上。
GFS是典型的集中式元数据服务,所有的元数据都存放在一个主服务器节点内。主服务器维护分布式文件系统所有的元数据,GFS物理上没有目录结构,也不支持链接操作,使用一张表来映射文件路径名和元数据。主服务器维护文件系统所有的元数据,包括名字空间、访问控制信息、从文件到块的映射以及块的当前位置,所有元数据都放在内存中。它也控制系统范围的活动,如块租约(lease)管理,孤儿块的垃圾收集,块服务器间的块迁移。
客户端可以看作是分布式文件系统的接口,负责应用程序与文件系统的沟通。文件划分成固定大小64MB的块,每个块由一个不变的、全局唯一的64bit的chunk handle唯一标识,由主服务器创建时分配,在划分时除了最后一各块,文件所有的块都是满的。所有的客户端读取文件的时候,都需要首先从主服务器上获取元数据信息(master与client之间的元数据传输),获取到元数据信息之后解析得到数据所在的块服务器的ip和块的唯一标识,根据这些信息进一步与块服务器进行交互,读取得到所需要的数据。
块服务器负责存储文件的块,根据客户端提供的块信息,读写块数据,周期性地向主服务器报告本地存储的块状态信息。并且块服务器之间可以相互复制块的副本,默认情况下,保存3个副本,这一点有利于提高系统的可靠性。
本申请的实施例提供了一种基于分布式文件系统的查询方法,由于在系统中设立了多个主服务器,为了简化客户端逐个访问每个主服务器直至查询出需求文件的块数据的位置的过程,本实施例采用访问存储了文件到存储对应文件的元数据的主服务器的映射关系的节点,完成查找并获取对应文件的元数据所在主服务器的位置的过程。所述基于分布式文件系统的查询方法实施例如下:
请参考图1,其示出了根据本申请的实施例提供的基于分布式文件系统的查询方法的流程图。
所述基于分布式文件系统的查询方法包括:
步骤S101,接收客户端发送的请求读取文件的名称。
在本实施例中,由存储了文件到存储对应文件的元数据的主服务器的映射关系的节点接收客户端发送的请求读取文件的名称。具体的,所述节点可以是一个运行在分布式文件系统中的进程,在所述节点中存储了任意文件对应存储了该文件的元数据的主服务器的映射关系,按照具体功能所述节点还可以称为路由节点或目录节点,在下面的描述中简称为节点。
可以理解的,在本分布式文件系统中具有多个主服务器,每个主服务器中都保存着元数据,所述元数据包括:名字空间、访问控制信息、从文件到块的映射以及块的当前位置,且各主服务器中的元数据不发生重叠;所述节点中存储了文件到存储对应文件的元数据的主服务器的映射关系,所述节点即为在本分布式文件系统中多个主服务器的目录结构,使客户端在访问时,不用逐个访问主服务器直至获取到对应文件的存储位置。
在本实施例中,所述接收客户端发送的请求读取文件的名称,可以采用如下方式实现:存储了文件到存储对应文件的元数据的主服务器的映射关系的节点通过TCP/IP连接等网络协议与客户端连接后进行信息交互,所述节点接收所述客户端发送的请求读取文件的名称。例如:所述节点通过以太网与所述客户端进行连接。
在具体实施时,应用程序指定读取某个文件,GFS客户端首先与节点通过以太网进行连接,并与所述节点进行通信,所述节点接收所述客户端发送的需要读取的文件的文件名。
为了使所述节点中存储的文件到存储对应文件的元数据的主服务器的映射关系与全部主服务器的元数据中的文件到对应文件的块数据的映射表保持一致,本实施例的技术方案提供了一种优选实施方式,在优选方式下,当任意主服务器中的目录树发生变化时,所述节点会根据目录树的变化进行同步,具体可以采用如下方式实现:所述节点通过与主服务器直连的网络连接后进行信息交互,所述节点接收主服务器中目录树变化的信息,在所述节点中修改文件到存储对应文件的元数据的主服务器的映射关系。可以理解的,所述节点维护的是文件对应的目录树在哪个主服务器之间的映射关系,所以在目录树发生变化时,所述节点会进行同步。例如:所述直连的网络可以是以太网也可以是内部总线(如PCIe总线)。
由于主服务器维护的元数据都存放在主服务器的内存中,所以主服务器基于客户端发出的文件写入操作更新目录树,并更新主服务器的元数据的文件到对应文件的块数据的映射表后,会增加该主服务器的内存消耗,或者多客户端在访问同一主服务器时会增加该主服务器的内存消耗,为了降低主服务器的内存的消耗,本实施例的技术方案提供了一种优选实施方式,在优选方式下,所述节点会实时检测在分布式文件系统中的各个主服务器的内存消耗,具体包括步骤S100-1至S100-4,下面结合附图2作进一步说明。
请参考图2,其示出了根据本申请的实施例提供的检测在分布式文件系统中每一主服务器的内存消耗的流程图。
步骤S100-1,检测在分布式文件系统中每一主服务器的内存消耗。
在本实施例中,所述节点通过与分布式文件系统中每一主服务器直连的网络,获取各个主服务器的实时内存消耗,例如:在分布式文件系统具有主服务器A、主服务器B以及主服务器C,所述节点同时检测主服务器A、主服务器B以及主服务器C,并获取在某个时刻主服务器A、主服务器B以及主服务器C的内存消耗分别为15%,30%以及76%。
步骤S100-2,判断是否有主服务器的内存消耗超过预设的阈值。
在本步骤中通过步骤S100-1中实时检测的在分布式文件系统中每一主服务器的内存消耗进行判断,判断与所述节点连接的各个主服务器中是否有内存消耗超过预设的阈值的主服务器。例如:所述预设的阈值为80%。
步骤S100-3,若是,则查询内存消耗最低的主服务器
本步骤接收步骤S100-2中的判断结果,若所述节点检测到在分布式文件系统中具有内存消耗超过80%的主服务器,则所述节点根据检测到的各个主服务器的实时内存消耗对各个主服务器进行排序,获取内存消耗最低的主服务器以及该主服务器的位置信息,即:在分布式文件系统中选取运行压力最小的主服务器。
步骤S100-4,将内存消耗超过预设的阈值的主服务器中的目录树转移到查询出的内存消耗最低的主服务器。
在本实施例中,所述将内存消耗超过预设的阈值的主服务器中的目录树转移到查询出的内存消耗最低的主服务器,可以采用如下方式实现:根据内存消耗最低的主服务器的位置信息,将内存消耗超过阈值的主服务器中的目录树以及对应该目录树的元数据通过与内存消耗最低的主服务器直连的网络连接后,转移传输到内存消耗最低的主服务器中,并在内存消耗最低的主服务器的内存中存储相应的元数据。例如:所述直连的网络可以是以太网也可以是内部总线(如PCIe总线)。
需要说明的是,根据内存消耗超过阈值的主服务器中的目录树的数目的不同,将内存消耗超过预设的阈值的主服务器中的目录树转移到查询出的内存消耗最低的主服务器,可以采用如下方式现实:
判断内存消耗超过预设的阈值的主服务器中的目录树的数目是否大于一;
若大于,则将所述主服务器中的任一目录树转移到查询出的内存消耗最低的主服务器;
若不大于,则将所述主服务器中的目录树进行分裂,将分裂出的目录树转移到查询出的内存消耗最低的主服务器。
需要说明的是,内存消耗超过预设的阈值的主服务器中的目录树是在将原先的单主服务器进行扩展时,按照命名空间对目录树进行分片,将每一棵目录树相关的信息记录在同一个主服务器中。若内存消耗超过阈值的主服务器中的目录树的数目大于一,则说明在该主服务器由于具有多个目录树,使存储的元数据数量过多且元数据都存储在内存中,导致该主服务器的内存消耗超过预设的阈值,在此种情况下,需要将所述主服务器中的任一目录树转移到获取的内存消耗最低的主服务器中,由于转移后减少了存储在内存中的元数据使该主服务器的内存消耗降低到预设的阈值之下;若内存消耗超过阈值的主服务器中的目录树的数目不大于一,则说明在该主服务器中目录树只有一棵,由于该主服务器中存储的元数据数量过多且元数据都存储在内存中,导致该主服务器的内存消耗超过预设的阈值,在此种情况下,需要将内存消耗超过预设的阈值的主服务器中的目录树进行分裂,将分裂出的目录树转移到获取的内存消耗最低的主服务器,由于将目录树进行分裂并将分裂出的目录树进行转移,减少了存储在内存中的元数据使该主服务器的内存消耗降低到预设的阈值之下。
在具体实施时,所述将内存消耗超过预设的阈值的主服务器中的目录树进行分裂,可以是在目录树中选取任一具有子结点的结点(即:不能选择叶子结点),在选取出结点后在所述结点的位置将所述主服务器中的目录树进行分裂。
需要说明的是,结点表示目录树中的数据元素,由数据项和数据元素之间的关系组成;叶子结点表示结点所拥有的子树的个数为0的结点,也叫终端结点。可以理解的,在选取任一具有子结点的结点时,该结点的层次越高,在分裂后减少的内存消耗就越多,反之减少的内存消耗就越少。
可以理解的,内存消耗超过阈值的主服务器中的目录树的数目大于一的原因可以是:接收了其他主服务器转移的分裂出的目录树后,增加了存储在内存中的元数据,使该主服务器的内存消耗超过了预设的阈值,或者是根据命名空间进行分片时,将全局目录树的一个或者几个子目录树放入了相同的主服务器。
此外,在执行步骤S100-4,将内存消耗超过预设的阈值的主服务器中的目录树转移到查询出的内存消耗最低的主服务器时,为了保证数据的一致性,在目录树的转移过程中,需要阻塞客户端的请求。
步骤S103,根据所述文件的名称查询在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,获取所述客户端请求读取的文件对应的主服务器的位置信息。
在本实施例中,所述根据所述文件的名称查询在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,获取所述客户端请求读取的文件对应的主服务器的位置信息,可以采用如下方式实现:根据所述文件的名称,遍历在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,查询与所述文件的名称相同的文件到存储了对应文件的元数据的主服务器的映射关系,并根据映射获取所述客户端请求读取的文件对应的主服务器的位置信息。
所述根据所述文件的名称查询在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,获取所述客户端请求读取的文件对应的主服务器的位置信息,具体包括步骤S103-1至S103-2,下面结合附图3作进一步说明。
请参考图3,其示出了根据本申请的实施例提供的根据所述文件的名称查询在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,获取所述客户端请求读取的文件对应的主服务器的位置信息的流程图。
步骤S103-1,遍历当前节点中全部文件到对应文件的主服务器的映射关系,查询映射关系中的元素与所述客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系。
需要说明的是,由于所述节点实现的是文件名到主服务器的映射关系,所以所述节点中的每条映射关系中只有2个元素,一个是元素是文件的名称,另一个元素是对应该文件的主服务器的名称和位置信息,所以所述遍历当前节点中全部文件到对应文件的主服务器的映射关系,查询映射关系中的元素与所述客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系,可以采用如下方式实现:通过在步骤S101中接收到的所述文件的名称,遍历查询所述节点中的每条映射关系,获取映射关系中表述文件名称的元素与接收到的所述文件的名称相同的映射关系。
步骤S103-2,获取查询出的映射关系中携带的主服务器的位置信息。
在本实施例中,所述获取查询出的映射关系中携带的主服务器的位置信息,可以采用如下方式实现:读取在步骤S103-1中查询出的映射关系中的另一个元素,并获取该元素描述的对应该文件的主服务器的名称和位置信息。
步骤S105,向所述客户端发送该客户端请求读取的文件对应的主服务器的位置信息。
在本实施例中,所述向所述客户端发送该客户端请求读取的文件对应的主服务器的位置信息,可以采用如下方式实现:存储了文件到存储对应文件的元数据的主服务器的映射关系的节点通过TCP/IP连接等网络协议与客户端连接后进行信息交互,所述节点向所述客户端发送该客户端请求读取的文件对应的主服务器的位置信息。
在上述的实施例中,提供了一种基于分布式文件系统的查询方法,与上述基于分布式文件系统的查询方法相对应的,本申请还提供了一种基于分布式文件系统的查询装置。由于装置的实施例基本相似于方法的实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。所述基于分布式文件系统的查询装置实施例如下:
请参考图4,其示出了根据本申请的实施例提供的基于分布式文件系统的查询装置的示意图。
所述基于分布式文件系统的查询装置,包括:接收单元401、位置获取单元403以及位置发送单元405;
所述接收单元401,用于接收客户端发送的请求读取文件的名称;
所述位置获取单元403,用于根据所述文件的名称查询在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,获取所述客户端请求读取的文件对应的主服务器的位置信息;
所述位置发送单元405,用于向所述客户端发送该客户端请求读取的文件对应的主服务器的位置信息。
可选的,所述位置获取单元403,包括:主服务器查询子单元以及位置信息获取子单元;
所述主服务器查询子单元,用于遍历当前节点中全部文件到对应文件的主服务器的映射关系,查询映射关系中的元素与所述客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系;
所述位置信息获取子单元,用于获取查询出的映射关系中携带的主服务器的位置信息。
可选的,所述基于分布式文件系统的查询装置,还包括:内存检测单元、阈值判断单元、低消耗服务器查询单元以及目录树转移单元;
所述内存检测单元,用于检测在分布式文件系统中每一主服务器的内存消耗;
所述阈值判断单元,用于判断是否有主服务器的内存消耗超过预设的阈值;
所述低消耗服务器查询单元,用于接收所述阈值判断单元的判断结果,若是,则查询内存消耗最低的主服务器;
所述目录树转移单元,用于将内存消耗超过预设的阈值的主服务器中的目录树转移到查询出的内存消耗最低的主服务器。
可选的,所述目录树转移单元,包括:数目判断子单元、目录树转移子单元以及目录树分裂子单元;
所述数目判断子单元,用于判断内存消耗超过预设的阈值的主服务器中的目录树的数目是否大于一;
所述目录树转移子单元,用于接收所述数目判断子单元的判断结果,若大于,则将所述主服务器中的任一目录树转移到查询出的内存消耗最低的主服务器;
所述目录树分裂子单元,用于接收所述数目判断子单元的判断结果,若不大于,则将所述主服务器中的目录树进行分裂,将分裂出的目录树转移到查询出的内存消耗最低的主服务器。
可选的,所述目录树分裂子单元,包括:结点选取子单元以及结点分裂子单元;
所述结点选取子单元,用于选取所述主服务器中的目录树中任一具有子结点的结点;
所述结点分裂子单元,用于在所述结点的位置将所述主服务器中的目录树进行分裂。
在上述的实施例中,提供了一种基于分布式文件系统的查询方法以及一种基于分布式文件系统的查询装置,此外,本申请还提供了一种电子设备;所述电子设备实施例如下:
请参考图5,其示出了根据本申请的实施例提供的电子设备的示意图。
所述电子设备,包括:显示器501;处理器503;存储器505;
所述存储器505,用于存储查询程序,所述程序在被所述处理器读取执行时,执行如下操作:接收客户端发送的请求读取文件的名称;根据所述文件的名称查询在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,获取所述客户端请求读取的文件对应的主服务器的位置信息;向所述客户端发送该客户端请求读取的文件对应的主服务器的位置信息。
在上述的实施例中,提供了一种基于分布式文件系统的查询方法、一种基于分布式文件系统的查询装置以及一种电子设备,此外,本申请还提供了一种基于分布式文件系统的访问方法;所述基于分布式文件系统的访问方法实施例如下:
请参考图6,其示出了根据本申请的实施例提供的基于分布式文件系统的访问方法的流程图。
所述基于分布式文件系统的访问方法,包括:
步骤S601,向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称。
在本实施例中,所述向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称,可以采用如下方式实现:客户端通过TCP/IP连接等网络协议与存储了文件到存储对应文件的元数据的主服务器映射关系的节点连接后进行信息交互,所述客户端将请求读取文件的名称发送给所述节点。例如:所述客户端通过以太网与所述节点进行连接。
在具体实施时,应用程序指定读取某个文件,GFS客户端首先与节点通过以太网进行连接,并与所述节点进行通信,所述客户端向所述节点发送的需要读取的文件的文件名。
因为所有的客户端都会通过所述节点查询该客户端需求的文件的存储位置,所以所述节点会成为分布式文件系统的访问热点,为了缓解所述节点的访问压力,在所述向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称之前,需要判断本地缓存中是否存储请求读取的文件的位置信息,若在本地内存或磁盘中缓存有需求读取的文件的位置信息,则不执行所述向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称的步骤,并根据本地缓存中存储请求读取的文件的位置信息,通过TCP/IP连接等网络协议向对应的块数据服务器发送获取对应块数据的请求。
需要说明的是,本地内存或磁盘中缓存的请求读取的文件的位置信息的缓存时间是具有时限的,在缓存过期前客户端对该文件的操作只需直接与块数据服务器进行联系,不需要在向节点进行请求,缓存过期后客户端再根据所述位置信息访问块数据数据库则无法命中。
步骤S603,接收所述节点基于查询操作发送的请求读取的文件对应的主服务器的位置信息。
在本实施例中,所述接收所述节点基于查询操作发送的请求读取的文件对应的主服务器的位置信息,可以采用如下方式实现:客户端通过TCP/IP连接等网络协议与所述节点连接后进行信息交互,接收所述节点基于查询操作发送的请求读取的文件对应的主服务器的位置信息。
步骤S605,根据所述位置信息向对应的主服务器发送读取文件的请求;所述请求包括:请求读取的文件的名称。
在本实施例中,所述根据所述位置信息向对应的主服务器发送读取文件的请求;所述请求包括:请求读取的文件的名称,可以采用如下方式实现:客户端通过TCP/IP连接等网络协议位于所述位置信息上的主服务器连接后进行信息交互,所述客户端将请求读取的文件的名称放入访问主服务器的请求中,向所述主服务器发送读取文件的请求。例如:所述客户端通过以太网与所述节点进行连接。
需要说明的是,所述客户端向所述主服务器发送的读取文件的请求中,还可以包括块索引。所述块索引是指定读取某个文件时,因为数据块是定长的,所以客户端可以通过文件的大小和定长的数据块计算出这个文件跨越了几个数据块。在计算出对应文件的块索引后,在步骤S605中,所述客户端向所述主服务器发送包含文件名和块索引的读取文件的请求。
步骤S607,接收所述主服务器基于查询操作发送的所述读取的文件的位置信息。
在本实施例中,所述接收所述主服务器基于查询操作发送的所述读取的文件的位置信息,可以采用如下方式实现:客户端通过TCP/IP连接等网络协议与所述主服务器连接后进行信息交互,接收所述主服务器基于查询操作发送的请求读取的文件的位置信息。其中所述读取的文件的位置信息包括:对应所述名称的文件的全部块数据的位置信息以及块数据的标识。
例如:该客户端请求读取的文件的名称为A,大小为150M,则接收的所述节点基于查询操作发送的请求读取的文件的位置信息中,包括2个大小为64M的块数据和一个22M的块数据,且3个块数据分别存储在块数据服务器A,B,C中。
因为所有的客户端都会通过节点查询该客户端需求的文件对应的主服务器从而获取需求文件的存储位置,所以所述节点会成为分布式文件系统的访问热点,为了缓解所述节点的访问压力,在所述接收所述主服务器基于查询操作发送的所述读取的文件的位置信息的步骤之后,可将请求读取的文件的位置信息进行缓存,在本地缓存中存储接收的所述节点发送的请求读取的文件的位置信息。例如:数据可根据业务特性缓存在本地内存或磁盘。
需要说明的是,本地内存或磁盘中缓存的请求读取的文件的位置信息的缓存时间是具有时限的,缓存过期后客户端再根据所述位置信息访问块数据数据库则无法命中。
在执行完步骤S607接收所述主服务器基于查询操作发送的所述读取的文件的位置信息,并在本地缓存中存储接收的所述主服务器基于查询操作发送的所述读取的文件的位置信息后,客户端通过解析接收到的所述主服务器基于查询操作发送的所述读取的文件的位置信息,获取对应文件的块数据所在的块数据服务器的位置(IP地址)和块数据的标识,并根据解析出的这些信息进一步与块数据服务器进行交互,具体包括如下步骤:
根据所述文件的位置信息向对应的块数据服务器发送获取对应块数据的请求;
接收所述块数据服务器发送的对应的块数据。
可以理解的,客户端根据所述主服务器返回的对应需求文件的块数据所在的块数据服务器的位置和块数据的标识作为获取对应块数据的请求,向对应的块数据服务器发送获取对应块数据的请求,同时,块数据服务器根据客户端发送的请求查询出块数据,将对应的数据块发送给客户端。在客户端与块数据服务器进行交互时是通过TCP/IP连接等网络协议进行连接的。
在上述的实施例中,提供了一种基于分布式文件系统的访问方法,与上述基于分布式文件系统的访问方法相对应的,本申请还提供了一种基于分布式文件系统的访问装置。由于装置的实施例基本相似于方法的实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。所述基于分布式文件系统的访问装置实施例如下:
请参考图7,其示出了根据本申请的实施例提供的基于分布式文件系统的访问装置的示意图。
所述基于分布式文件系统的访问装置,包括:文件名称发送单元701、主服务器位置信息接收单元703、请求发送单元705以及位置信息接收单元707;
所述文件名称发送单元701,用于向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称;
所述主服务器位置信息接收单元703,用于主服务器位置信息接收单元,用于接收所述节点基于查询操作发送的请求读取的文件对应的主服务器的位置信息;
所述请求发送单元705,用于请求发送单元,用于根据所述位置信息向对应的主服务器发送读取文件的请求;所述请求包括:请求读取的文件的名称;
所述位置信息接收单元707,用于位置信息接收单元,用于接收所述主服务器基于查询操作发送的所述读取的文件的位置信息。
可选的,所述位置信息接收单元707,具体用于接收所述主服务器基于查询操作发送的对应所述名称的文件的全部块数据的位置信息。
可选的,所述基于分布式文件系统的访问装置,还包括:位置存储单元;
所述位置存储单元,用于在所述接收所述主服务器基于查询操作发送的所述读取的文件的位置信息之后,在本地缓存中存储接收的所述主服务器基于查询操作发送的所述读取的文件的位置信息。
可选的,所述基于分布式文件系统的访问装置,还包括:块数据请求单元以及块数据接收单元;
所述块数据请求单元,用于在所述在本地缓存中存储接收的所述主服务器基于查询操作发送的所述读取的文件的位置信息之后,根据所述文件的位置信息向对应的块数据服务器发送获取对应块数据的请求;
所述块数据接收单元,用于接收所述块数据服务器发送的对应的块数据。
可选的,所述基于分布式文件系统的访问装置,还包括:缓存判断单元以及块数据请求触发单元;
所述缓存判断单元,用于在所述向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称之前,判断本地缓存中是否存储请求读取的文件的位置信息;
所述块数据请求触发单元,用于接收所述缓存判断单元的判断结果,若是,则不触发所述请求发送单元,并触发所述块数据请求单元。
在上述的实施例中,提供了一种基于分布式文件系统的查询方法、一种基于分布式文件系统的查询装置、一种电子设备、一种基于分布式文件系统的访问方法以及一种基于分布式文件系统的访问装置,此外,本申请还提供了另一种电子设备;所述电子设备实施例如下:
请参考图8,其示出了根据本申请的实施例提供的电子设备的示意图。
所述电子设备,包括:显示器801;处理器803;存储器805;
所述存储器805,用于存储访问程序,所述程序在被所述处理器读取执行时,执行如下操作:向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称;接收所述节点基于查询操作发送的请求读取的文件对应的主服务器的位置信息;根据所述位置信息向对应的主服务器发送读取文件的请求;所述请求包括:请求读取的文件的名称;接收所述主服务器基于查询操作发送的所述读取的文件的位置信息。
在上述的实施例中,提供了一种基于分布式文件系统的查询方法、一种基于分布式文件系统的查询装置、一种电子设备、一种基于分布式文件系统的访问方法、一种基于分布式文件系统的访问装置以及另一种电子设备,此外,本申请还提供了一种主服务器的分片方法;所述主服务器的分片方法实施例如下:
请参考图9,其示出了根据本申请的实施例提供的主服务器的分片方法的流程图。
所述主服务器的分片方法,包括:
步骤S901,将所述主服务器中的目录树按照命名空间进行分片,并获取分片后的目录树数目M。
在本实施例中,所述将所述主服务器中的目录树按照命名空间进行分片,并获取分片后的目录树数目M,可以采用如下方式实现:将分布式文件系统中原先的单主服务器中的目录树按照命名空间进行分片,按照分片结果获取分片后的目录树数目M。
例如:将分布式文件系统中原先的单主服务器中的目录树按照命名空间进行分片后,将每一棵相关的目录树分成一组,按照分片结果获取分片后的目录树数目为3。
步骤S903,获取预设的扩展后的主服务器数目N。
在本实施例中,所述获取预设的扩展后的主服务器数目N是指:将原先系统中的单主服务器的数量进行扩展,在系统中按照预设的数量设置N个与原先主服务器参数相同的主服务器,并获取扩展后的主服务器数目N。
例如:预设的扩展后的主服务器数目N为3,则在系统中新设置2个与元主服务器参数相同的主服务器。
步骤S905,将获取的所述目录树的数目M除以所述预设的主服务器扩展数目N,将分片后的目录树均匀分配在各主服务器中。
在本实施例中,本步骤接收步骤S1001和步骤S1003中已获取的分片后的目录树数目M和预设的扩展后的主服务器数目N,并将所述分片后的目录树数目M除以所述预设的扩展后的主服务器数目N,获得每个主服务器中需要分配的目录树的数量,为每个主服务器中分配与计算出的数量相同的目录树。
例如:按照分片结果获取分片后的目录树数目为3,预设的扩展后的主服务器数目N为3,则将分片后的目录树的数目3除以扩展后的主服务器数目3,获得每个主服务器中需要分配的目录树的数量,即:为每个主服务器中分配1个目录树。
需要说明的是,在将所述分片后的目录树数目M除以所述预设的扩展后的主服务器数目N,获得每个主服务器中需要分配的目录树的数量时,由于所述分片后的目录树数目可能无法整除所述所述预设的扩展后的主服务器数目,所以每个主服务器中需要分配的目录树的数量,是取整后的数值。在步骤S1005中将获取的所述目录树的数目M除以所述预设的主服务器扩展数目N,将分片后的目录树均匀分配在各主服务器中的取整方式包括以下两种方式:
第一种方式是:去除所述分片后的目录树数目除以所述预设的扩展后的主服务器数目所获得值的小数位,将剩余的目录树按照主服务器的编号进行分配直至分配完剩余的目录树;
第二种方式是:所述分片后的目录树数目除以所述预设的扩展后的主服务器数目所获得值,若存在小数位,则取大于该获得值的最小整数。例如:分片后的目录树数目为6,预设的扩展后的主服务器数目为4,则将获取的所述目录树的数目6除以所述预设的主服务器扩展数目4所获得值为1.5,则为每个主服务器分配2棵目录树,在主服务器1,2,3中分配2棵目录树,将主服务器4作为空闲主服务器。
当然,也不排除使用四舍五入或者其他方式进行取证,不论采取何种取整方式,最终的取整效果必然与上述两种方式中的一种相同。
在上述的实施例中,提供了一种主服务器的分片方法,与上述主服务器的分片方法相对应的,本申请还提供了一种主服务器的分片装置。由于装置的实施例基本相似于方法的实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。所述主服务器的分片装置实施例如下:
请参考图10,其示出了根据本申请的实施例提供的主服务器的分片装置的示意图。
所述主服务器的分片装置,包括:分片单元1001、主服务器数目扩展单元1003以及分配单元1005;
所述分片单元1001,用于将所述主服务器中的目录树按照命名空间进行分片,并获取分片后的目录树数目M;
所述主服务器数目扩展单元1003,用于获取预设的扩展后的主服务器数目N;
所述分配单元1005,用于将获取的所述目录树的数目M除以所述预设的主服务器扩展数目N,将分片后的目录树均匀分配在各主服务器中。
在上述的实施例中,提供了一种基于分布式文件系统的查询方法、一种基于分布式文件系统的查询装置、一种电子设备、一种基于分布式文件系统的访问方法、一种基于分布式文件系统的访问装置、另一种电子设备、一种主服务器的分片方法以及一种主服务器的分片装置,此外,本申请还提供了一种分布式文件系统;所述分布式文件系统实施例如下:
请参考图11,其示出了根据本申请的实施例提供的分布式文件系统的示意图。
所述分布式文件系统,包括:基于分布式文件系统的查询装置1101、基于分布式文件系统的访问装置1103以及主服务器的分片装置1105;
其中,所述基于分布式文件系统的查询装置1101,用于接收客户端发送的读取文件的请求;所述请求包括:该客户端请求读取的文件的名称,根据所述请求查询并遍历在当前节点中存储的全部主服务器的文件到存储对应文件位置的映射关系,获取所述客户端请求读取的文件的位置信息,并向所述客户端发送该客户端请求读取的文件的位置信息;
所述基于分布式文件系统的访问装置1103,用于向存储全部主服务器的文件到存储对应文件位置的映射关系的节点发送读取文件的请求;所述请求包括:请求读取的文件的名称,并接收所述节点基于查询操作发送的请求读取的文件的位置信息;
所述主服务器的分片装置1105,用于将所述主服务器中的目录树按照命名空间进行分片,并获取分片后的目录树数目M,获取预设的扩展后的主服务器数目N,并将获取的所述目录树的数目M除以所述预设的主服务器扩展数目N,将分片后的目录树均匀分配在各主服务器中。
所述基于分布式文件系统的查询装置1101、所述基于分布式文件系统的访问装置1103以及所述主服务器的分片装置1105均可以布置于计算机上,但并不局限于这种设备,可以是能够实现上述方法的任何设备,其中,所述基于分布式文件系统的查询装置1101和所述主服务器的分片装置1205通常是运行用户层服务进程的Linux机器。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
Claims (20)
1.一种基于分布式文件系统的查询方法,其特征在于,所述分布式文件系统中设立多个主服务器,所述方法包括:
接收客户端发送的请求读取文件的名称;
根据所述文件的名称查询在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,获取所述客户端请求读取的文件对应的主服务器的位置信息,包括:遍历当前节点中全部文件到对应文件的主服务器的映射关系,查询映射关系中的元素与所述客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系,获取查询出的映射关系中携带的主服务器的位置信息;
其中,所述映射关系中的元素包括文件的名称,所述查询映射关系中的元素与所述客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系,包括:获取映射关系中表述文件名称的元素与接收到的所述文件的名称相同的映射关系;
向所述客户端发送该客户端请求读取的文件对应的主服务器的位置信息。
2.根据权利要求 1 所述的基于分布式文件系统的查询方法,其特征在于,还包括:
检测在分布式文件系统中每一主服务器的内存消耗;
判断是否有主服务器的内存消耗超过预设的阈值;
若是,则查询内存消耗最低的主服务器;
将内存消耗超过预设的阈值的主服务器中的目录树转移到查询出的内存消耗最低的主服务器。
3.根据权利要求 2 所述的基于分布式文件系统的查询方法,其特征在于,所述将内存消耗超过预设的阈值的主服务器中的目录树转移到查询出的内存消耗最低的主服务器,包括:
判断内存消耗超过预设的阈值的主服务器中的目录树的数目是否大于一;
若大于,则将所述主服务器中的任一目录树转移到查询出的内存消耗最低的主服务器;
若不大于,则将所述主服务器中的目录树进行分裂,将分裂出的目录树转移到查询出的内存消耗最低的主服务器。
4.根据权利要求 3 所述的基于分布式文件系统的查询方法,其特征在于,所述将所述主服务器中的目录树进行分裂,包括:
选取所述主服务器中的目录树中任一具有子结点的结点;
在所述结点的位置将所述主服务器中的目录树进行分裂。
5.一种基于分布式文件系统的查询装置,其特征在于,所述分布式文件系统中设立多个主服务器,所述装置包括:
接收单元,用于接收客户端发送的请求读取文件的名称;
位置获取单元,用于根据所述文件的名称查询在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,获取所述客户端请求读取的文件对应的主服务器的位置信息;
位置发送单元,用于向所述客户端发送该客户端请求读取的文件对应的主服务器的位置信息;
所述位置获取单元,包括:主服务器查询子单元,用于遍历当前节点中全部文件到对应文件的主服务器的映射关系,查询映射关系中的元素与所述客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系;
其中,所述映射关系中的元素包括文件的名称,所述查询映射关系中的元素与所述客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系,包括:获取映射关系中表述文件名称的元素与接收到的所述文件的名称相同的映射关系;
位置信息获取子单元,用于获取查询出的映射关系中携带的主服务器的位置信息。
6.根据权利要求5所述的基于分布式文件系统的查询装置,其特征在于,还包括:
内存检测单元,用于检测在分布式文件系统中每一主服务器的内存消耗;
阈值判断单元,用于判断是否有主服务器的内存消耗超过预设的阈值;
低消耗服务器查询单元,用于接收所述阈值判断单元的判断结果,若是,则查询内存消耗最低的主服务器;
目录树转移单元,用于将内存消耗超过预设的阈值的主服务器中的目录树转移到查询出的内存消耗最低的主服务器。
7.根据权利要求6所述的基于分布式文件系统的查询装置,其特征在于,所述目录树转移单元,包括:
数目判断子单元,用于判断内存消耗超过预设的阈值的主服务器中的目录树的数目是否大于一;
目录树转移子单元,用于接收所述数目判断子单元的判断结果,若大于,则将所述主服务器中的任一目录树转移到查询出的内存消耗最低的主服务器;
目录树分裂子单元,用于接收所述数目判断子单元的判断结果,若不大于,则将所述主服务器中的目录树进行分裂,将分裂出的目录树转移到查询出的内存消耗最低的主服务器。
8.根据权利要求7所述的基于分布式文件系统的查询装置,其特征在于,所述目录树分裂子单元,包括:
结点选取子单元,用于选取所述主服务器中的目录树中任一具有子结点的结点;
结点分裂子单元,用于在所述结点的位置将所述主服务器中的目录树进行分裂。
9.一种电子设备,其特征在于,所述电子设备包括:
显示器;
处理器;
存储器,用于存储查询程序,所述程序在被所述处理器读取执行时,执行如下操作:接收客户端发送的请求读取文件的名称;根据所述文件的名称查询在当前节点中存储的文件到存储了对应文件的元数据的主服务器的映射关系,获取所述客户端请求读取的文件对应的主服务器的位置信息,包括:遍历当前节点中全部文件到对应文件的主服务器的映射关系,查询映射关系中的元素与所述客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系,获取查询出的映射关系中携带的主服务器的位置信息;
其中,所述映射关系中的元素包括文件的名称,所述查询映射关系中的元素与所述客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系,包括:获取映射关系中表述文件名称的元素与接收到的所述文件的名称相同的映射关系;向所述客户端发送该客户端请求读取的文件对应的主服务器的位置信息。
10.一种基于分布式文件系统的访问方法,其特征在于,所述分布式文件系统中设立多个主服务器,所述方法包括:
向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称;
接收所述节点基于查询操作发送的请求读取的文件对应的主服务器的位置信息,包括:遍历当前节点中全部文件到对应文件的主服务器的映射关系,查询映射关系中的元素与客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系;
其中,所述映射关系中的元素包括文件的名称,所述查询映射关系中的元素与所述客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系,包括:获取映射关系中表述文件名称的元素与接收到的所述文件的名称相同的映射关系;
根据所述位置信息向对应的主服务器发送读取文件的请求;所述请求包括:请求读取的文件的名称;
接收所述主服务器基于查询操作发送的所述读取的文件的位置信息。
11.根据权利要求 10 所述的基于分布式文件系统的访问方法,其特征在于,所述读取的文件的位置信息,包括:
对应所述名称的文件的全部块数据的位置信息。
12.根据权利要求 10所述的基于分布式文件系统的访问方法,其特征在于,在所述接收所述主服务器基于查询操作发送的所述读取的文件的位置信息的步骤之后,包括:
在本地缓存中存储接收的所述主服务器基于查询操作发送的所述读取的文件的位置信息。
13.根据权利要求 12 所述的基于分布式文件系统的访问方法,其特征在于,在所述在本地缓存中存储接收的所述主服务器基于查询操作发送的所述读取的文件的位置信息的步骤之后,包括:
根据所述文件的位置信息向对应的块数据服务器发送获取对应块数据的请求;
接收所述块数据服务器发送的对应的块数据。
14.根据权利要求13所述的基于分布式文件系统的访问方法,其特征在于,在所述向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称的步骤之前,包括:
判断本地缓存中是否存储请求读取的文件的位置信息;
若是,则不执行所述向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称的步骤,并触发所述根据所述文件的位置信息向对应的块数据服务器发送获取对应块数据的请求的步骤。
15.一种基于分布式文件系统的访问装置,其特征在于,所述分布式文件系统中设立多个主服务器,所述装置包括:
文件名称发送单元,用于向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称;
主服务器位置信息接收单元,用于接收所述节点基于查询操作发送的请求读取的文件对应的主服务器的位置信息,包括:遍历当前节点中全部文件到对应文件的主服务器的映射关系,查询映射关系中的元素与客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系;
其中,所述映射关系中的元素包括文件的名称,所述查询映射关系中的元素与所述客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系,包括:获取映射关系中表述文件名称的元素与接收到的所述文件的名称相同的映射关系;
请求发送单元,用于根据所述位置信息向对应的主服务器发送读取文件的请求;所述请求包括:请求读取的文件的名称;
位置信息接收单元,用于接收所述主服务器基于查询操作发送的所述读取的文件的位置信息。
16.根据权利要求 15 所述的基于分布式文件系统的访问装置,其特征在于,所述位置信息接收单元具体用于接收所述主服务器基于查询操作发送的对应所述名称的文件的全部块数据的位置信息。
17.根据权利要求 16所述的基于分布式文件系统的访问装置,其特征在于,还包括:
位置存储单元,用于在所述接收所述主服务器基于查询操作发送的所述读取的文件的位置信息之后,在本地缓存中存储接收的所述主服务器基于查询操作发送的所述读取的文件的位置信息。
18.根据权利要求 17 所述的基于分布式文件系统的访问装置,其特征在于,还包括:
块数据请求单元,用于在所述在本地缓存中存储接收的所述主服务器基于查询操作发送的所述读取的文件的位置信息之后,根据所述文件的位置信息向对应的块数据服务器发送获取对应块数据的请求;
块数据接收单元,用于接收所述块数据服务器发送的对应的块数据。
19.根据权利要求 18所述的基于分布式文件系统的访问装置,其特征在于,还包括:
缓存判断单元,用于在所述向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称之前,判断本地缓存中是否存储请求读取的文件的位置信息;
块数据请求触发单元,用于接收所述缓存判断单元的判断结果,若是,则不触发所述请求发送单元,并触发所述块数据请求单元。
20.一种电子设备,其特征在于,所述电子设备包括:
显示器;
处理器;
存储器,用于存储访问程序,所述程序在被所述处理器读取执行时,执行如下操作:向存储了文件到存储对应文件的元数据的主服务器映射关系的节点发送请求读取文件的名称;接收所述节点基于查询操作发送的请求读取的文件对应的主服务器的位置信息,包括:遍历当前节点中全部文件到对应文件的主服务器的映射关系,查询映射关系中的元素与客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系;其中,所述映射关系中的元素包括文件的名称,所述查询映射关系中的元素与所述客户端请求读取的文件的名称相同的文件到对应文件的主服务器的映射关系,包括:获取映射关系中表述文件名称的元素与接收到的所述文件的名称相同的映射关系;根据所述位置信息向对应的主服务器发送读取文件的请求;所述请求包括:请求读取的文件的名称;接收所述主服务器基于查询操作发送的所述读取的文件的位置信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610512696.5A CN107562757B (zh) | 2016-07-01 | 2016-07-01 | 基于分布式文件系统的查询、访问方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610512696.5A CN107562757B (zh) | 2016-07-01 | 2016-07-01 | 基于分布式文件系统的查询、访问方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107562757A CN107562757A (zh) | 2018-01-09 |
CN107562757B true CN107562757B (zh) | 2021-08-10 |
Family
ID=60969121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610512696.5A Active CN107562757B (zh) | 2016-07-01 | 2016-07-01 | 基于分布式文件系统的查询、访问方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107562757B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299111A (zh) * | 2018-11-14 | 2019-02-01 | 郑州云海信息技术有限公司 | 一种元数据查询方法、装置、设备及计算机可读存储介质 |
CN111343225B (zh) * | 2018-12-19 | 2024-04-09 | 三六零科技集团有限公司 | 一种文件处理方法和装置 |
CN111400266B (zh) * | 2019-01-02 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 数据处理方法和系统、操作事件的诊断处理方法和装置 |
CN109857719B (zh) * | 2019-01-23 | 2024-03-01 | 平安科技(深圳)有限公司 | 分布式文件处理方法、装置、计算机设备以及存储介质 |
CN110032543A (zh) * | 2019-04-15 | 2019-07-19 | 苏州浪潮智能科技有限公司 | 一种存储文件系统的管理方法 |
CN112416871B (zh) * | 2019-08-23 | 2023-10-13 | 华为技术有限公司 | 一种数据访问的方法、装置及系统 |
CN110765086B (zh) * | 2019-10-25 | 2022-08-02 | 浪潮电子信息产业股份有限公司 | 一种小文件的目录读取方法、系统、电子设备及存储介质 |
CN111737204B (zh) * | 2020-06-12 | 2024-03-19 | 北京百度网讯科技有限公司 | 文件目录遍历方法、装置、设备和介质 |
CN112100152A (zh) * | 2020-09-14 | 2020-12-18 | 广州华多网络科技有限公司 | 业务数据处理方法、系统、服务器和可读存储介质 |
CN115391293B (zh) * | 2022-08-17 | 2023-09-12 | 昆仑数智科技有限责任公司 | 文件获取方法、装置、服务器及存储介质 |
CN115964353B (zh) * | 2023-03-10 | 2023-08-22 | 阿里巴巴(中国)有限公司 | 一种分布式文件系统及其访问计量方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697526A (zh) * | 2009-10-10 | 2010-04-21 | 中国科学技术大学 | 分布式文件系统中元数据管理的负载均衡方法及其系统 |
CN102024020A (zh) * | 2010-11-04 | 2011-04-20 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统中高效的元数据访存方法 |
CN103198153A (zh) * | 2013-04-25 | 2013-07-10 | 北京邮电大学 | 一种应用于分布式文件系统的元数据分簇管理方法和模块 |
WO2016086649A1 (zh) * | 2014-12-04 | 2016-06-09 | 中兴通讯股份有限公司 | 写、读、删除、查询文件的方法、客户端和存储介质 |
-
2016
- 2016-07-01 CN CN201610512696.5A patent/CN107562757B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697526A (zh) * | 2009-10-10 | 2010-04-21 | 中国科学技术大学 | 分布式文件系统中元数据管理的负载均衡方法及其系统 |
CN102024020A (zh) * | 2010-11-04 | 2011-04-20 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统中高效的元数据访存方法 |
CN103198153A (zh) * | 2013-04-25 | 2013-07-10 | 北京邮电大学 | 一种应用于分布式文件系统的元数据分簇管理方法和模块 |
WO2016086649A1 (zh) * | 2014-12-04 | 2016-06-09 | 中兴通讯股份有限公司 | 写、读、删除、查询文件的方法、客户端和存储介质 |
CN105718484A (zh) * | 2014-12-04 | 2016-06-29 | 中兴通讯股份有限公司 | 写文件、读文件、删除文件、查询文件的方法及客户端 |
Non-Patent Citations (3)
Title |
---|
【常识型】HDFS的工作原理扫扫盲;fc013;《about云开发-学问论坛》;https://www.aboutyun.com/forum.php?mod=viewthread&tid=18075&ordertype=1;20160417;第1-5页 * |
fc013.【常识型】HDFS的工作原理扫扫盲.《about云开发-学问论坛》.https://www.aboutyun.com/forum.php?mod=viewthread&tid=18075&ordertype=1,2016,1-3. * |
分布式文件系统的动态负载均衡算法;张聪萍 等;《小型微信计算机系统》;20110731;第32卷(第7期);第1424-1426页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107562757A (zh) | 2018-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107562757B (zh) | 基于分布式文件系统的查询、访问方法、装置及系统 | |
EP2721504B1 (en) | File processing method, system and server-clustered system for cloud storage | |
US9052962B2 (en) | Distributed storage of data in a cloud storage system | |
CN102708165B (zh) | 分布式文件系统中的文件处理方法及装置 | |
JP6492123B2 (ja) | 分散キャッシングおよびキャッシュ分析 | |
CN103067461B (zh) | 一种文件的元数据管理系统以及元数据管理方法 | |
US20130218934A1 (en) | Method for directory entries split and merge in distributed file system | |
US11048591B1 (en) | Efficient name space organization in a global name space cluster | |
US9355121B1 (en) | Segregating data and metadata in a file system | |
CN110908589B (zh) | 数据文件的处理方法、装置、系统和存储介质 | |
CN109933312B (zh) | 一种有效降低容器化关系型数据库i/o消耗的方法 | |
US10579597B1 (en) | Data-tiering service with multiple cold tier quality of service levels | |
CN108540510B (zh) | 一种云主机创建方法、装置及云服务系统 | |
CN103631820A (zh) | 分布式文件系统的元数据管理方法及设备 | |
US20120297010A1 (en) | Distributed Caching and Cache Analysis | |
CN107493309B (zh) | 一种分布式系统中的文件写入方法及装置 | |
CN112948178A (zh) | 一种数据处理方法、装置、系统、设备及介质 | |
CN114003562B (zh) | 一种目录遍历方法、装置、设备及可读存储介质 | |
CN111225003B (zh) | 一种nfs节点配置方法和装置 | |
CN113032356A (zh) | 一种客舱分布式文件存储系统及实现方法 | |
CN116743780A (zh) | 一种分布式存储系统及方法 | |
JP7392168B2 (ja) | Cdnにおけるurlリフレッシュ方法、装置、機器及びcdnノード | |
Klein et al. | Dxram: A persistent in-memory storage for billions of small objects | |
CN117075823B (zh) | 对象查找方法、系统、电子设备及存储介质 | |
CN111427862B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1249225 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |