CN110022338B - 文件读取方法、***、元数据服务器和用户设备 - Google Patents
文件读取方法、***、元数据服务器和用户设备 Download PDFInfo
- Publication number
- CN110022338B CN110022338B CN201810020394.5A CN201810020394A CN110022338B CN 110022338 B CN110022338 B CN 110022338B CN 201810020394 A CN201810020394 A CN 201810020394A CN 110022338 B CN110022338 B CN 110022338B
- Authority
- CN
- China
- Prior art keywords
- file
- cluster
- data
- server
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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为图1所示实施例中步骤102的具体实现流程示意图;
图3为本发明另一实施例提供的文件读取方法的流程示意图;
图4为本发明另一实施例提供的文件读取***的结构示意图;
图5为本发明提供的数据副本跨域调度管理***的架构图;
图6为本发明另一实施例提供的元数据服务器的结构示意图;
图7为本发明另一实施例提供的用户设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者***中还存在另外的相同要素。
现有的跨集群数据综合分析业务中,常用的方法是将需要的数据跨集群复制到本地计算端,满足本地计算加速处理的需求,但是存在以下几个问题:
1、每个分析任务都跨集群读取远程数据的话,会造成大量远程带宽消耗,并且跨集群数据传输带来分析性能变差;
2、为了保证数据不会因为硬件损坏丢失,通常每个集群会对数据存储2个、3个甚至更多的副本,如果把数据跨集群复制,数据副本数量急剧增多,地域越多带来的存储成本越大。
3、虽然在全局上数据在不同地域间有多个副本,但是因为属于不同的集群管理,造成如果一个集群数据丢失,另一个集群副本无法自动后台补齐数据以满足业务数据处理需求,因此缺乏跨集群全局数据副本统一管理和调度能力,从而无法灵活调度用以满足业务需求变化时对副本分布的需求。
因此,为了解决上述技术问题,本发明提出一种文件读取方法,该方法是将元数据的复制和数据副本复制方案分离的一种跨集群数据副本管理的方案,元数据采用异步主从同步作为镜像,数据副本复制有源端元数据服务器直接管理复制,保证元数据和数据副本可以高效复制并满足就近处理的同时,所有数据副本仍由元数据服务器统一管理,增加总体的数据可用性和存储空间管理效率,降低总体的数据冗余。
图1为本发明一实施例提供的文件读取方法的流程示意图,如图1所示:
101、第一文件集群中的第一元数据服务器接收第二文件集群中的用户设备发送的文件读取请求;该文件读取请求用于请求第一文件集群中的第一文件。
102、第一元数据服务器将第一文件的数据副本复制到第二文件集群中的目标数据服务器中,并将目标数据服务器的信息更新至第一文件的元数据信息中。
103、第一元数据服务器向第二文件集群中的第二元数据服务器和/或用户设备发送更新后第一文件的元数据信息,以供用户设备本次和/或后续从目标数据服务器上读取第一文件的数据副本。
在本实施例中,第一文件是第一文件集群中的任一文件,第一文件或第一文件的数据副本部署于第一文件集群中的数据服务器上。
无论是第一文件集群还是第二文件集群,都包括至少一台数据服务器(CS)。数据服务器主要用于存储该数据服务器所属文件集群中的文件或文件的数据副本,也可以存储其它文件集群中文件的数据副本。另外,数据服务器还负责管理本地所有文件或文件的数据副本,并可以定期向同一文件集群中的元数据服务器汇报自身状态并同步文件的元数据信息。
除了数据服务器之外,无论是第一文件集群还是第二文件集群,都包括元数据服务器(MS)。不管是哪个文件集群的元数据服务器,主要用于存储第一文件集群中的元数据信息,元数据信息主要包括该文件集群中的文件目录、文件空间、文件的数据块(chunk)列表以及文件的数据副本列表等;在文件的数据副本列表中存储有该文件的各数据副本所在文件集群的标识以及所在数据服务器的信息等。除此之外,元数据服务器还负责在机器磁盘损坏时,发起复制任务,把缺失的数据块副本复制到其它数据服务器上,以保证数据可靠性。
为便于区分和描述,将第一文件集群中的元数据服务器称为第一元数据服务器,将第二文件集群中的元数据服务器称为第二元数据服务器。
其中,第一文件集群和第二文件集群的一些属性不同相同,使得第二文件集群中的用户设备再请求第一文件集群中的文件时会形成跨域请求。可选地,第一文件集群和第二文件集群部署于不同地域内。或者,第一文件集群和第二文件集群的带宽资源不同。或者,第一文件集群和第二文件集群分属于不同的业务***。
例如,当第二文件集群中的用户设备需要对第一文件集群中的第一文件进行跨集群数据综合分析业务时,可以向第一文件集群中的第一元数据服务器发送文件读取请求。该文件读取请求属于远程请求或跨域请求。该文件读取请求中携带第一文件的信息,例如第一文件的名称、存储位置等。除此之外,该文件读取请求中还可以携带用户设备的信息和/或第二文件集群的标识等信息。
第一元数据服务器接收到该文件读取请求后,可以确定第二文件集群中的用户设备请求第一文件,于是将第一文件的数据副本复制到第二文件集群中的目标数据服务器中,并将目标数据服务器的信息更新至第一文件的元数据信息中,然后向第二文件集群中的第二元数据服务器和/或第二文件集群中的用户设备发送更新后第一文件的元数据信息,这样该用户设备本次和/或后续可以直接从该目标数据服务器上读取第一文件的数据副本,无需跨域请求第一文件,可以节约大量远程带宽消耗,而且可以避免跨集群数据传输带来的分析性能变差的问题。
值得说明的是,针对用户设备本次的文件读取请求,用户设备可以在接收到更新后第一文件的元数据信息之后或者从第二元数据服务器读取到更新后第一文件的元数据信息之后,根据更新后第一文件的元数据信息从目标数据服务器上读取第一文件的数据副本。或者,
第一元数据服务器向第二文件集群中的第二元数据服务器和/或该用户设备发送更新后第一文件的元数据信息之前,也可以先向第二元数据服务器和/或用户设备发送更新之前第一文件的元数据信息,这样该用户设备本次可以根据更新之前第一文件的元数据信息从不同于目标数据服务器的其它数据服务器上读取第一文件的数据副本。例如,该用户设备可以根据更新之前第一文件的元数据信息从第一文件集群中保存有第一文件或第一文件的数据副本的数据服务器上读取第一文件的数据副本。
在一示例性实施例中,为了便于用户设备能够及时读取到第一文件的数据副本,第一元数据服务器可以优先向第二元数据服务器和/或用户设备发送更新之前第一文件的元数据信息,然后再将第一文件的数据副本复制到第二文件集群中的目标数据服务器,之后再将更新后第一文件的元数据信息同步给第二元数据服务器和/或用户设备。
其中,第一元数据服务器向第二元数据服务器和/或用户设备发送更新之前第一文件的元数据信息的操作,与第一元数据服务器将第一文件的数据副本复制到第二文件集群中的目标数据服务器的操作之间的先后顺序不做限定,可以按照上述示例性实施例中的先后顺序,也可以并行执行。
在本发明一示例性实施例中,第一元数据服务器设置有第一文件集群的元数据信息库,其中,第一文件集群的元数据信息库中包括第一文件集群中的每个文件的元数据信息,每个文件的元数据信息中包括每个文件的数据副本列表,在该数据副本列表中记录有该文件的各数据副本所在文件集群的标识等信息。对第一文件来说,第一文件的元数据信息包括第一文件的数据副本列表;其中,第一文件的数据副本列表中包括第一文件的各数据副本所在文件集群的标识等信息。
例如,假设第一文件的数据副本存在于第一文件集群、第二文件集群以及第三文件集群,则第一文件的数据副本列表如下:
本实施例中,为了保证数据副本不会因为硬件损坏丢失,通常会存储多个数据副本,每个数据副本存在不同的数据服务器中,由于数据服务器可能位于不同的地域集群中,因此,数据副本列表中还可以包括该数据副本所在的数据服务器的标识。
基于上述,第一元数据服务器在接收到第二文件集群中的用户设备发送的文件读取请求之后,还可以根据该文件读取请求,查询第一文件集群的元数据信息库,以获取第一文件的数据副本列表,第一文件的数据副本列表包括第一文件的各数据副本所在文件集群的标识;可以根据第一文件的数据副本列表中是否包括第二文件集群的标识,从而确定第二文件集群的各数据服务器中是否存在第一文件的数据副本。
当第一文件的数据副本列表中包括第二文件集群的标识时,确定第二文件集群中存在第一文件的数据副本,该情况下,第一元数据服务器可以将第一文件的数据副本复制到第二文件集群中的目标数据服务器中,或者,也可以不将第一文件的数据副本复制到第二文件集群中的目标数据服务器中。可选地,第一元数据服务器可以根据自己的负载情况、第一文件的整体访问热度和/或第二文件集群对第一文件的访问热度,确定是否将第一文件的数据副本复制到第二文件集群中的目标数据服务器中。
例如,在第二文件集群中存在第一文件的数据副本的情况下,若第一元数据服务器的负载较轻,则可以选择将第一文件的数据副本复制到第二文件集群中的目标数据服务器中;若第一元数据服务器的负载较重,则可以不将第一文件的数据副本复制到第二文件集群中的目标数据服务器中。
又例如,在第二文件集群中存在第一文件的数据副本的情况下,若第二文件集群对第一文件的访问热度较高,则第一元数据服务器可以选择将第一文件的数据副本复制到第二文件集群中的目标数据服务器中,以便向第二文件集群中的用户设备提供更多第一文件的数据副本,有利于提高各用户设备读取到第一文件的数据副本的效率;若第二文件集群对第一文件的访问热度较低,则第一元数据服务器可以不将第一文件的数据副本复制到第二文件集群中的目标数据服务器中,从而减轻第一元数据服务器的处理负担。关于第二文件集群对第一文件的访问热度的相关描述可参见后续实施例,在此不再赘述。
当在第一文件的数据副本列表中不包括第二文件集群的标识时,确定第二文件集群的各数据服务器中不存在第一文件的数据副本,此时,第一元数据服务器需要将第一文件的数据副本复制到第二文件集群中的目标数据服务器中,具体实现方式可以参考图2所示实施例中的相关内容。
值得说明的是,无论是在哪种情况下,当第一元数据服务器将第一文件的数据副本复制到第二文件集群中的目标数据服务器之后,第一元数据服务器还需将目标数据服务器的信息更新至第一文件的元数据信息中,例如,将目标数据服务器的标识添加到第一文件的数据副本列表中;进而,将更新后第一文件的元数据信息同步给第二文件集群中的第二元数据服务器和/发起请求的用户设备,保证元数据信息的同步,为第二文件集群中的用户设备从本域内读取该第一文件的数据副本提供条件。
图2为图1所示实施例中步骤102的一种具体实现流程示意图,如图2所示,步骤102具体实现时包括:
201、第一元数据服务器从第二元数据服务器中获取第二文件集群中各数据服务器的状态信息。
通常,第二文件集群中存在多个数据服务器,每个数据服务器的资源存储状况不同,而且由于每个数据副本的大小也是不同,因此需要在多个数据服务器中选择合适的数据服务器进行数据副本的生成。为此,需要从第二文件集群中的第二元数据服务器中获取第二文件集群中的各数据服务器的状态信息。
202、第一元数据服务器根据第二文件集群中各数据服务器的状态信息,在第二文件集群中各数据服务器中确定目标数据服务器。
为了满足第二文件集群中的用户设备对第一文件的跨集群访问需求,在第二文件集群中的各数据服务器中确定一个或者一个以上的目标数据服务器用于生成第一文件的数据副本,例如,可以根据各数据服务器的状态信息,从中选择状态较好的服务器,或者从中选择存储空间足够的服务器,或者从中选择请求数量相对较少的服务器作为目标数据服务器。
203、第一元数据服务器向目标数据服务器发送生成第一文件的数据副本的命令,以使目标数据服务器从第一文件集群中保存有第一文件或第一文件的数据副本的数据服务器中复制第一文件的数据副本并返回第一文件的数据副本生成完成的结果信息。
在确定目标数据服务器之后,第一元数据服务器向目标数据服务器发送生成第一文件的数据副本的命令。目标数据服务器接收第一元数据服务器发送的命令,根据该命令从第一文件集群中保存有第一文件或第一文件的数据副本的数据服务器中复制第一文件的数据副本,并在成功复制第一文件的数据副本之后,向第一元数据服务器返回第一文件的数据副本生成完成的结果信息,以便于第一元数据服务器能够根据该结果信息进行后续处理。例如,第一元数据服务器可以在接收到目标数据服务器返回的第一文件的数据副本生成完成的结果信息后,将目标数据服务器的标识更新至第一文件的元数据信息中并将更新后第一文件的元数据信息发送给第二元数据服务器和/或用户设备。
可选地,本发明实施例中,当第一元数据服务器发现大量的跨集群文件读取请求时,或者管理员根据业务需要提前配置需要跨集群读取的文件等。元数据服务器可以标注该需要跨集群读取的文件需要做跨集群数据副本管理,并记录目的集群和优先级。例如,第二文件集群的用户设备发起对第一文件集群中的文件进行大量的跨集群访问时,则记录目的集群为第二文件集群;若第三文件集群的用户设备发起对第一文件集群中的文件进行大量的跨集群访问时,则记录目的文件集群为第三文件集群;因此,这里的目的集群为发起大量的跨集群访问的文件集群。
基于上述,第一元数据服务器在接收到第二文件集群中的用户设备发送的文件读取请求时,可以根据第一时间范围内第二文件集群针对第一文件发起的文件读取请求的数量,确定第二文件集群对第一文件的访问热度;进而,结合第二文件集群对第一文件的访问热度确定是否需要针对第一文件做跨集群数据副本管理。当第二文件集群对第一文件的访问热度大于或等于预设访问热度阈值时,确定需要针对第一文件做跨集群数据副本管理,则可以对第一文件标注需要跨域生成数据副本的标识,并将第二文件集群作为需要跨域生成数据副本的目的集群,记录目的集群的标识。当第二文件集群对第一文件的访问热度小于预设访问热度阈值时,确定不需要针对第一文件做跨集群数据副本管理,则不标注处理。相应地,若第二文件集群被标识为需要跨域生成数据副本的目的集群,则第一元数据服务器执行将第一文件的数据副本复制到第二文件集群中的目标数据服务器以及其它后续操作。反之,若第二文件集群未被标识为需要跨域生成数据副本的目的集群,则第一元数据服务器不执行将第一文件的数据副本复制到第二文件集群中的目标数据服务器以及其它后续操作。其中,第一时间范围可以根据应用需求适应性设置,例如可以是最近一小时,最近一周,或最近一天等。
进一步,本发明实施例中,考虑到可能有多个目的集群的用户设备对第一文件集群中的文件发起大量的跨集群访问时,为了有效管理跨集群的数据访问,减少资源冲突,还可以对目的集群发起的跨集群文件访问进行优先级的设置。第一元数据服务器可以按照目的集群之间的优先级,依次向各目的集群复制第一文件的数据副本。
进一步,在一种可选的实施方式中,第一元数据服务器统一对第一文件的数据副本进行管理,因此,第一元数据服务器还可以动态、宏观调整第一文件的数据副本的数量,使得第一文件的数据副本保持合理数量。例如,第一元数据服务器可以要求各个保存有第一文件或第一文件的数据副本的数据服务器上报在第二时间范围内接收到的读取第一文件的数据副本的请求的数量。第一元数据服务器根据各个保存有第一文件或第一文件的数据副本的数据服务器上报的请求数量,获得第二时间范围内各个文件集群针对第一文件发起的文件读取请求的总数量。进而,第一元数据服务器根据第二时间范围内各个文件集群针对第一文件发起的文件读取请求的总数量,确定第一文件的整体访问热度;当第一文件的整体访问热度大于或等于预设整体热度阈值时,判断第一文件的数据副本的已有数量是否满足预设副本数条件;当判断结果为不满足时,根据各个文件集群对第一文件的访问热度,调整各个文件集群中第一文件的数据副本的数量。其中,第二时间范围可以根据应用需求适应性设置,例如可以是最近一小时,最近一天,或者最近一周等。
上述预设副本数条件可以根据应用需求灵活设置。例如,预设副本数条件可以是最低数量要求,或者也可以是最高数量要求。
可选地,当第一文件的整体访问热度大于或等于预设整体热度阈值时,若第一文件的数据副本的已有数量达到最低数量要求,则可以不调整各个文件集群中第一文件的数据副本的数量;若第一文件的数据副本的已有数量未达到最低数量要求,则可以增加某些或某个文件集群中第一文件的数据副本的数量。
可选地,当第一文件的整体访问热度大于或等于预设整体热度阈值时,若第一文件的数据副本的已有数量超过最高数量要求,则可以减少某些或某个文件集群中第一文件的数据副本的数量;若第一文件的数据副本的已有数量未超过最高数量要求,则可以不调整各个文件集群中第一文件的数据副本的数量。
其中,对任一文件集群来说,调整其中第一文件的数据副本的数量包括增加第一文件的数据副本的数量,或者减少第一文件的数据副本的数量。以第二文件集群为例,则根据第二文件集群对第一文件的访问热度,调整第二文件集群中第一文件的数据副本的数量的一种可选方式包括:
当第二文件集群对第一文件的访问热度小于预设访问热度阈值时,第一元数据服务器根据第一文件的数据副本列表,确定第二文件集群的数据服务器中存在第一文件的数据副本;
第一元数据服务器向第二文件集群中保存有第一文件的数据副本的若干个数据服务器发送删除第一文件的数据副本的命令,以使若干个数据服务器删除第一文件的数据副本;
第一元数据服务器更新第一文件的元数据信息中的数据副本列表,并将更新后的元数据信息发送给第二元数据服务器进行备份。
由此可见,当第一元数据服务器发现对第一文件集群中的文件的跨集群访问热度大大减少,或者管理员配置该文件不需要跨集群访问,此时可以根据对该文件的访问热度动态决定总共保留几个该文件的数据副本,保留在哪些集群的数据副本,从而可以更有效的利用数据服务器的存储空间;假设第一元数据服务器认为不需要在第二文件集群中的数据服务器中保留该文件的数据副本,可以给保存有该文件的数据副本的第二文件集群中的目标数据服务器发送删除该文件的数据副本的命令,从而释放第二文件集群中的数据服务器的存储空间。
本发明实施例中,第一文件集群中的第一元数据服务器在接收第二文件集群中的用户设备发送的用于请求第一文件集群中的第一文件的文件读取请求时,查询该第一文件集群的元数据信息库,以获取第一文件的数据副本列表,根据第一文件的数据副本列表确定第二文件集群的各数据服务器中不存在第一文件的数据副本时,可以由源端的第一元数据服务器发起第一文件的数据副本生成命令,将第一文件的数据副本复制到第二文件集群中的目标数据服务器中,并将目标数据服务器的信息更新至第一文件的元数据信息中;之后,第一元数据服务器向第二文件集群中的第二元数据服务器和/或用户设备发送第一文件的元数据信息,以供用户设备本次和/或后续从目标数据服务器上读取第一文件的数据副本。从而保证第一元数据服务器和第二元数据服务器中有关该第一文件的元数据信息的同步性。这样,当第二文件集群中的用户设备后续需要对该第一文件的数据副本进行跨集群数据综合分析业务时,不需要用户设备向第一文件集群中的数据服务器发起跨集群读取和远程复制该数据副本的请求,而是直接在第二文件集群中的元数据服务器中获取该第一文件的数据副本列表,就近在本集群(第二文件集群)的目标数据服务器中获取该第一文件的数据副本,从而避免跨集群读取和复制远程数据带来大量远程带宽消耗和跨集群数据传输带来分析性能变差的问题。
进一步地,本发明实施例中的数据副本生成是由第一元数据服务器(即源端的元数据服务器)直接管理,保证每个文件的元数据信息和数据副本可以高效复制并满足就近处理的同时,所有数据副本仍由第一元数据服务器统一管理,增加总体的数据可用性和存储空间管理效率,降低总体的数据冗余。这样的跨集群数据处理方法,在保留数据处理局部性和集群相互独立的基础上,全局统一管理数据副本总数,避免过多的存储空间浪费,同时,跨集群数据副本之间满足相互备份能力,增强总体数据可用性,在异步跨集群数据同步更新上,能够利用集群的带宽和计算规模,高效增量同步更新。
图3为本发明另一实施例提供的文件读取方法的流程示意图,如图3所示:
301、第二文件集群中的用户设备向第二文件集群中的第二元数据服务器发送元数据读取请求,以请求第二元数据服务器返回第一文件集群中第一文件的元数据信息。
302、当第二元数据服务器成功返回第一文件的元数据信息时,用户设备根据第一文件的元数据信息确定第二文件集群中保存有第一文件的数据副本的数据服务器。
303、用户设备从保存有第一文件的数据副本的数据服务器中读取第一文件。
在本实施例中,以第二文件集群中的用户设备需要第一文件集群中的第一文件为例,说明用户设备请求跨域文件时的处理流程。其中,第一文件集群和第二文件集群可以是分布式文件***中任何不相同的两个文件集群。
当第二文件集群中的用户设备需要第一文件集群中的第一文件时,可以向第二文件集群中的第二元数据服务器发送元数据读取请求,以请求第二元数据服务器返回第一文件集群中第一文件的元数据信息。当第二元数据服务器成功返回第一文件的元数据信息时,说明第二文件集群中存在第一文件的数据副本,则用户设备可以直接根据第一文件的元数据信息确定第二文件集群中保存有第一文件的数据副本的数据服务器,然后直接第二文件集群中保存有第一文件的数据副本的数据服务器中读取第一文件即可,无需跨域请求第一文件,可以节约大量远程带宽消耗,而且可以避免跨集群数据传输带来的分析性能变差的问题。
在一种实现逻辑中,当用户设备需要第一文件集群中的第一文件时,可以直接向第二元数据服务器发送元数据读取请求;若第二元数据服务器成功返回第一文件的元数据信息,则可以根据第一文件的元数据信息,直接从第二文件集群中保存有第一文件的数据副本的数据服务器中读取第一文件;若第二元数据服务器未能成功返回第一文件的元数据信息,则可以向第一文件集群中的第一元数据服务器发送文件读取请求,进行跨域请求。
在另一种实现逻辑中,当用户设备需要第一文件集群中的第一文件时,可以判断是否首次请求第一文件;当判断结果为非首次请求第一文件时,说明第二文件集群中很可能已经存在第一文件的数据副本,于是可以优先向第二元数据服务器发送元数据读取请求。若第二元数据服务器成功返回第一文件的元数据信息,则可以直接从第二文件集群中保存有第一文件的数据副本的数据服务器中读取第一文件;若第二元数据服务器未能成功返回第一文件的元数据信息,再向第一文件集群中的第一元数据服务器发送文件读取请求,进行跨域请求。
进一步可选地,当用户设备首次请求第一文件时,可以直接向第一文件集群中的第一元数据服务器发送文件读取请求进行跨域请求。该文件读取请求用于请求第一元数据服务器将第一文件的数据副本复制到第二文件集群中的目标数据服务器中。对第一元数据服务器一方面根据该文件读取请求将第一文件的数据副本复制到第二文件集群中的目标数据服务器中,另一方面会更新第一文件的元数据信息并同步给第二元数据服务器或用户设备。基于此,用户设备可以接收第一元数据服务器返回的第一文件的元数据信息,或者从第二元数据服务器获取由第一元数据服务器同步的第一文件的元数据信息;之后,用户设备根据第一文件的元数据信息,从目标数据服务器中读取第一文件的数据副本。
本发明实施例中,当第二文件集群中的用户设备想要获取跨集群的第一文件时,通过向第二文件集群中的第二元数据服务器(本集群元数据服务器)发送元数据读取请求,以请求第二元数据服务器第一文件集群中第一文件的元数据信息;当第二元数据服务器成功返回第一文件的元数据信息时,且用户设备根据第一文件的元数据信息确定第二文件集群中保存有第一文件的数据副本的数据服务器;用户设备直接从保存有第一文件的数据副本的第二文件集群中的目标数据服务器中读取第一文件的数据副本,从而避免跨集群读取和复制远程数据带来大量远程带宽消耗和跨集群数据传输带来分析性能变差的问题。
图4为本发明另一实施例提供的文件读取***的结构示意图,如图4所示,包括:多个文件集群,图4中示出P个文件集群。每个文件集群包括元数据服务器和数据服务器。其中,每个文件集群包括的数据服务器可以是一个,也可以是多个,且不同文件集群包括的数据服务器的数量可以相同,也可以不相同。如图4所示,第一文件集群包括N个数据服务器,第二文件集群包括L个数据服务器,第P文件集群包括F个数据服务器。其中,P、N、L以及F都是自然数。
在图4所示文件读取***中,每个文件集群还包括一个或多个用户设备,且不同文件集群包括的用户设备的数量可以相同,也可以不相同。如图4所示,第一文件集群包括M个用户设备,第二文件集群包括H个用户设备,第P文件集群包括E个用户设备。其中,M、H以及E也是自然数。
在图4所示文件读取***中,每个文件集群可以服务自己集群内的用户设备,也可以服务其它集群内的用户设备。关于每个文件集群为自己集群内的用户设备提供服务的方式本实施例不做赘述。下面以第一文件集群和第二文件集群为例,说明跨域为用户设备提供服务的过程。其中,第一文件集群和第二文件集群是多个文件集群中的不同文件集群。并且,为便于描述,将第一文件集群中的元数据服务器称为第一元数据服务器,将第二文件集群中的元数据服务器称为第二元数据服务器。
其中,第二文件集群中的用户设备,主要用于在需要第一文件时,向第一元数据服务器发送文件读取请求。第一文件集群中的第一元数据服务器,用于接收第二文件集群中的用户设备发送的文件读取请求,文件读取请求用于请求第一文件集群中的第一文件,将第一文件的数据副本复制到第二文件集群中的目标数据服务器中,并将目标数据服务器的信息更新至第一文件的元数据信息中,以及向第二文件集群中的第二元数据服务器和/或用户设备发送更新后第一文件的元数据信息,以供用户设备本次和/或后续从目标数据服务器上读取第一文件的数据副本。对第二文件集群中的用户设备来说,还可以接收第一元数据服务器发送的更新后第一文件的元数据信息,或者从第二元数据服务器获取更新后第一文件的元数据信息,并根据更新后第一文件的元数据信息,在本次和/或后续从目标数据服务器上读取第一文件的数据副本。可选地,用户设备具体用于:在首次请求第一文件时,或者在向第二元数据服务器请求第一文件的元数据信息但第二元数据服务器未能成功返回时,向第一元数据服务器发送文件读取请求。
可选地,多个文件集群部署于不同地域内。或者,多个文件集群的带宽资源不同。或者,多个文件集群分属于不同的业务***。
本实施例所示***可以执行上述图1-图3所示方法实施例,其实现原理和技术效果不再赘述。
为了对上述图4所示的***进行跨集群文件读取请求方法进行详细的说明,下面具体通过图5所示的数据副本跨域调度管理***为例进行说明。
分布式文件***(如HDFS)主要由元数据服务器(MS)和数据服务器(CS)组成。数据文件通常切分成数据块(chunk)存储在不同的CS上,并且为了保证数据不丢失,chunk会以多个副本存储。MS负责管理集群文件***的元数据信息,元数据主要包括:目录和文件空间,文件的chunk列表以及这些chunk存储在哪些CS上。MS同时负责在发现机器磁盘损坏时,发起复制任务把缺失的chunk副本复制到其他CS上以保证数据可靠性。CS负责管理本地所有chunk的读写,并定期向MS汇报自身状态并同步chunk元数据信息。客户端(用户设备)在访问数据文件时,先向MS查询该数据文件的元数据信息,并根据chunk副本的位置就近向CS请求相应的数据。
图5为本发明提供的数据副本跨域调度管理***的架构图,如图5所示,包括:两个分布式文件***集群的MS,分别部署在地域A和地域B。A集群的MS纪录了所有的文件和目录空间(/a/,/a/b,/a/c,/a/d/),每个文件的chunk列表(比如文件/a/b,它有两个chunk,C1和C2;/a/和/a/d/以“/“结尾表示目录,它没有数据chunk,因此列表为空[]),和每个chunk存储在哪些CS上(比如C2->[1,2]表示chunk C2存储在CS1,CS2上)。A集群部署了3个CS,分别CS1,CS2,CS3。同理B集群的MS有/f/,/f/g,/f/h,/f/k/这些文件目录,并部署CS4,CS5,CS6三个CS。
正常情况下,因为业务的本地性,集群A服务于地域A的任务线程(Task worker)访问,而集群B服务于地域B的Task worker访问,它们存储并服务各自地域的数据,相互独立。但有些业务场景需要结合两个集群的数据做分析,比如图中作业Task worker,它运行在地域B需要访问集群B的文件,又需要访问集群A的文件/a/b。如果/a/b这个文件需要被地域B的很多Task worker经常访问,那么直接跨域访问会造成大量的带宽传输和作业运行时间延长的问题。
基于图5所示的***架构图,本发明给出一种动态跨域调度数据副本的方案来解决上述问题,具体的副本跨域调度管理流程包括:
1、当集群A的MS发现大量跨域读取某些文件时(比如/a/b),或者管理员根据业务需要提前配置某些目录文件需要跨域访问。集群A的MS标注这些目录文件需要做跨域副本管理,并纪录目的地域和优先级。
2.集群A的MS与集群B的MS建立元数据同步通道,推送跨域目录文件的元数据信息,并且将后续的这些目录文件的元数据更新也及时推送给集群B的MS。
3.集群A的MS通过向集群B的MS获取集群B的CS状态列表,决定可以在哪些集群B的CS上生成文件的数据副本,比如图5中选取CS4来存储C1的新副本。
4.集群A的MS将复制C1副本到CS4的命令发送给CS4,并告知已有副本在CS1和CS3上,CS4从CS1和CS3选择其中之一,例如CS3,并与CS3建立数据复制通道,完成C1的副本复制。当CS4接收到完整的C1副本后,向集群A的MS定期汇报存储了C1副本。
5.集群A的MS更新C1的副本列表,原先的C1副本只存储在CS1和CS3上,现在添加跨域的CS4。集群A的MS同时将更新的元数据信息同步给集群B的MS。
6.集群B的Task worker需要读取集群A的/a/b文件,它的首次访问请求将到达集群A的MS,集群A的MS发现这是一个跨域同步目录文件,在返回结果的同时,告诉Taskworker后续访问可以直接从集群B的MS就近访问。
7.Task worker后续对元数据的访问将直接发送到集群B的MS,集群B的MS返回同步的元数据信息。
8.Task worker根据集群B的MS返回的元数据信息,如果发现集群B有相应文件的副本存在,就直接访问本集群的副本(比如C1),否则仍跨域访问(比如C2)。
9.随着集群A的MS不断将跨域文件副本复制到集群B(重复2-5的过程),集群B的Task worker的后续元数据和数据访问都将在本地完成。
另外,集群A的MS统一管理文件的本域和跨域的所有副本,如果某个地域的副本丢失,仍可以通过跨域复制补足,并且在这个过程中数据访问可以跨域完成,上层业务不会感知数据丢失。集群A的MS同时可以根据数据的访问热度动态决定总共保留几个副本,保留在哪些地域,更有效的利用存储空间,详细实现可参见前述实施例,在此不做详述。
图6为本发明另一实施例提供的元数据服务器的结构示意图,以位于第一文件集群中的元数据服务器为例进行说明,如图6所示,包括:
存储器61、处理器62以及通信组件63;
通信组件63,用于接收第二文件集群中的用户设备发送的文件读取请求,该文件读取请求用于请求第一文件集群中的第一文件;
存储器62,用于存储计算机程序。除此之外,存储器62,可被配置为存储其它各种数据以支持在终端设备上的操作。这些数据的示例包括用于在元数据服务器上操作的任何应用程序或方法的指令,会员信息,订单信息,图片,视频等。
存储器62可以由任何类型的易失性或非易失性存储介质或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器61,与存储器62和通信组件63耦合,用于执行计算机程序,以用于:
将第一文件的数据副本复制到第二文件集群中的目标数据服务器中,并将目标数据服务器的信息更新至第一文件的元数据信息中;以及
通过通信组件63向第二文件集群中的第二元数据服务器和/或用户设备发送第一文件的元数据信息,以供用户设备本次和/或后续从目标数据服务器上读取第一文件的数据副本;
通信组件63还用于:向第二文件集群中的第二元数据服务器和/或用户设备发送第一文件的元数据信息。
在一可选实施方式中,处理器61在将第一文件的数据副本复制到第二文件集群中的目标数据服务器中时,具体用于:
从第二元数据服务器中获取第二文件集群中各数据服务器的状态信息;根据第二文件集群中各数据服务器的状态信息,在第二文件集群中各数据服务器中确定目标数据服务器;向目标数据服务器发送生成第一文件的数据副本的命令,以使目标数据服务器从第一文件集群中保存有第一文件或第一文件的数据副本的数据服务器中复制第一文件的数据副本并返回第一文件的数据副本生成完成的结果信息。
在一可选实施方式中,处理器61在将第一文件的数据副本复制到第二文件集群中的目标数据服务器中之前,还用于:
根据文件读取请求,查询第一文件集群的元数据信息库,以获取第一文件的数据副本列表,数据副本列表包括第一文件的各数据副本所在文件集群的标识;在第一文件的数据副本列表中不包括第二文件集群的标识时,确定第二文件集群的各数据服务器中不存在第一文件的数据副本。
在一可选实施方式中,处理器61在通过通信组件63向第二文件集群中的第二元数据服务器和/或用户设备发送更新后第一文件的元数据信息之前,还用于:通过通信组件63向第二元数据服务器和/或用户设备发送更新之前第一文件的元数据信息,以供用户设备本次从不同于目标数据服务器的其它数据服务器上读取第一文件的数据副本。相应地,通信组件63还用于:向第二元数据服务器和/或用户设备发送更新之前第一文件的元数据信息。
在一可选实施方式中,处理器61在将第一文件的数据副本复制到第二文件集群中的目标数据服务器中之前,还用于:
根据第一时间范围内第二文件集群针对第一文件发起的文件读取请求的数量,确定第二文件集群对第一文件的访问热度;当第二文件集群对第一文件的访问热度大于或等于预设访问热度阈值时,对第一文件标注需要跨域生成数据副本的标识,并将第二文件集群作为需要跨域生成数据副本的目的集群,记录目的集群的标识。
在一可选实施方式中,处理器61还用于:根据第二时间范围内各个文件集群针对第一文件发起的文件读取请求的总数量,确定第一文件的整体访问热度;当第一文件的整体访问热度大于或等于预设整体热度阈值时,判断第一文件的数据副本的已有数量是否满足预设副本数条件;当判断结果为不满足时,根据各个文件集群对第一文件的访问热度,调整各个文件集群中第一文件的数据副本的数量。
进一步,对第二文件集群,处理器61在根据第二文件集群对第一文件的访问热度,调整第二文件集群中第一文件的数据副本的数量时,具体用于:
当第二文件集群对第一文件的访问热度小于预设访问热度阈值时,根据第一文件的数据副本列表,确定第二文件集群的数据服务器中存在第一文件的数据副本;
通过通信组件63向第二文件集群中保存有第一文件的数据副本的若干个数据服务器发送删除第一文件的数据副本的命令,以使若干个数据服务器删除第一文件的数据副本;
更新第一文件的元数据信息中的数据副本列表,并通过通信组件63将更新后的元数据信息发送给第二元数据服务器进行备份。
可选地,第一文件集群和第二文件集群部署于不同地域内。
进一步,如图6所示,终端设备还包括:显示器64、电源组件65、音频组件66等其它组件。图6中仅示意性给出部分组件,并不意味着元数据服务器只包括图6所示组件。
本实施例所示元数据服务器可以执行上述图1-图2所示方法实施例,其实现原理和技术效果不再赘述。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被计算机执行时能够实现上述方法实施例中与元数据服务器相关的步骤或操作,在此不再赘述。
图7为本发明另一实施例提供的用户设备的结构示意图,以位于第二文件集群中的用户设备为例进行说明,如图7所示,包括:
存储器71、处理器72以及通信组件73;
通信组件73,用于向第二文件集群中的第二元数据服务器发送元数据读取请求,以请求第二元数据服务器返回第一文件集群中第一文件的元数据信息;
存储器72,用于存储计算机程序;
处理器71,与存储器和通信组件耦合,用于执行计算机程序,以用于:
在第二元数据服务器成功返回第一文件的元数据信息时,根据第一文件的元数据信息确定第二文件集群中保存有第一文件的数据副本的数据服务器;以及
通过通信组件从保存有第一文件的数据副本的数据服务器中读取第一文件。
在一可选实施方式中,通信组件73具体用于在用户设备非首次请求第一文件时,向第二元数据服务器发送元数据读取请求。
在一可选实施方式中,处理器71还用于:当用户设备首次请求第一文件时,或者当第二元数据服务器未能成功返回第一文件的元数据信息时,通过通信组件73向第一文件集群中的第一元数据服务器发送文件读取请求,以供第一元数据服务器将第一文件的数据副本复制到第二文件集群中的目标数据服务器中,并接收第一元数据服务器返回的第一文件的元数据信息,或者从第二元数据服务器获取由第一元数据服务器同步的第一文件的元数据信息;进而,根据第一文件的元数据信息,从目标数据服务器中读取第一文件的数据副本。
进一步,如图7所示,终端设备还包括:显示器74、电源组件75、音频组件76等其它组件。图7中仅示意性给出部分组件,并不意味着元数据服务器只包括图7所示组件。
本实施例所示元数据服务器可以执行上述图3所示方法实施例,其实现原理和技术效果不再赘述。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被计算机执行时能够实现上述方法实施例中与用户设备相关的步骤或操作,在此不再赘述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (15)
1.一种文件读取方法,其特征在于,包括:
第一文件集群中的第一元数据服务器接收第二文件集群中的用户设备发送的文件读取请求,所述文件读取请求用于请求所述第一文件集群中的第一文件;
所述第一元数据服务器将所述第一文件的数据副本复制到所述第二文件集群中的目标数据服务器中,并将所述目标数据服务器的信息更新至所述第一文件的元数据信息中,以实现所述第一文件的数据副本由所述第一元数据服务器统一管理;
所述第一元数据服务器向所述第二文件集群中的第二元数据服务器和/或所述用户设备发送更新后所述第一文件的元数据信息,以供所述用户设备本次和/或后续从所述目标数据服务器上读取所述第一文件的数据副本,并对所述第一文件集群中的所述第一文件进行跨集群数据分析;
所述方法还包括:
所述第一元数据服务器根据第二时间范围内各个文件集群针对所述第一文件发起的文件读取请求的总数量,确定所述第一文件的整体访问热度;当所述第一文件的整体访问热度大于或等于预设整体热度阈值时,判断所述第一文件的数据副本的已有数量是否满足预设副本数条件;当判断结果为不满足时,根据各个文件集群对所述第一文件的访问热度,调整各个文件集群中所述第一文件的数据副本的数量。
2.根据权利要求1所述的方法,其特征在于,所述第一元数据服务器将所述第一文件的数据副本复制到所述第二文件集群中的目标数据服务器中,包括:
所述第一元数据服务器从所述第二元数据服务器中获取所述第二文件集群中各数据服务器的状态信息;
所述第一元数据服务器根据所述第二文件集群中各数据服务器的状态信息,在所述第二文件集群中各数据服务器中确定所述目标数据服务器;
所述第一元数据服务器向所述目标数据服务器发送生成所述第一文件的数据副本的命令,以使所述目标数据服务器从所述第一文件集群中保存有所述第一文件或所述第一文件的数据副本的数据服务器中复制所述第一文件的数据副本并返回所述第一文件的数据副本生成完成的结果信息。
3.根据权利要求1所述的方法,其特征在于,所述第一元数据服务器将所述第一文件的数据副本复制到所述第二文件集群中的目标数据服务器中之前,还包括:
所述第一元数据服务器根据所述文件读取请求,查询所述第一文件集群的元数据信息库,以获取所述第一文件的数据副本列表,所述数据副本列表包括所述第一文件的各数据副本所在文件集群的标识;
在所述第一文件的数据副本列表中不包括所述第二文件集群的标识时,确定所述第二文件集群的各数据服务器中不存在所述第一文件的数据副本。
4.根据权利要求1所述的方法,其特征在于,所述第一元数据服务器向所述第二文件集群中的第二元数据服务器和/或所述用户设备发送更新后所述第一文件的元数据信息之前,还包括:
所述第一元数据服务器向所述第二元数据服务器和/或所述用户设备发送更新之前所述第一文件的元数据信息,以供所述用户设备本次从不同于所述目标数据服务器的其它数据服务器上读取所述第一文件的数据副本。
5.根据权利要求1所述的方法,其特征在于,所述第一元数据服务器将所述第一文件的数据副本复制到所述第二文件集群中的目标数据服务器中之前,还包括:
所述第一元数据服务器根据第一时间范围内所述第二文件集群针对所述第一文件发起的文件读取请求的数量,确定所述第二文件集群对所述第一文件的访问热度;
当所述第二文件集群对所述第一文件的访问热度大于或等于预设访问热度阈值时,对所述第一文件标注需要跨域生成数据副本的标识,并将所述第二文件集群作为需要跨域生成数据副本的目的集群,记录所述目的集群的标识。
6.根据权利要求1所述的方法,其特征在于,对所述第二文件集群,根据所述第二文件集群对所述第一文件的访问热度,调整所述第二文件集群中所述第一文件的数据副本的数量,包括:
当所述第二文件集群对所述第一文件的访问热度小于预设访问热度阈值时,所述第一元数据服务器根据所述第一文件的数据副本列表,确定所述第二文件集群的数据服务器中存在所述第一文件的数据副本;
所述第一元数据服务器向所述第二文件集群中保存有所述第一文件的数据副本的若干个数据服务器发送删除所述第一文件的数据副本的命令,以使所述若干个数据服务器删除所述第一文件的数据副本;
所述第一元数据服务器更新所述第一文件的元数据信息中的数据副本列表,并将所述更新后的元数据信息发送给所述第二元数据服务器进行备份。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述第一文件集群和所述第二文件集群部署于不同地域内。
8.一种文件读取方法,其特征在于,包括:
第二文件集群中的用户设备向所述第二文件集群中的第二元数据服务器发送元数据读取请求,以请求所述第二元数据服务器返回第一文件集群中第一文件的元数据信息;
当所述第二元数据服务器成功返回所述第一文件的元数据信息时,所述用户设备根据所述第一文件的元数据信息确定所述第二文件集群中保存有所述第一文件的数据副本的数据服务器;所述第二文件集群中所述第一文件的数据副本,是由第一元数据服务器在接收到所述第二文件集群中的用户设备发送的用于请求所述第一文件的文件读取请求的情况下,将所述第一文件的数据副本复制到所述第二文件集群中的数据服务器中,并将所述数据服务器的信息更新至所述第一文件的元数据信息中,以实现所述第一文件的数据副本由所述第一元数据服务器统一管理;其中,所述第一元数据服务器对所述第一文件的数据副本进行统一管理包括:所述第一元数据服务器根据第二时间范围内各个文件集群针对所述第一文件发起的文件读取请求的总数量,确定所述第一文件的整体访问热度;当所述第一文件的整体访问热度大于或等于预设整体热度阈值时,判断所述第一文件的数据副本的已有数量是否满足预设副本数条件;当判断结果为不满足时,根据各个文件集群对所述第一文件的访问热度,调整各个文件集群中所述第一文件的数据副本的数量;
所述用户设备从所述保存有所述第一文件的数据副本的数据服务器中读取所述第一文件,并对所述第一文件集群中的所述第一文件进行跨集群数据分析。
9.根据权利要求8所述的方法,其特征在于,所述第二文件集群中的用户设备向所述第二文件集群中的第二元数据服务器发送元数据读取请求,包括:
当所述用户设备非首次请求所述第一文件时,向所述第二元数据服务器发送所述元数据读取请求。
10.根据权利要求9所述的方法,其特征在于,还包括:
当所述用户设备首次请求所述第一文件时,或者当所述第二元数据服务器未能成功返回所述第一文件的元数据信息时,向所述第一文件集群中的第一元数据服务器发送文件读取请求,以供所述第一元数据服务器将所述第一文件的数据副本复制到所述第二文件集群中的目标数据服务器中;
所述用户设备接收所述第一元数据服务器返回的所述第一文件的元数据信息,或者从所述第二元数据服务器获取由所述第一元数据服务器同步的所述第一文件的元数据信息;
所述用户设备根据所述第一文件的元数据信息,从所述目标数据服务器中读取所述第一文件的数据副本。
11.一种文件读取***,其特征在于,包括:多个文件集群,每个文件集群包括元数据服务器和数据服务器;
第一文件集群中的第一元数据服务器,用于接收第二文件集群中的用户设备发送的文件读取请求,所述文件读取请求用于请求所述第一文件集群中的第一文件,将所述第一文件的数据副本复制到所述第二文件集群中的目标数据服务器中,并将所述目标数据服务器的信息更新至所述第一文件的元数据信息中,以实现所述第一文件的数据副本由所述第一元数据服务器统一管理,以及向所述第二文件集群中的第二元数据服务器和/或所述用户设备发送更新后所述第一文件的元数据信息,以供所述用户设备本次和/或后续从所述目标数据服务器上读取所述第一文件的数据副本,并对所述第一文件集群中的所述第一文件进行跨集群数据分析,以及根据第二时间范围内各个文件集群针对所述第一文件发起的文件读取请求的总数量,确定所述第一文件的整体访问热度;当所述第一文件的整体访问热度大于或等于预设整体热度阈值时,判断所述第一文件的数据副本的已有数量是否满足预设副本数条件;当判断结果为不满足时,根据各个文件集群对所述第一文件的访问热度,调整各个文件集群中所述第一文件的数据副本的数量;
所述第二文件集群中的用户设备,用于在需要所述第一文件时,向所述第一元数据服务器发送所述文件读取请求;
其中,所述第一文件集群和所述第二文件集群是所述多个文件集群中的不同文件集群。
12.根据权利要求11所述的***,其特征在于,所述用户设备具体用于:
在首次请求所述第一文件时,或者在向所述第二元数据服务器请求所述第一文件的元数据信息但所述第二元数据服务器未能成功返回时,向所述第一元数据服务器发送所述文件读取请求。
13.根据权利要求11或12所述的***,其特征在于,所述多个文件集群部署于不同地域内。
14.一种元数据服务器,位于第一文件集群中,其特征在于,包括:存储器、处理器以及通信组件;
所述通信组件,用于接收第二文件集群中的用户设备发送的文件读取请求,所述文件读取请求用于请求所述第一文件集群中的第一文件;
所述存储器,用于存储计算机程序;
所述处理器,与所述存储器和所述通信组件耦合,用于执行所述计算机程序,以用于:
将所述第一文件的数据副本复制到所述第二文件集群中的目标数据服务器中,并将所述目标数据服务器的信息更新至所述第一文件的元数据信息中,以实现所述第一文件的数据副本由所述元数据服务器统一管理;以及
通过所述通信组件向所述第二文件集群中的第二元数据服务器和/或所述用户设备发送所述第一文件的元数据信息,以供所述用户设备本次和/或后续从所述目标数据服务器上读取所述第一文件的数据副本,并对所述第一文件集群中的所述第一文件进行跨集群数据分析;以及
根据第二时间范围内各个文件集群针对所述第一文件发起的文件读取请求的总数量,确定所述第一文件的整体访问热度;当所述第一文件的整体访问热度大于或等于预设整体热度阈值时,判断所述第一文件的数据副本的已有数量是否满足预设副本数条件;当判断结果为不满足时,根据各个文件集群对所述第一文件的访问热度,调整各个文件集群中所述第一文件的数据副本的数量;
所述通信组件还用于:向所述第二文件集群中的第二元数据服务器和/或所述用户设备发送更新后所述第一文件的元数据信息。
15.一种用户设备,位于第二文件集群中,其特征在于,包括:存储器、处理器以及通信组件;
所述通信组件,用于向所述第二文件集群中的第二元数据服务器发送元数据读取请求,以请求所述第二元数据服务器返回第一文件集群中第一文件的元数据信息;
所述存储器,用于存储计算机程序;
所述处理器,与所述存储器和所述通信组件耦合,用于执行所述计算机程序,以用于:
在所述第二元数据服务器成功返回所述第一文件的元数据信息时,根据所述第一文件的元数据信息确定所述第二文件集群中保存有所述第一文件的数据副本的数据服务器;所述第二文件集群中所述第一文件的数据副本,是由第一元数据服务器在接收到所述第二文件集群中的用户设备发送的用于请求所述第一文件的文件读取请求的情况下,将所述第一文件的数据副本复制到所述第二文件集群中的数据服务器中,并将所述数据服务器的信息更新至所述第一文件的元数据信息中,以实现所述第一文件的数据副本由所述第一元数据服务器统一管理;其中,所述第一元数据服务器对所述第一文件的数据副本进行统一管理包括:所述第一元数据服务器根据第二时间范围内各个文件集群针对所述第一文件发起的文件读取请求的总数量,确定所述第一文件的整体访问热度;当所述第一文件的整体访问热度大于或等于预设整体热度阈值时,判断所述第一文件的数据副本的已有数量是否满足预设副本数条件;当判断结果为不满足时,根据各个文件集群对所述第一文件的访问热度,调整各个文件集群中所述第一文件的数据副本的数量;以及
通过所述通信组件从所述保存有所述第一文件的数据副本的数据服务器中读取所述第一文件,并对所述第一文件集群中的所述第一文件进行跨集群数据分析。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810020394.5A CN110022338B (zh) | 2018-01-09 | 2018-01-09 | 文件读取方法、***、元数据服务器和用户设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810020394.5A CN110022338B (zh) | 2018-01-09 | 2018-01-09 | 文件读取方法、***、元数据服务器和用户设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110022338A CN110022338A (zh) | 2019-07-16 |
CN110022338B true CN110022338B (zh) | 2022-05-27 |
Family
ID=67187851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810020394.5A Active CN110022338B (zh) | 2018-01-09 | 2018-01-09 | 文件读取方法、***、元数据服务器和用户设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110022338B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825704B (zh) * | 2019-09-27 | 2023-09-01 | 华为云计算技术有限公司 | 一种读数据方法、写数据方法及服务器 |
CN114817140A (zh) * | 2021-01-18 | 2022-07-29 | 华为技术有限公司 | 分布式文件访问方法及相关设备 |
CN113656496A (zh) * | 2021-07-30 | 2021-11-16 | 星辰天合(北京)数据科技有限公司 | 数据处理方法及*** |
CN114338694B (zh) * | 2022-03-04 | 2022-05-31 | 广州鹏捷科技股份有限公司 | 一站式云数据中心服务器调度方法及*** |
CN116301593B (zh) * | 2023-02-09 | 2024-02-02 | 安超云软件有限公司 | 在云平台下跨集群跨存储拷贝块数据的方法及应用 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729357A (zh) * | 2008-10-14 | 2010-06-09 | 华为技术有限公司 | 媒体文件存储处理与业务处理方法及装置、服务器集群 |
CN102866995A (zh) * | 2011-07-05 | 2013-01-09 | 中兴通讯股份有限公司 | 对等网络的文件访问方法、管理方法及分布式文件*** |
CN103220367A (zh) * | 2013-05-13 | 2013-07-24 | 深圳市中博科创信息技术有限公司 | 数据复制方法及数据存储*** |
CN107169056A (zh) * | 2017-04-27 | 2017-09-15 | 四川长虹电器股份有限公司 | 分布式文件***及节省分布式文件***存储空间的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217571B (zh) * | 2008-01-18 | 2010-07-28 | 清华大学 | 用于多副本数据网格***中的写/读文件操作的方法 |
US9158788B2 (en) * | 2009-12-16 | 2015-10-13 | International Business Machines Corporation | Scalable caching of remote file data in a cluster file system |
CN102595209A (zh) * | 2012-01-19 | 2012-07-18 | 杭州华三通信技术有限公司 | 视频监控***中的跨域点播方法和视频管理服务器 |
CN103647797A (zh) * | 2013-11-15 | 2014-03-19 | 北京邮电大学 | 一种分布式文件***及其数据访问方法 |
CN104113597B (zh) * | 2014-07-18 | 2016-06-08 | 西安交通大学 | 一种多数据中心的hdfs数据读写方法 |
CN104618482B (zh) * | 2015-02-02 | 2019-07-16 | 浙江宇视科技有限公司 | 访问云数据的方法、服务器、传统存储设备、*** |
-
2018
- 2018-01-09 CN CN201810020394.5A patent/CN110022338B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729357A (zh) * | 2008-10-14 | 2010-06-09 | 华为技术有限公司 | 媒体文件存储处理与业务处理方法及装置、服务器集群 |
CN102866995A (zh) * | 2011-07-05 | 2013-01-09 | 中兴通讯股份有限公司 | 对等网络的文件访问方法、管理方法及分布式文件*** |
CN103220367A (zh) * | 2013-05-13 | 2013-07-24 | 深圳市中博科创信息技术有限公司 | 数据复制方法及数据存储*** |
CN107169056A (zh) * | 2017-04-27 | 2017-09-15 | 四川长虹电器股份有限公司 | 分布式文件***及节省分布式文件***存储空间的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110022338A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110022338B (zh) | 文件读取方法、***、元数据服务器和用户设备 | |
US9906598B1 (en) | Distributed data storage controller | |
US8918392B1 (en) | Data storage mapping and management | |
US11314444B1 (en) | Environment-sensitive distributed data management | |
US10289692B2 (en) | Preserving file metadata during atomic save operations | |
US8838595B2 (en) | Operating on objects stored in a distributed database | |
US9304815B1 (en) | Dynamic replica failure detection and healing | |
US8090917B2 (en) | Managing storage and migration of backup data | |
US11893264B1 (en) | Methods and systems to interface between a multi-site distributed storage system and an external mediator to efficiently process events related to continuity | |
US8341118B2 (en) | Method and system for dynamically replicating data within a distributed storage system | |
US9053167B1 (en) | Storage device selection for database partition replicas | |
US8930364B1 (en) | Intelligent data integration | |
US10534776B2 (en) | Proximity grids for an in-memory data grid | |
US9031906B2 (en) | Method of managing data in asymmetric cluster file system | |
US9218251B1 (en) | Method to perform disaster recovery using block data movement | |
CN111694791B (zh) | 一种分布式基础框架中的数据存取方法及装置 | |
US10620871B1 (en) | Storage scheme for a distributed storage system | |
CN110825704B (zh) | 一种读数据方法、写数据方法及服务器 | |
CN114385561A (zh) | 文件管理方法和装置及hdfs*** | |
US9934240B2 (en) | On demand access to client cached files | |
CN113420005A (zh) | 数据存储方法、***、电子设备及计算机存储介质 | |
CN106339176B (zh) | 中间文件处理方法、客户端、服务器和*** | |
US10713121B1 (en) | Dynamic migration of a cloud based distributed file system metadata server | |
US20200285620A1 (en) | Content-based data migration | |
CN111198849A (zh) | 一种基于Hadoop的供电数据读写***及其工作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Zhang Jianfeng Inventor after: Zhu Jiaji Inventor before: Zhu Jiaji |