CN105468660B - 分布式文件系统的读方法、客户端设备及分布式文件系统 - Google Patents
分布式文件系统的读方法、客户端设备及分布式文件系统 Download PDFInfo
- Publication number
- CN105468660B CN105468660B CN201410521974.4A CN201410521974A CN105468660B CN 105468660 B CN105468660 B CN 105468660B CN 201410521974 A CN201410521974 A CN 201410521974A CN 105468660 B CN105468660 B CN 105468660B
- Authority
- CN
- China
- Prior art keywords
- client device
- storage
- file
- meta data
- metadata
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供的一种分布式文件系统的读方法、客户端设备及分布式文件系统,可以在进行读操作时,首先在客户端设备本地寻找所需的元数据信息。在客户端设备本地存储有所需的元数据信息时,本发明可以直接根据客户端设备本地存储的元数据信息确定所要读取的文件在存储服务器中的存储地址,不再需要从元数据服务器中获取元数据信息,更加方便快捷,节省了时间。相应的,本发明执行读操作的速度也较快。
Description
技术领域
本发明涉及分布式文件系统技术领域,特别是涉及分布式文件系统的读方法、客户端设备及分布式文件系统。
背景技术
分布式文件系统(Distributed File System)是一种基于客户机/服务器模式的文件管理系统,其中,分布式文件系统中的客户机即为客户端设备,分布式文件系统中的服务器包括存储服务器及元数据服务器。分布式文件系统中的数据可以存储在存储服务器中,客户端设备通过网络与存储服务器、元数据服务器连接,在获得元数据服务器中存储的元数据信息后,就可以确定所要读取的数据所对应的地址并从存储服务器获取所要读取的数据。
现有的分布式文件系统的读方法在每次对文件进行读操作时,都需要先向元数据服务器请求查询对应的元数据信息,然后通过获得的元数据信息再到存储服务器中获取文件数据。由于每一次进行读操作都需要从元数据服务器中请求元数据信息,因此现有的分布式文件系统的读方法花费的时间较多,相应的,现有的分布式文件系统读操作的速度也较慢。
发明内容
本发明实施例的目的在于提供分布式文件系统的读方法、客户端设备及分布式文件系统,以减少分布式文件系统进行数据读取花费的时间,并提高分布式文件系统读操作的速度。
为达到上述目的,本发明实施例公开了一种分布式文件系统的读方法,所述分布式文件系统至少包括:客户端设备、存储服务器和元数据服务器,所述客户端设备分别与元数据服务器、存储服务器通信连接,所述读方法应用于客户端设备,所述方法包括:
获得针对所要读取的文件的读指令;
根据所述读指令确定所要读取的文件的标识;
从所述客户端设备本地获取与所述标识对应的元数据信息,根据所述元数据信息确定所述所要读取的文件在所述存储服务器中的存储地址,其中,所述客户端设备本地存储的元数据信息从所述元数据服务器获取得到或者从位于同一客户端设备组的其他客户端设备获取得到;
从所述存储服务器中的所述存储地址中获取所述所要读取的文件。
可选的,还包括:
在所述客户端设备本地未存储有与所述标识对应的元数据信息时,向所述元数据服务器发送元数据信息获取请求,所述请求中包含有所述标识;
获得所述元数据服务器返回的元数据信息并存储在所述客户端设备本地,根据所述元数据服务器返回的元数据信息确定所述所要读取的文件在所述存储服务器中的存储地址。
可选的,所述元数据信息中包含有:文件的标识及与文件的标识对应的存储地址。
可选的,在获得针对所要读取的文件的读指令前,所述方法还包括:
向所述元数据服务器发送元数据信息备份请求;
获得所述元数据服务器发送的多个元数据信息,以对所述元数据服务器中的元数据信息进行备份。
可选的,在对所述元数据服务器中的元数据信息进行备份后,所述方法还包括:
按照预设的更新时间周期,向所述元数据服务器发送元数据信息更新请求;
获得所述元数据服务器发送的更新数据并更新所述客户端设备本地存储的元数据信息。
可选的,所述文件的标识包括:文件编号和文件块号。
可选的,所述分布式文件系统中包括有至少一个客户端设备组,每个所述客户端设备组中包括至少两个客户端设备,任一客户端设备中均备份有该客户端设备所在的客户端设备组中其他客户端设备存储的元数据信息。
可选的,所述从所述存储服务器中的所述存储地址中获取所述所要读取的文件,包括:
确定根据所述元数据信息所确定的多个存储地址所在的存储服务器的数量;
在所述数量不小于两个时,获得所述多个存储地址所在的存储服务器的硬件参数信息和/或运行参数信息;
根据所获得的存储服务器的参数信息从所述多个存储地址所在的存储服务器中选择一个作为读取服务器;
从所述读取服务器对应的存储地址中获取所述所要读取的文件。
可选的,所述运行参数信息至少包括运行负载信息,所述硬件参数信息至少包括:存储服务器的可用空间信息。
一种分布式文件系统中的客户端设备,所述分布式文件系统至少包括:客户端设备、存储服务器和元数据服务器,所述客户端设备分别与元数据服务器、存储服务器通信连接,所述客户端设备包括:读指令获得单元、标识确定单元、第一地址确定单元和文件读取单元;
所述读指令获得单元,用于获得针对所要读取的文件的读指令;
所述标识确定单元,用于根据所述读指令确定所要读取的文件的标识;
所述第一地址确定单元,用于从所述客户端设备本地获取与所述标识对应的元数据信息,根据所述元数据信息确定所述所要读取的文件在所述存储服务器中的存储地址,其中,所述客户端设备本地存储的元数据信息从所述元数据服务器获取得到或者从位于同一客户端设备组的其他客户端设备获取得到;
所述文件读取单元,用于从所述存储服务器中的所述存储地址中获取所述所要读取的文件。
可选的,还包括:元数据请求单元、元数据存储单元和第二地址确定单元,
所述元数据请求单元,用于在所述客户端设备本地未存储有与所述标识对应的元数据信息时,向所述元数据服务器发送元数据信息获取请求,所述请求中包含有所述标识;
所述元数据存储单元,用于获得所述元数据服务器返回的元数据信息并存储在所述客户端设备本地;
所述第二地址确定单元,用于根据所述元数据服务器返回的元数据信息确定所述所要读取的文件在所述存储服务器中的存储地址。
可选的,所述元数据信息中包含有:文件的标识及与文件的标识对应的存储地址。
可选的,还包括:备份请求单元和备份单元,
所述备份请求单元,用于在所述读指令获得单元获得针对所要读取的文件的读指令前,向所述元数据服务器发送元数据信息备份请求;
所述备份单元,用于获得所述元数据服务器发送的多个元数据信息,以对所述元数据服务器中的元数据信息进行备份。
可选的,还包括:更新请求单元和更新单元,
所述更新请求单元,用于在所述备份单元对所述元数据服务器中的元数据信息进行备份后,按照预设的更新时间周期,向所述元数据服务器发送元数据信息更新请求;
所述更新单元,用于获得所述元数据服务器发送的更新数据并更新所述客户端设备本地存储的元数据信息。
可选的,所述分布式文件系统中包括有至少一个客户端设备组,每个所述客户端设备组中包括至少两个客户端设备,任一客户端设备中均备份有该客户端设备所在的客户端设备组中其他客户端设备存储的元数据信息。
可选的,所述文件读取单元,包括:数量确定子单元、参数信息获得子单元、读取服务器选择子单元和文件读取子单元,
所述数量确定子单元,用于确定根据所述元数据信息所确定的多个存储地址所在的存储服务器的数量;
所述参数信息获得子单元,用于在所述数量不小于两个时,获得所述多个存储地址所在的存储服务器的硬件参数信息和/或运行参数信息;
所述读取服务器选择子单元,用于根据所获得的存储服务器的参数信息从所述多个存储地址所在的存储服务器中选择一个作为读取服务器;
所述文件读取子单元,用于从所述读取服务器对应的存储地址中获取所述所要读取的文件。
可选的,所述运行参数信息至少包括运行负载信息,所述硬件参数信息至少包括:存储服务器的可用空间信息。
可选的,所述文件的标识包括:文件编号和文件块号。
一种分布式文件系统,包括:存储服务器及上述的任一种客户端设备,所述存储服务器与所述客户端设备通信连接。
可选的,还包括:元数据服务器,所述元数据服务器与所述客户端设备通信连接。
本发明实施例提供的一种分布式文件系统的读方法、客户端设备及分布式文件系统,可以在进行读操作时,首先在客户端设备本地寻找所需的元数据信息。在客户端设备本地存储有所需的元数据信息时,本发明可以直接根据客户端设备本地存储的元数据信息确定所要读取的文件在存储服务器中的存储地址,不再需要从元数据服务器中获取元数据信息,更加方便快捷,节省了时间。相应的,本发明执行读操作的速度也较快。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分布式文件系统的读方法的流程图;
图2为本发明实施例提供的一种分布式文件系统的结构示意图;
图3为本发明实施例提供的另一种分布式文件系统的读方法的流程图;
图4为本发明实施例提供的另一种分布式文件系统的读方法的流程图;
图5为本发明实施例提供的一种分布式文件系统中客户端设备的结构示意图;
图6为本发明实施例提供的另一种分布式文件系统中客户端设备的结构示意图;
图7为本发明实施例提供的另一种分布式文件系统中客户端设备的结构示意图;
图8为本发明实施例提供的另一种分布式文件系统中客户端设备的结构示意图;
图9为本发明实施例提供的另一种分布式文件系统的结构示意图;
图10为本发明实施例提供的另一种分布式文件系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
如图1所示,本发明实施例提供了一种分布式文件系统的读方法,所述分布式文件系统至少包括:客户端设备、存储服务器和元数据服务器,所述客户端设备可以分别与元数据服务器、存储服务器通信连接,该方法可以应用于客户端设备中,该方法可以包括:
S100、获得针对所要读取的文件的读指令;
其中,所要读取的文件可以为一个或多个。所述读指令中可以携带有所针对的文件的名称。
S200、根据所述读指令确定所要读取的文件的标识;
其中,文件的标识可以包括:文件编号(inode号)和文件块号(chunk号)。所要读取的文件可以为一个完整的文件,也可以为一个文件块。其中,文件块是文件的一个部分。具体的,可以根据所述读指令中携带的文件的名称确定文件的标识。
S300、从所述客户端设备本地获取与所述标识对应的元数据信息,根据所述元数据信息确定所述所要读取的文件在所述存储服务器中的存储地址,其中,所述客户端设备本地存储的元数据信息从所述元数据服务器获取得到或者从位于同一客户端设备组的其他客户端设备获取得到;
其中,元数据信息中包含有文件的标识以及对应的存储地址。因此,当知道文件的标识时,就可以根据上述对应关系,确定与文件的标识对应的存储地址。元数据信息还可以包含有文件的位置、大小、起始点信息等其他信息,本发明不做限定。
具体地,分布式文件系统中可以包括有至少一个客户端设备组,每个客户端设备组中包括至少两个客户端设备。每个客户端设备可以从元数据服务器获取本客户端设备所要读取的文件的元数据信息,并将该元数据信息保存在本客户端设备的缓存中。同时,客户端设备还可以将本客户端设备的元数据信息备份到本客户端设备组中的其他客户端设备中。如图2所示,本发明实施例中的分布式文件系统中可以包括客户端设备组1和客户端设备组2两个客户端设备组,为方便起见,仅以客户端设备组1为例进行说明,因此图2中对客户端设备组2进行了简化。同时,该分布式文件系统中还可以包括有存储服务器1和存储服务器2及元数据服务器。方便起见,仅以存储服务器1为例说明。从图2中可以看出,客户端设备组1中的三个客户端设备:客户端设备1、客户端设备2和客户端设备3,可以互相通信,以备份组内的其他客户端设备中的元数据信息。同时,上述三个客户端设备还可以分别与元数据服务器通信,以从元数据服务器中获得所需的元数据信息。同时,如图2所示,上述三个客户端设备还可以分别与存储服务器1通信,以读取存储服务器1中的文件。同时,元数据服务器还可以和存储服务器1通信,以对存储服务器1进行管理。
这样,每个客户端设备组的客户端设备就可以均拥有本组所有客户端设备的元数据信息,一旦本组的某个客户端设备出现故障或者关闭,其他客户端设备中的某个后补客户端设备可以立即补充空缺来为用户服务。用户需要读取文件数据的时候,该后补客户端设备不再需要到元数据服务器处获取元数据信息,提高了用户读取文件数据的速度。
具体地,客户端设备组之间可以不共享或者相互备份彼此的元数据信息。
具体地,客户端设备可以首先判断本地是否存储有需要的元数据信息,未存储时,再从元数据服务器获得所需的元数据信息。
S400、从所述存储服务器中的所述存储地址中获取所述所要读取的文件。
具体地,由于存储服务器的当前负载不同,运行能力不同,而且为防止丢失,文件数据会存储有多个文件副本在不同的存储服务器上,因此客户端设备需要选择一个负载较小的存储服务器来获取文件数据。当文件数据有多个备份时,客户端设备将从本地缓存中的元数据信息中获得多个存储地址。此时,客户端设备可以根据存储地址对应的存储服务器的负载对存储地址进行排序,并选择负载最低的存储服务器对应的存储地址进行文件读取。当然,可以对存储服务器进行排序,根据存储服务器的负载情况、容量、读写操作次数、本存储服务器的资源可用空间与总空间的比值等因素计算一个参考值,然后根据该参考值来确定所要读取的存储地址所在的存储服务器。
因此,S400可以包括:
确定根据所述元数据信息所确定的多个存储地址所在的存储服务器的数量;
在所述数量不小于两个时,获得所述多个存储地址所在的存储服务器的硬件参数信息和/或运行参数信息;
根据所获得的存储服务器的参数信息从所述多个存储地址所在的存储服务器中选择一个作为读取服务器;
从所述读取服务器对应的存储地址中获取所述所要读取的文件。
其中,所述运行参数信息可以至少包括运行负载信息,所述硬件参数信息可以至少包括:存储服务器的可用空间信息。
本发明实施例提供的一种分布式文件系统的读方法,可以在进行读操作时,首先在客户端设备本地寻找所需的元数据信息。在客户端设备本地存储有所需的元数据信息时,本发明可以直接根据客户端设备本地存储的元数据信息确定所要读取的文件在存储服务器中的存储地址,不再需要从元数据服务器中获取元数据信息,更加方便快捷,节省了时间。相应的,本发明执行读操作的速度也较快。需要说明的一点是,由于本发明的客户端设备本地存储的元数据信息从所述元数据服务器获取得到,因此保证了客户端设备本地和元数据服务器中存储的元数据信息的一致性。在这种情况下,可以直接从客户端设备本地中获取元数据信息,而不再需要从元数据服务器中获取。相对于从元数据服务器中获取所需元数据信息,由于从客户端设备本地获取所需元数据信息不需要发送元数据获取请求,也不需要经由网络传输元数据信息,因此更加快捷和方便。
特别地,本申请的技术方案适用于Moose分布式文件系统。Moose File System是一个具备容错功能的网路分布式文件统,它将数据分布在网络中的不同服务器上,MooseFs通过FUSE使之看起来就是一个Unix的文件系统。但有一点问题,它还是不能解决单点故障的问题。开发语言perl,可跨平台操作。
特别地,本申请的技术方案还适用于基于虚拟机的分布式文件系统。在客户端设备上搭建若干个虚拟机时,一旦某个虚拟机坏掉,可以重新在本台客户端设备上搭建一个虚拟机,或者在其他台客户端设备上重新搭建该虚拟机。由于每个客户端设备中均含有本客户端设备组的元数据信息,因此搭建虚拟机时候不用再访问元数据服务器来获得,可以直接从本台客户端设备上读取元数据信息即可。
实施例2:
本发明实施例提供的另一种分布式文件系统的读方法,还可以包括:
在所述客户端设备本地未存储有与所述标识对应的元数据信息时,向所述元数据服务器发送元数据信息获取请求,所述请求中包含有所述标识;
获得所述元数据服务器返回的元数据信息并存储在所述客户端设备本地,根据所述元数据服务器返回的元数据信息确定所述所要读取的文件在所述存储服务器中的存储地址。
具体的,可以将获得的元数据信息存储到客户端设备的缓存区中。
其中,元数据服务器可在一个物理设备上实现,也可在多个物理设备上实现。元数据服务器可以记录文件标识与存储地址的映射关系,包含文件访问控制所需要的所有元数据信息。
当客户端设备本地未存储有所需的元数据信息时,本发明可以从元数据服务器中获得所需的元数据信息并存储在客户端设备本地。这样,当再次需要使用该元数据信息时,即可直接从客户端设备本地获得,而不再需要再次从元数据服务器中获得。
当然,本发明的客户端设备还可以预先对元数据服务器中的全部或部分元数据信息进行备份,这样就不再需要每次进行读操作时都从元数据服务器中获取元数据信息。
实施例3:
如图3所示,本发明实施例提供的另一种分布式文件系统的读方法,在S100前,还可以包括:
S001、向所述元数据服务器发送元数据信息备份请求;
S002、获得所述元数据服务器发送的多个元数据信息,以对所述元数据服务器中的元数据信息进行备份。
需要说明的一点是,实施例3以实施例1为基础,当然,也可以在实施例2基础上增加上述S001和S002。
当然,在本发明其他实施例中,在对元数据服务器中的元数据信息进行备份后,还可以在元数据服务器中的元数据信息变化后进行更新。
实施例4:
在图3所示实施例基础上,如图4所示,本发明实施例提供的另一种分布式文件系统的读方法,在S002后,还可以包括:
S003、按照预设的更新时间周期,向所述元数据服务器发送元数据信息更新请求;
S004、获得所述元数据服务器发送的更新数据并更新所述客户端设备本地存储的元数据信息。
与上述方法实施例相对应,本发明还提供了一种分布式文件系统中的客户端设备。
实施例5:
本发明实施例提供了一种分布式文件系统中的客户端设备,分布式文件系统至少包括:客户端设备、存储服务器和元数据服务器,所述客户端设备分别与元数据服务器、存储服务器通信连接,如图5所示,该客户端设备可以包括:读指令获得单元100、标识确定单元200、第一地址确定单元300和文件读取单元400;
所述读指令获得单元100,用于获得针对所要读取的文件的读指令;
其中,所要读取的文件可以为一个或多个。所述读指令中可以携带有所针对的文件的名称。
所述标识确定单元200,用于根据所述读指令确定所要读取的文件的标识;
其中,文件的标识可以包括:文件编号(inode号)和文件块号(chunk号)。所要读取的文件可以为一个完整的文件,也可以为一个文件块。其中,文件块是文件的一个部分。具体的,可以根据所述读指令中携带的文件的名称确定文件的标识。
所述第一地址确定单元300,用于从所述客户端设备本地获取与所述标识对应的元数据信息,根据所述元数据信息确定所述所要读取的文件在所述存储服务器中的存储地址,其中,所述客户端设备本地存储的元数据信息从所述元数据服务器获取得到或者从位于同一客户端设备组的其他客户端设备获取得到;
其中,元数据信息中包含有文件的标识以及与文件的标识对应的存储地址。因此,当知道文件的标识时,就可以根据上述对应关系,确定与文件的标识对应的存储地址。元数据信息还可以包含有文件的位置、大小、起始点信息等其他信息,本发明不做限定。
所述文件读取单元400,用于从所述存储服务器中的所述存储地址中获取所述所要读取的文件。
其中,所述分布式文件系统中可以包括有至少一个客户端设备组,每个所述客户端设备组中包括至少两个客户端设备,任一客户端设备中可以均备份有该客户端设备所在的客户端设备组中其他客户端设备存储的元数据信息。
其中,所述文件读取单元400,可以包括:数量确定子单元、参数信息获得子单元、读取服务器选择子单元和文件读取子单元,
所述数量确定子单元,用于确定根据所述元数据信息所确定的多个存储地址所在的存储服务器的数量;
所述参数信息获得子单元,用于在所述数量不小于两个时,获得所述多个存储地址所在的存储服务器的硬件参数信息和/或运行参数信息;
所述读取服务器选择子单元,用于根据所获得的存储服务器的参数信息从所述多个存储地址所在的存储服务器中选择一个作为读取服务器;
所述文件读取子单元,用于从所述读取服务器对应的存储地址中获取所述所要读取的文件。
其中,所述运行参数信息可以至少包括运行负载信息,所述硬件参数信息至少包括:存储服务器的可用空间信息。
其中,文件读取单元400执行的即为执行读操作的过程,读操作是指计算机通过调用读取函数从其他设备中获取数据并存储到计算机中的过程。
本发明实施例提供的一种分布式文件系统中的客户端设备,可以在进行读操作时,首先在客户端设备本地寻找所需的元数据信息。在客户端设备本地存储有所需的元数据信息时,本发明可以直接根据客户端设备本地存储的元数据信息确定所要读取的文件在存储服务器中的存储地址,不再需要从元数据服务器中获取元数据信息,更加方便快捷,节省了时间。相应的,本发明执行读操作的速度也较快。
实施例6:
如图6所示,本发明实施例提供的另一种分布式文件系统中的客户端设备,还可以包括:元数据请求单元500、元数据存储单元600和第二地址确定单元700,
所述元数据请求单元500,用于在所述客户端设备本地未存储有与所述标识对应的元数据信息时,向所述元数据服务器发送元数据信息获取请求,所述请求中包含有所述标识;
所述元数据存储单元600,用于获得所述元数据服务器返回的元数据信息并存储在所述客户端设备本地;
具体的,可以将获得的元数据信息存储到客户端设备的缓存区中。
所述第二地址确定单元700,用于根据所述元数据服务器返回的元数据信息确定所述所要读取的文件在所述存储服务器中的存储地址。
其中,元数据服务器可在一个物理设备上实现,也可在多个物理设备上实现。元数据服务器可以记录文件标识与存储地址的映射关系,包含文件访问控制所需要的所有元数据信息。
当客户端设备本地未存储有所需的元数据信息时,本发明可以从元数据服务器中获得所需的元数据信息并存储在客户端设备本地。这样,当再次需要使用该元数据信息时,即可直接从客户端设备本地获得,而不再需要再次从元数据服务器中获得。
当然,本发明的客户端设备还可以预先对元数据服务器中的全部或部分元数据信息进行备份,这样就不再需要每次进行读操作时都从元数据服务器中获取元数据信息。
实施例7:
如图7所示,本发明实施例提供的另一种分布式文件系统中的客户端设备,还可以包括:备份请求单元001和备份单元002,
所述备份请求单元001,用于在所述读指令获得单元获得针对所要读取的文件的读指令前,向所述元数据服务器发送元数据信息备份请求;
所述备份单元002,用于获得所述元数据服务器发送的多个元数据信息,以对所述元数据服务器中的元数据信息进行备份。
需要说明的一点是,图7所示实施例以图5所示实施例为基础,当然,也可以在图6所示实施例基础上增加备份请求单元001和备份单元002。
当然,在本发明其他实施例中,在对元数据服务器中的元数据信息进行备份后,还可以在元数据服务器中的元数据信息变化后进行更新。
实施例8:
如图8所示,本发明实施例提供的另一种分布式文件系统中的客户端设备,还可以包括:更新请求单元003和更新单元004,
所述更新请求单元003,用于在所述备份单元对所述元数据服务器中的元数据信息进行备份后,按照预设的更新时间周期,向所述元数据服务器发送元数据信息更新请求;
所述更新单元004,用于获得所述元数据服务器发送的更新数据并更新所述客户端设备本地存储的元数据信息。
实施例9:
如图9所示,本发明实施例还提供了一种分布式文件系统,可以包括:存储服务器910及上述实施例中的任一个客户端设备920,所述存储服务器910与所述客户端设备920通信连接。
实施例10:
可选的,如图10所示,本发明实施例提供的另一种分布式文件系统还可以包括:元数据服务器930,所述元数据服务器930与所述客户端设备920通信连接。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (18)
1.一种分布式文件系统的读方法,其特征在于,所述分布式文件系统至少包括:客户端设备、存储服务器和元数据服务器,所述客户端设备分别与元数据服务器、存储服务器通信连接,所述读方法应用于客户端设备,所述方法包括:
获得针对所要读取的文件的读指令;
根据所述读指令确定所要读取的文件的标识;
从所述客户端设备本地获取与所述标识对应的元数据信息,根据所述元数据信息确定所述所要读取的文件在所述存储服务器中的存储地址,其中,所述客户端设备本地存储的元数据信息从所述元数据服务器获取得到或者从位于同一客户端设备组的其他客户端设备获取得到;
从所述存储服务器中的所述存储地址中获取所述所要读取的文件;
所述从所述存储服务器中的所述存储地址中获取所述所要读取的文件,包括:
确定根据所述元数据信息所确定的多个存储地址所在的存储服务器的数量;
在所述数量不小于两个时,获得所述多个存储地址所在的存储服务器的硬件参数信息和/或运行参数信息;
根据所获得的存储服务器的参数信息从所述多个存储地址所在的存储服务器中选择一个作为读取服务器;
从所述读取服务器对应的存储地址中获取所述所要读取的文件。
2.根据权利要求1所述的方法,其特征在于,还包括:
在所述客户端设备本地未存储有与所述标识对应的元数据信息时,向所述元数据服务器发送元数据信息获取请求,所述请求中包含有所述标识;
获得所述元数据服务器返回的元数据信息并存储在所述客户端设备本地,根据所述元数据服务器返回的元数据信息确定所述所要读取的文件在所述存储服务器中的存储地址。
3.根据权利要求1或2所述的方法,其特征在于,所述元数据信息中包含有:文件的标识及与文件的标识对应的存储地址。
4.根据权利要求1或2所述的方法,其特征在于,在获得针对所要读取的文件的读指令前,所述方法还包括:
向所述元数据服务器发送元数据信息备份请求;
获得所述元数据服务器发送的多个元数据信息,以对所述元数据服务器中的元数据信息进行备份。
5.根据权利要求4所述的方法,其特征在于,在对所述元数据服务器中的元数据信息进行备份后,所述方法还包括:
按照预设的更新时间周期,向所述元数据服务器发送元数据信息更新请求;
获得所述元数据服务器发送的更新数据并更新所述客户端设备本地存储的元数据信息。
6.根据权利要求1所述的方法,其特征在于,所述文件的标识包括:文件编号和文件块号。
7.根据权利要求2所述的方法,其特征在于,所述分布式文件系统中包括有至少一个客户端设备组,每个所述客户端设备组中包括至少两个客户端设备,任一客户端设备中均备份有该客户端设备所在的客户端设备组中其他客户端设备存储的元数据信息。
8.根据权利要求1所述的方法,其特征在于,所述运行参数信息至少包括运行负载信息,所述硬件参数信息至少包括:存储服务器的可用空间信息。
9.一种分布式文件系统中的客户端设备,其特征在于,所述分布式文件系统至少包括:客户端设备、存储服务器和元数据服务器,所述客户端设备分别与元数据服务器、存储服务器通信连接,所述客户端设备包括:读指令获得单元、标识确定单元、第一地址确定单元和文件读取单元;
所述读指令获得单元,用于获得针对所要读取的文件的读指令;
所述标识确定单元,用于根据所述读指令确定所要读取的文件的标识;
所述第一地址确定单元,用于从所述客户端设备本地获取与所述标识对应的元数据信息,根据所述元数据信息确定所述所要读取的文件在所述存储服务器中的存储地址,其中,所述客户端设备本地存储的元数据信息从所述元数据服务器获取得到或者从位于同一客户端设备组的其他客户端设备获取得到;
所述文件读取单元,用于从所述存储服务器中的所述存储地址中获取所述所要读取的文件;所述文件读取单元,包括:数量确定子单元、参数信息获得子单元、读取服务器选择子单元和文件读取子单元,
所述数量确定子单元,用于确定根据所述元数据信息所确定的多个存储地址所在的存储服务器的数量;
所述参数信息获得子单元,用于在所述数量不小于两个时,获得所述多个存储地址所在的存储服务器的硬件参数信息和/或运行参数信息;
所述读取服务器选择子单元,用于根据所获得的存储服务器的参数信息从所述多个存储地址所在的存储服务器中选择一个作为读取服务器;
所述文件读取子单元,用于从所述读取服务器对应的存储地址中获取所述所要读取的文件。
10.根据权利要求9所述的客户端设备,其特征在于,还包括:元数据请求单元、元数据存储单元和第二地址确定单元,
所述元数据请求单元,用于在所述客户端设备本地未存储有与所述标识对应的元数据信息时,向所述元数据服务器发送元数据信息获取请求,所述请求中包含有所述标识;
所述元数据存储单元,用于获得所述元数据服务器返回的元数据信息并存储在所述客户端设备本地;
所述第二地址确定单元,用于根据所述元数据服务器返回的元数据信息确定所述所要读取的文件在所述存储服务器中的存储地址。
11.根据权利要求9或10所述的客户端设备,其特征在于,所述元数据信息中包含有:文件的标识及与文件的标识对应的存储地址。
12.根据权利要求9或10所述的客户端设备,其特征在于,还包括:备份请求单元和备份单元,
所述备份请求单元,用于在所述读指令获得单元获得针对所要读取的文件的读指令前,向所述元数据服务器发送元数据信息备份请求;
所述备份单元,用于获得所述元数据服务器发送的多个元数据信息,以对所述元数据服务器中的元数据信息进行备份。
13.根据权利要求12所述的客户端设备,其特征在于,还包括:更新请求单元和更新单元,
所述更新请求单元,用于在所述备份单元对所述元数据服务器中的元数据信息进行备份后,按照预设的更新时间周期,向所述元数据服务器发送元数据信息更新请求;
所述更新单元,用于获得所述元数据服务器发送的更新数据并更新所述客户端设备本地存储的元数据信息。
14.根据权利要求11所述的客户端设备,其特征在于,所述分布式文件系统中包括有至少一个客户端设备组,每个所述客户端设备组中包括至少两个客户端设备,任一客户端设备中均备份有该客户端设备所在的客户端设备组中其他客户端设备存储的元数据信息。
15.根据权利要求9所述的客户端设备,其特征在于,所述运行参数信息至少包括运行负载信息,所述硬件参数信息至少包括:存储服务器的可用空间信息。
16.根据权利要求9所述的客户端设备,其特征在于,所述文件的标识包括:文件编号和文件块号。
17.一种分布式文件系统,其特征在于,包括:存储服务器及权利要求9至16中任一项所述的客户端设备,所述存储服务器与所述客户端设备通信连接。
18.根据权利要求17所述的分布式文件系统,其特征在于,还包括:元数据服务器,所述元数据服务器与所述客户端设备通信连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410521974.4A CN105468660B (zh) | 2014-09-30 | 2014-09-30 | 分布式文件系统的读方法、客户端设备及分布式文件系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410521974.4A CN105468660B (zh) | 2014-09-30 | 2014-09-30 | 分布式文件系统的读方法、客户端设备及分布式文件系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105468660A CN105468660A (zh) | 2016-04-06 |
CN105468660B true CN105468660B (zh) | 2019-03-26 |
Family
ID=55606363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410521974.4A Active CN105468660B (zh) | 2014-09-30 | 2014-09-30 | 分布式文件系统的读方法、客户端设备及分布式文件系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105468660B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491455B (zh) * | 2016-06-13 | 2020-11-20 | 阿里巴巴集团控股有限公司 | 一种分布式系统中的读取方法及装置 |
CN107506154A (zh) * | 2017-09-26 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种元数据的读取方法、装置及计算机可读存储介质 |
CN108833396A (zh) * | 2018-06-07 | 2018-11-16 | 北京百悟科技有限公司 | 一种确权的方法、装置、系统及终端 |
CN108924266A (zh) * | 2018-08-24 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种基于分布式文件系统的客户端请求分离管理方法及装置 |
CN111680014B (zh) * | 2020-05-29 | 2023-06-02 | 北京五八信息技术有限公司 | 共享文件的获取方法、装置、电子设备及存储介质 |
CN111897792A (zh) * | 2020-08-11 | 2020-11-06 | 北京无线电测量研究所 | 一种分布式文件存取方法、系统、介质及设备 |
CN112182002A (zh) * | 2020-09-27 | 2021-01-05 | 北京字节跳动网络技术有限公司 | 数据容灾方法、装置、电子设备和计算机可读介质 |
CN112449018A (zh) * | 2020-11-25 | 2021-03-05 | 杭州视洞科技有限公司 | 一种基于端侧的多机房数据同步与部署方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103078936A (zh) * | 2012-12-31 | 2013-05-01 | 网宿科技股份有限公司 | 基于gfs的分布式文件系统的元数据分级存储方法和系统 |
CN103793534A (zh) * | 2014-02-28 | 2014-05-14 | 苏州博纳讯动软件有限公司 | 分布式文件系统及均衡元数据存储和访问负载的实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7165096B2 (en) * | 2000-12-22 | 2007-01-16 | Data Plow, Inc. | Storage area network file system |
-
2014
- 2014-09-30 CN CN201410521974.4A patent/CN105468660B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103078936A (zh) * | 2012-12-31 | 2013-05-01 | 网宿科技股份有限公司 | 基于gfs的分布式文件系统的元数据分级存储方法和系统 |
CN103793534A (zh) * | 2014-02-28 | 2014-05-14 | 苏州博纳讯动软件有限公司 | 分布式文件系统及均衡元数据存储和访问负载的实现方法 |
Non-Patent Citations (1)
Title |
---|
网络环境下的分布式存储系统的设计与实现;何润润;《中国优秀硕士学位论文全文数据库信息科技辑》;20120715;正文第15-22、25-37页 |
Also Published As
Publication number | Publication date |
---|---|
CN105468660A (zh) | 2016-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105468660B (zh) | 分布式文件系统的读方法、客户端设备及分布式文件系统 | |
CN103294675B (zh) | 一种分布式存储系统中的数据更新方法及装置 | |
CN107092437B (zh) | 数据写入、读取方法及装置、云存储系统 | |
EP2414928B1 (en) | Data redistribution in data replication systems | |
CN102708165B (zh) | 分布式文件系统中的文件处理方法及装置 | |
EP1465072A2 (en) | Computer system with distributed file system for managing distributed files | |
CN106161523B (zh) | 一种数据处理方法和设备 | |
US20070192375A1 (en) | Method and computer system for updating data when reference load is balanced by mirroring | |
CN105224255B (zh) | 一种存储文件管理方法及装置 | |
CN107026876B (zh) | 一种文件数据访问系统及方法 | |
CN105138678A (zh) | 一种地图瓦片数据的读取、分发方法及读取、分发系统 | |
CN105653396B (zh) | 备份系统及其备份方法 | |
CN103559319B (zh) | 分布式集群文件系统的缓存同步方法和设备 | |
CN105516230B (zh) | 一种数据处理方法及装置 | |
CN105208078A (zh) | 一种文件存储系统及方法 | |
CN106294352A (zh) | 一种文件处理方法、装置和文件系统 | |
JPWO2004055675A1 (ja) | ファイル管理装置、ファイル管理プログラム、ファイル管理方法およびファイルシステム | |
CN109684282A (zh) | 一种构建元数据缓存的方法及装置 | |
CN102474531A (zh) | 地址服务器 | |
CN102739622A (zh) | 一种可扩展的数据存储系统 | |
CN109445902A (zh) | 一种数据操作方法和系统 | |
CN109597903A (zh) | 图像文件处理装置和方法、文件存储系统及存储介质 | |
US20160014203A1 (en) | Storage fabric address based data block retrieval | |
CN108255928A (zh) | 分布式系统数据读取方法及装置 | |
CN106713460A (zh) | 一种flash应用的版本控制方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |