CN110825704A - 一种读数据方法、写数据方法及服务器 - Google Patents

一种读数据方法、写数据方法及服务器 Download PDF

Info

Publication number
CN110825704A
CN110825704A CN201910927180.0A CN201910927180A CN110825704A CN 110825704 A CN110825704 A CN 110825704A CN 201910927180 A CN201910927180 A CN 201910927180A CN 110825704 A CN110825704 A CN 110825704A
Authority
CN
China
Prior art keywords
data
copy
target
management server
target data
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.)
Granted
Application number
CN201910927180.0A
Other languages
English (en)
Other versions
CN110825704B (zh
Inventor
黄爽
洪福成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910927180.0A priority Critical patent/CN110825704B/zh
Publication of CN110825704A publication Critical patent/CN110825704A/zh
Priority to PCT/CN2020/096124 priority patent/WO2021057108A1/zh
Priority to EP20869429.9A priority patent/EP3951607A4/en
Priority to US17/526,659 priority patent/US20220075757A1/en
Application granted granted Critical
Publication of CN110825704B publication Critical patent/CN110825704B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请实施例提供了一种读数据方法、写数据方法及服务器,涉及存储领域,单个DC故障后不会影响客户端在这个DC上的数据访问,能够响应客户端的请求。包括:资源管理服务器从客户端接收读数据请求,所述读数据请求用于请求多个文件;所述资源管理服务器从第一数据中心读取目标数据的副本,所述目标数据包括所述多个文件中不同文件的数据;其中,所述第一数据中心为存储所述目标数据的副本的多个数据中心中数据本地化最高的数据中心,所述数据本地化用于指示数据中心存储的目标数据的副本与所述目标数据的接近程度;所述资源管理服务器向所述客户端发送从所述第一数据中心读取的所述目标数据的副本。

Description

一种读数据方法、写数据方法及服务器
技术领域
本申请实施例涉存储领域,尤其涉及一种读数据方法、写数据方法及服务器。
背景技术
当今企业大数据平台承载的数据量及业务数量越来越大,企业的Hadoop集群的规模也越来越大,企业更倾向于采用单集群模式建设Hadoop集群。此外,还可以Hadoop集群部署多个数据中心(data center,DC)以承载大规模的数据和业务。
现有Hadoop集群中一个数据的所有副本,只存储在某一个DC内。例如,文件1的所有副本只存储在DC1,文件2的所有副本只均存储在DC2。此外,为保证数据本地化,避免跨DC访问副本,为客户端的读数据请求分配的另一种资源协调者(yet another resourcenegotiator,YARN)应用程序(application)只同一个DC上运行。
如果Hadoop集群中某个DC发生故障后,该DC上正在运行YARN applicatio终断,客户端的请求得不到响应。此外,该DC上的数据不可读写,等该DC完全恢复后,大部分数据均丢失,可靠性难以保证。
发明内容
本申请实施例提供一种读数据方法、写数据方法及服务器,单个DC故障后不会影响客户端在这个DC上的数据访问,能够响应客户端的请求。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,提供了一种读数据方法,包括:资源管理服务器从客户端接收读数据请求,读数据请求用于请求多个文件;还可以从第一数据中心读取目标数据的副本,目标数据包括所述多个文件中不同文件的数据。其中,第一数据中心为存储目标数据的副本的多个数据中心中数据本地化最高的数据中心,数据本地化用于指示数据中心存储的目标数据的副本与目标数据的接近程度。最后,资源管理服务器向客户端发送从第一数据中心读取的目标数据的副本。
本申请实施例中,副本不仅仅存储在一个DC,而是跨DC存储,一个数据的副本可以存储在多个DC。此外,结合副本的实际分布,始终在数据本地化最高的一个DC上执行客户端的读数据请求,避免客户端跨DC读写数据过多地占用DC之间的带宽。在单个DC故障后,客户端还可以在其他存储有目标数据的DC上访问到副本,避免客户端的请求得不到响应。
结合第一方面,在第一方面的第一种可能的实现方式中,读数据请求携带目标数据的目录信息,资源管理服务器可以根据所述多个文件的目录信息确定存储目标数据的副本的多个数据中心,进一步,计算所述多个数据中心存储的目标数据的副本分别与目标数据的接近程度,将存储的目标数据的副本最接近目标数据的数据中心确定为第一数据中心。
本申请实施例提供中,副本跨DC放置,可以根据目标数据的目录信息确定目标数据的副本的实际分布,进而可以计算每一个DC针对于目标数据的数据本地化,以便在数据本地化最高的DC中访问目标数据的副本,尽可能在同一个DC访问到更接近目标数据的副本,避免过多占用DC间的通信带宽跨DC访问副本,从而可以提升整个系统的性能。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,方法还包括:在第一数据中心出现故障时,资源管理服务器从第二数据中心读取目标数据的副本,其中,第二数据中心为所述多个数据中心中除第一数据中心外数据本地化最高的数据中心;资源管理服务器向客户端发送从第二数据中心读取的目标数据的副本。。
本申请实施例提供中,在单个DC故障后,仍可以结合副本的实际分布,确定出存储有目标副本的其余DC中,数据本地化最高的一个数据中心,尽可能在该数据中心访问到更接近目标数据的副本,避免过多占用DC间的通信带宽跨DC访问副本,从而可以提升整个系统的性能。
结合第一方面或第一方面的第一或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,目标数据的副本为存储在客户端所在的数据中心的副本。
本申请实施例中,跨DC写入副本时,首先在客户端所在的DC写入副本,可以减少HDFS写操作的流量。
第二方面,提供了一种写数据方法,包括:名称管理服务器从客户端接收写数据请求,写数据请求携带目标数据,还可以根据目标数据将目标数据的副本写入多个数据中心。
本申请实施例中,副本不仅仅存储在一个DC,而是跨DC存储,一个数据的副本可以存储在多个DC。基于此,结合副本的实际分布,始终在数据本地化最高的一个DC上执行客户端的读数据请求、读数据请求,避免客户端跨DC读写数据过多地占用DC之间的带宽。在单个DC故障后,客户端还可以在其他存储有目标数据的DC上访问到副本,避免客户端的请求得不到响应。
结合第二方面,在第二方面的第一种可能的实现方式中,名称管理服务器根据目标数据将目标数据的副本写入多个数据中心,包括:名称管理服务器在客户端所在的数据中心写入第一个所述目标数据的副本。
本申请实施例中,跨DC写入副本时,首先在客户端所在的DC写入副本,可以减少HDFS写操作的流量。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,方法还包括:在目标数据的副本实际分布的数据中心与副本放置策略指示的多个数据中心不一致时,名称管理服务器将目标数据的副本调整到副本放置策略指示的多个数据中心。
本申请实施例中,对副本的实际分布进行监测,保证副本的实际分布与副本放置策略保持一致。
具体实现中,若目标副本实际分布的第二数据中心不属于副本放置策略指示的所述多个数据中心,则删除第二数据中心中的目标副本;若副本放置策略指示的所述多个数据中心中的第三数据中心不包括目标数据副,则在第三数据中心写入目标副本。
本申请实施例还提供了监测副本分布的具体方法,能够保证副本的实际分布与副本放置策略保持一致。
第三方面,提供了一种资源管理服务器,包括:收发单元,用于从客户端接收读数据请求,读数据请求用于请求多个文件;处理单元,用于从第一数据中心读取目标数据的副本,目标数据包括所述多个文件中不同文件的数据;其中,第一数据中心为存储目标数据的副本的所述多个数据中心中数据本地化最高的数据中心,数据本地化用于指示数据中心存储的目标数据的副本与目标数据的接近程度。收发单元,还用于向客户端发送从第一数据中心读取的目标数据的副本。
结合第三方面,在第三方面的第一种可能的实现方式中,处理单元还用于:根据多个文件的目录信息确定存储目标数据的副本的多个数据中心,读数据请求携带目标数据的目录信息;计算多个数据中心存储的目标数据的副本分别与目标数据的接近程度,将存储的目标数据的副本最接近目标数据的数据中心确定为第一数据中心。
结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,处理单元还用于:在第一数据中心出现故障时,从第二数据中心读取目标数据的副本,其中,第二数据中心为多个数据中心中除第一数据中心外数据本地化最高的数据中心;收发单元还用于:向客户端发送从第二数据中心读取的目标数据的副本。
结合第三方面或第三方面的第一或第二种可能的实现方式,在第三方面的第二种可能的实现方式中,目标数据的副本为存储在客户端所在的数据中心的副本。
第四方面,提供了一种名称管理服务器,包括:收发单元,用于从客户端接收写数据请求,写数据请求携带目标数据;处理单元,用于根据目标数据将目标数据的副本写入多个数据中心。
结合第四方面,在第四方面的第一种可能的实现方式中,处理单元还用于:在客户端所在的数据中心写入第一个目标数据的副本。
结合第四方面或第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,处理单元还用于:在目标数据的副本实际分布的数据中心与副本放置策略指示的多个数据中心不一致时,将目标数据的副本调整到副本放置策略指示的多个数据中心。
第五方面,本申请提供一种资源管理服务器,该资源管理服务器包括处理器和存储器。该存储器存储计算机指令;该处理器执行该存储器存储的计算机指令时,所述资源管理服务器执行上述第一方面或者第一方面的各种可能实现提供的方法。
第六方面,本申请提供一种名称管理服务器,该名称管理服务器包括处理器和存储器。该存储器存储计算机指令;该处理器执行该存储器存储的计算机指令,所述名称管理服务器执行上述第二方面或者第二方面的各种可能实现提供的方法。
第七方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,该计算机指令指示资源管理服务器执行上述第一方面或者第一方面的各种可能实现提供的方法。
第八方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,该计算机指令指示名称管理服务器执行上述第二方面或者第二方面的各种可能实现提供的方法。
第九方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。资源管理服务器的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令时,资源管理服务器执行上述第一方面或者第一方面的各种可能实现提供的方法。
第十方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。名称管理服务器的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令时,名称管理服务器执行上述第二方面或者第二方面的各种可能实现提供的方法。
附图说明
图1为现有技术中HDFS的架构图;
图2为本申请实施例提供的数据存储系统的架构图;
图3为本申请实施例提供的服务器的结构框图;
图4为本申请实施例提供的写数据方法的流程示意图;
图5为本申请实施例提供的副本写入示意图;
图6为本申请实施例提供的副本写入的另一示意图;
图7为本申请实施例提供的副本监测示意图;
图8为本申请实施例提供的读数据方法的流程示意图;
图9为本申请实施例提供的副本分布示意图;
图10为本申请实施例提供的另一副本分布示意图;
图11为本申请实施例提供的应用程序分配示意图;
图12为本申请实施例提供的另一应用程序分配示意图;
图13为本申请实施例提供的服务器的另一结构框图;
图14为本申请实施例提供的服务器的另一结构框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
首先,对本申请实施例涉及的术语进行解释说明:
(1)Hadoop分布式文件系统(Hadoop distributed file system,HDFS)
HDFS是Hadoop的文件系统,用于存储海量的数据,具有高容错性、高吞吐量(highthroughput)的特点。参考图1,HDFS包括YARN Resource Manager(YARN资源管理者)、HDFS客户端、名字节点(Name Node)和众多数据节点(Data Node,DN)。HDFS中一个机架包括多个数据节点,多个机架构成一个数据中心(data center,DC)。HDFS客户端写入文件时,可以将文件分割成多个数据块,针对每个数据块可以存储多个副本,不同的副本存储在不同的数据节点中。
其中,YARN Resource Manager用于对YARN进行管理,可以通过YARN ResourceManager对Hadoop中的数据进行统一管理。例如,YARN Resource Manager接收来自客户端的读写请求,并为该请求分配把该请求分配MapReduce任务,例如,由YARN application在数据节点1、数据节点2上读取数据。YARN是Hadoop的资源调度框架,可以为计算引擎的运行分配计算资源。
客户端用于用户创建文件、访问文件、修改文件。
名字节点负责管理文件的命名空间(namespace),存储有文件的元数据。其中,元数据可以是文件的文件名、文件的目录、文件的块列表以及块对应的数据节点信息等。需要说明的是,文件的目录,即访问文件的路径;文件的块列表指示文件包括的数据块;块对应的数据节点信息用于指示数据块存储在哪个数据节点上。
数据节点用来存储数据,接收客户端的读数据请求(还可以称为数据读写请求)。
此外,跨DC集群包括多个DC,可以存储海量的数据。示例的,图1所示的Hadoop是跨DC集群的Hadoop,即Hadoop的数据节点分布在三个及以上的数据中心。其中,DC指的是对数据信息进行集中处理、存储、传输、交换、管理的一个物理空间,而计算机、服务器、网络设备、通信设备、数据中心等是数据中心的关键设备。
(2)MapReduce
MapReduce是Hadoop的计算框架(计算引擎),为客户端提交的读数据请求分配应用程序。通过MapReduce可以将应用程序运行在YARN上,以执行HDFS客户端的HDFS上读写请求。
上述MapReduce就是一种计算引擎,客户端提交读数据请求,为客户端的读数据请求分配MapReduce任务后,YARN可以为MapReduce任务分配计算资源。
(3)副本放置策略(block placement policy,BPP)
在HDFS存储数据时,放置副本所遵循的规则称为BPP。现有技术中,同一个数据块的所有副本放置在同一个DC,因此现有BPP可以是副本在一个DC中的放置规则,例如,副本在同一个DC的不同机架上的放置规则。
本申请实施例中,同一个数据块的副本可以跨DC放置,BPP可以指示副本在不同数据中心(data center,DC)的放置规则。
示例的,可以将同一数据块的不同副本放置在DC集群中的不同机架上,可以防止在某个机架故障时副本全部丢失,提高系统的可靠性。
(4)数据本地化(data locality,DL)
为了尽量减小客户端在Hadoop中读数据的带宽消耗以及延迟,尽可能选择与客户端所在的节点最近的副本。数据本地化可以代表HDFS数据与处理该数据的MapReduce任务的“接近”程度,数据本地化越高,代表副本所在的数据节点与客户端的距离越近。在本地数据化较高的节点上读取副本,可以减小读数据的带宽消耗以及延迟。
示例的,客户端请求的文件包括数据块1、数据块2以及数据块3。其中,YARNapplication 1用于访问DC 1,DC 1包括数据块1的副本;YARN application 2用于访问DC2,DC 2包括数据块1的副本、数据块2的副本以及数据块3的副本;YARN application 3用于访问DC3,DC 3包括数据块2的副本以及数据块3的副本。可见,通过YARN application 2可以访问到整个文件,不需要跨DC耗费流量访问副本,DC 2的数据本地化最高。
(5)恢复点目标(recovery point object,RPO)
灾难发生后,假设系统(例如,HDFS)恢复灾难发生前的第一时刻的数据。RPO指的就是第一时刻到灾难发生时刻之间的时长。
(6)恢复时间目标(recovery time object,RTO)
RTO指的是灾难发生后,从系统(例如,HDFS)宕机导致业务停顿的时刻,到系统恢复且业务恢复运营时刻之间的时长。
图1是现有的Hadoop的系统架构图。如图1所示,现有HDFS中一个数据的所有副本,只存储在某一个DC内。例如,文件1的所有副本(三个副本:DN1-1、DN1-2、:DN1-3)均存储在DC 1,文件2的所有副本(三个副本:DN2-1、DN2-2、DN2-3)均存储在DC 2。
另外,YARN Resource Manager接收客户端的读数据请求,为读数据请求分配的YARN application只同一个DC上运行,以此保证数据本地化,避免跨DC访问副本。
但是,现有的HDFS系统中某DC发生故障后,该DC上正在运行Application终断,即RTO>0。此外,该DC上的数据不可读写,等该DC完全恢复后,大部分数据均丢失,即RPO>0。可见现有技术中HDFS的可靠性难以保证。
图2是本申请实施例提供的数据存储系统的架构图,包括HDFS客户端、资源管理服务器(即YARN Resource Manager,YARN资源管理者)、HDFS名字节点(HDFS NameNode)、HDFS数据节点(HDFS DataNode)、至少三个DC,图2中仅以DC 1、DC 2、DC 3这三个DC作为示例。需要说明的是,HDFS客户端存在于数据存储系统中的某个DC中。例如,图2所示的DC 2。此外,HDFS NameNode跨DC部署,例如,图2中DC 1的HDFS NameNode是HDFS NameNode 1和HDFSNameNode 2,HDFS NameNode 1和HDFS NameNode 2分别部署在DC 1和DC 2,HDFS NameNode1和HDFS NameNode 2可以管理DC 1的NameSpace。HDFS NameNode 1为主NameNode,相应地HDFS NameNode 2为备用NameNode。资源管理服务器跨DC部署;例如,图2中DC 1的YARNResource Manager是YARN Resource Manager 1和YARN Resource Manager 2,YARNResource Manager 1和YARN Resource Manager 2分别部署在DC 1和DC 2,YARN ResourceManager 1和YARN Resource Manager 2可以对DC 1进行资源管理。
虽然图2未示出,但可以理解的是,DC 2、DC 3的HDFS NameNode也可以跨DC部署。例如,DC 2的HDFS NameNode是HDFS NameNode 3、HDFS NameNode 4分别部署在DC 2和DC3,HDFS NameNode 3、HDFS NameNode 4可以管理DC 2的NameSpace。DC 3的HDFS NameNode是HDFS NameNode 5、HDFS NameNode 6分别部署在DC 3和DC 1,HDFS NameNode 5、HDFSNameNode 6可以管理DC 3的NameSpace。
同样,DC 2、DC 3的YARN Resource Manager也可以跨DC部署。此外,ZooKeeper(开放源码的分布式应用程序协调服务)、JournalNode(日志节点)跨DC部署在三个DC,单个DC故障时,其他DC的ZooKeeper、JournalNode可以正常工作,数据访问不受影响。
其中,一个DC可以包括多个数据节点。参考图2,DC 1包括DN 1-1、DN 1-2、DN 1-3等多个数据节点;DC 2包括DN 2-1、DN 2-2、DN 2-3等多个数据节点;DC 3包括DN 3-1、DN3-2、DN 3-3等多个数据节点。此外,同一个数据块的副本跨DC存储,例如,图2中文件1的副本存储在DC 1、DC 2,文件2的副本存储在DC 1、DC 2。在某个DC故障时,还可以在其他DC上访问到该数据块的副本,保证客户端的正常读写、访问。
资源管理服务器可以是本申请实施例所述的YARN Resource Manager,用于接收客户端的读数据请求,根据客户端的读数据请求以及客户端请求文件的副本的实际分布,计算数据本地化最高的某个DC,分配Application在该DC上执行客户端的读数据请求。当该DC故障后,资源管理服务器重新计算数据本地化最高的另一个DC,将该Application迁移到重新确定的这个DC上执行客户端的读数据请求。
需要说明的是,副本跨DC存储时,客户端有可能需要占用DC之间的带宽在不同DC的数据节点上读数据或写数据。但是不同DC之间的通信带宽往往是有限的,客户端占用DC之间的通信带宽跨DC读数据或写数据,会大大影响DC之间的正常通信,影响整个数据存储系统的性能。示例的,如图2所示,客户端在DC 2中,假设客户端请求访问的副本存储在数据节点DN 1-3中,客户端就要占用DC 2与DC 1之间的通信带宽,在DC 1的DN 1-3中读取该副本。
本申请实施例中,副本不仅仅存储在一个DC,而是跨DC存储,一个数据的副本可以存储在多个DC。此外,结合副本的实际分布,始终在数据本地化最高的一个DC上执行客户端的读数据请求、读数据请求,避免客户端跨DC读写数据过多地占用DC之间的带宽。在单个DC故障后,客户端还可以在其他存储有目标数据的DC上访问到副本,避免客户端的请求得不到响应。
图3所示为本申请实施例提供的服务器30的硬件结构示意图。服务器30可以是本申请实施例所述的资源管理服务器、名称管理服务器。参考图3,服务器30包括处理器301、存储器302以及至少一个网络接口(图3中仅是示例性的以包括网络接口303为例进行说明)。其中,处理器301、存储器302以及网络接口303之间互相连接。
处理器301可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
网络接口303是服务器30的接口,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等。
存储器302可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态数据中心,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态数据中心,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁数据中心、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路302与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器302用于存储执行本申请方案的计算机执行指令,并由处理器301来控制执行。处理器301用于执行存储器302中存储的计算机执行指令,从而实现本申请下述实施例提供的意图处理方法。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器301可以包括一个或多个CPU,例如图3中的CPU0和CPU1。
在具体实现中,作为一种实施例,服务器30可以包括多个处理器,例如图3中的处理器301和处理器306。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,服务器30还可以包括输出设备304和输入设备305。输出设备304和处理器301通信,可以以多种方式来显示信息。例如,输出设备304可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备305和处理器301通信,可以以多种方式接收用户的输入。例如,输入设备305可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的服务器30可以是一个通用设备或者是一个专用设备。在具体实现中,服务器30可以是台式机、网络服务器、嵌入式设备或其他有图3中类似结构的设备。本申请实施例不限定服务器30的类型。
本申请实施例提供一种写数据方法,如图4所示,所述方法包括以下步骤401和步骤402。
步骤401、名称管理服务器从客户端接收写数据请求;所述写数据请求携带目标数据。
需要说明的是,本申请实施例所述的名称管理服务器可以是图2所示的HDFS NameNode。
步骤402、名称管理服务器根据所述目标数据将目标副本写入多个数据中心;所述目标副本为所述目标数据的副本。
需要说明的是,为了减少HDFS写操作的流量,首先在客户端所在的数据中心写入副本。示例的,在第一数据中心写入第一个目标副本,所述第一数据中心为所述客户端所在的数据中心。
具体实现中,预先设置跨DC存储副本的副本放置策略(BPP),名称管理服务器可以根据BPP跨DC写入副本,并且首先在HDFS客户端所在的DC中写入副本,即第一个副本存储在HDFS客户端所在的DC。随后,将其他副本依次写入到不同DC的数据节点中。可以理解的是,首先在HDFS客户端所在的DC写入副本,减少了客户端写数据占用的流量,从而提高了HDFS写操作的性能。
例如,参考图5,BPP指示将同一个数据块的副本写入DC 1、DC 2以及DC 3。名字节点按照BPP写入副本时,首先在HDFS客户端所在的DC 2写入一个副本,例如,在DC 2中的DN2-2中写入一个副本。接着,在DN 2-2中拷贝副本,将拷贝的副本写入DC 1的DN1-3中。最后,在DN 1-3中拷贝副本,将拷贝的副本写入DC 3的DN 3-1中。
需要说明的是,名字节点在根据BPP写入副本时,如果发现某个本该写入副本的DC出现故障,可以在写入副本时忽略该DC,只在BPP指示的其他有效的DC中写入副本。示例的,参考图6,根据预先设置的BPP,DC 3中需要写入副本,但是由于DC 3出现故障而失效,名字节点在写入副本时忽略DC 3,只在BPP指示的DC 1、DC 2中写入副本。
此外,副本放置策略是目录级别的策略,例如,针对同一个HDFS目录设置一个副本放置策略,该目录下的所有文件都遵循这个策略来写入副本。名字节点根据副本放置策略写入一个文件后,通过文件的元数据记录文件包括的各个数据块的副本的实际分布,文件的元数据可以包括文件的块列表以及块对应的数据节点信息。
可选的,图4所示的方法还包括:判断所述目标副本实际分布的数据中心与所述副本放置策略指示的所述多个数据中心是否一致;
若所述目标副本实际分布的数据中心与所述副本放置策略指示的所述多个数据中心不一致,则将目标数据的副本调整到副本放置策略指示的多个数据中心。
具体地,所述根据所述副本放置策略调整调整所述所述目标副本实际分布,包括:
若所述目标副本实际分布的第二数据中心不属于所述多个数据中心,则删除所述第二数据中心中的所述目标副本;也就是说不能在副本放置策略未指示的数据中心放置副本,目标数据的副本的实际分布需要与副本放置策略指示的数据中心保持一致。
若所述多个数据中心中的第三数据中心不包括所述目标数据副,则在所述第三数据中心写入所述目标副本。也就是说,如果副本放置策略指示的某个数据中心没有存储副本,则需要在其他数据中心拷贝副本,以存储在这个数据中心,目标数据的副本的实际分布需要与副本放置策略指示的数据中心保持一致。
本申请实施例中,名字节点还可以检查副本实际分布的DC与BPP指示的DC是否一致,如果副本的实际分布与BPP不一致,则对各个DC中的副本进行调整,包括拷贝副本或删除副本,确保副本实际分布的DC与BPP保持一致。
示例的,参考图7,BPP指示文件1的副本存储在DC 1、DC 2、DC 3中,即文件1的每一个数据块的副本需要存储在DC 1、DC 2、DC 3中。当DC 3故障恢复后,名字节点检测出DC 3缺失副本,可以在其他DC中拷贝副本到DC 3。例如,将DC 1或DC 2中存储的该数据块的副本拷贝到DC 3。
本申请实施例提供一种数据访问,适用于图2所示的数据存储系统。如图8所示,所述方法包括以下步骤:
步骤801、资源管理服务器从客户端接收数据读数据请求,所述读数据请求用于多个文件。
需要说明的是,资源管理服务器用于对数据存储系统进行资源管理,包括为客户端的读数据请求分配应用程序。例如,资源管理服务器可以是本申请实施例所述的YARNResource Manager。
具体实现中,响应于用户在客户端的操作,客户端运行某个应用程序请求访问多个文件,客户端请求访问的多个文件中不同文件的数据可以称为目标数据。示例的,客户端请求访问M个文件,目标数据可以是其中N个不同文件的数据,N为小于或者等于M的正整数。还需要说明的是,客户端在写入文件是跨DC写入文件的副本,因此,客户端请求访问的多个文件的副本可能存储在多个不同的DC中。
一种可能的实现方式中,客户端请求的所述多个文件来自不同的目录。例如,客户端请求访问的多个文件为:目标文件1、目标文件2。其中,目标文件1的目录:“桌面/计算机/E盘/文件夹1/目标文件1”,目标文件2的目录为:“计算机/D盘/文件夹2/目标文件2”。可以理解的是,目标数据可以是目标文件1、目标文件2的数据。
具体实现中,客户端可以将读数据请求发送至资源管理服务器,由资源管理服务器分配相应的YARN应用程序来执行读数据请求,以便客户端读取目标文件1、目标文件2的数据。
此外,读数据请求可以包括目标数据的目录信息。其中,目标数据的目录信息用于指示客户端请求访问的多个文件的访问路径。示例的,用户在客户端触发的应用程序请求访问目标文件1、目标文件2的数据,客户端则向资源管理服务器提交读数据请求,该读数据请求携带目标文件1、目标文件2的目录信息,例如,读数据请求携带的目录信息是:“桌面/计算机/E盘/文件夹1/目标文件1”、“计算机/D盘/文件夹2/目标文件2”。
步骤802、资源管理服务器确定存储有所述目标数据的副本的多个数据中心。
需要说明的是,所述目标数据的副本即客户端请求访问的多个文件的副本。例如,客户端请求访问目标文件1、目标文件2的数据,目标数据的副本可以是目标文件1的副本、目标文件2的副本。
此外,本申请实施例中文件的副本跨DC放置,因此文件的副本至少存储在两个不同的数据中心。此外,文件对应的副本放置策略决定了文件的副本实际分布的DC,客户端请求的多个文件的副本放置策略相同,所述多个文件的副本实际分布的DC可能相同;客户端请求的多个文件的副本放置策略不同,所述多个文件的副本实际分布的DC可能不同。
本申请实施例中副本放置策略是目录级别的,同一目录下的文件的副本放置策略相同。也就是说,当客户端请求访问的多个文件不属于同一个目录,即所述多个文件来自不同的目录。所述多个文件对应的副本放置策略不同。例如,客户端请求访问目标文件1、目标文件2,目标文件1、目标文件2来自不同的目录。目标文件1对应的副本放置策略为:副本放置在DC 1、DC 2、DC 3;即目标文件1的所有数据块的副本均需要放置在DC 1、DC 2、DC 3。目标文件2对应的副本放置策略为:副本放置在DC 2、DC 3;即目标文件2的所有数据块的副本均需要放置在DC 2、DC 3。
当客户端请求访问的多个文件属于同一个目录,多个目标文件对应的副本放置策略相同。例如,客户端请求访问目标文件1、目标文件2,其中,目标文件1对应的副本放置策略为:副本放置在DC 1、DC 2、DC 3;即目标文件1的所有数据块的副本均需要放置在DC 1、DC 2、DC 3。目标文件2对应的副本放置策略也是:副本放置在DC 1、DC 2、DC 3;即目标文件2的所有数据块的副本均需要放置在DC 1、DC 2、DC 3。
具体实现中,可以根据读数据请求中的目录信息确定客户端请求访问的多个目标文件对应的数据中心,即客户端请求的目标数据对应的数据中心,这些数据中心存储有所述目标数据的副本。
一种可能的实现中,文件的元数据记录了文件的副本实际分布的DC,查询文件的元数据,可以确定哪些数据中心存储有文件的副本。示例的,可以根据读数据请求携带的目录信息确定客户端请求的多个文件。进而可以查询所述多个文件的元数据,确定哪些数据中心存储了所述多个文件的数据(即目标数据)的副本,即目标数据的副本实际分布的DC。
一种可能的实现方式中,查询文件的块列表以及块对应的数据节点信息,确定客户端请求的文件包括的数据块以及每个数据块所在的数据节点。根据数据块所在的数据节点所属的数据中心,即存储有该文件的数据的副本的数据中心。
示例的,资源管理服务器查询目标文件1的元数据,可以确定存储有所述目标文件1副本的多个数据中心。例如,目标文件1的块列表中包括数据块1a、数据块1b以及数据块1c,其中,数据块1a对应的数据节点信息为“DN 1-1、DN 2-1”,即数据块1a有两个副本,分布存储在DC 1的数据节点DN 1-1以及DC 2的数据节点DN 2-1;数据块1b对应的数据节点信息为“DN 1-2、DN 2-2”,即数据块1b有两个副本,分布存储在DC 1的数据节点DN 1-2、DC 2的数据节点DN 2-2;数据块1c对应的数据节点信息为“DN 1-3、DN 2-3”,即数据块1c有2个副本,分布存储在DC 1的数据节点DN 1-3,DC 2的数据节点DN 2-3。
目标文件2的块列表中包括数据块2a、数据块2b。其中,数据块2a对应的数据节点信息为“DN 2-4、DN 3-1”,即数据块2a有两个副本,分布存储在DC 2的数据节点DN 2-4以及DC 3的数据节点DN 3-1;数据块2b对应的数据节点信息为“DN 2-5、DN 3-2”,即数据块2b有两个副本,分布存储在DC 2的数据节点DN 2-5、DC 3的数据节点DN 3-2。
图9所示,是目标文件1、目标文件2的副本的实际分布。DC 1存储有数据块1a、数据块1b以及数据块1c的副本,DC 2存储有数据块1a、数据块1b以及数据块1c的副本。也就是说,存储有所述目标文件1的副本的数据中心有DC 1、DC 2,即目标文件1的副本实际分布的数据中心为DC 1、DC 2。
DC 2存储有数据块2a、数据块2b的副本,DC 3存储有数据块2a、数据块2b的副本。也就是说,存储有所述目标文件2的副本的数据中心有DC 2、DC 3,即目标文件2的副本实际分布的数据中心为DC 2、DC 3。
综上,客户端请求访问的多个文件对应的数据中心为DC 1、DC 2、DC 3,即存储有目标数据的副本的多个数据中心为DC 1、DC 2、DC 3。
步骤803、资源管理服务器确定所述多个数据中心中,数据本地化最高的第一数据中心。
具体地,在所述多个数据中心均可以访问到目标数据的副本,但是在某个数据中心不一定能访问到目标数据的全部数据。假设在其中某个数据中心访问到的副本最接近目标数据,即该数据中心的数据本地化最高,即本申请实施例所述的第一数据中心。
一种可能的实现方式,客户端请求的多个文件对应的副本放置策略不一致,即所述多个文件的副本实际分布的DC是不同的,那么不同DC的数据本地化不同,选择其中数据本地化程度最高的一个DC作为本申请实施例所述的第一数据中心。
示例的,参考图9,目标文件1包括数据块1a、数据块1b、数据块1c,在DC 1可以访问到数据块1a的副本、数据块1b的副本以及数据块1c的副本;在DC 2可以访问到数据块1a的副本、数据块1b的副本以及数据块1c的副本。
目标文件2包括数据块2a、数据块2b,在DC 1可以访问到数据块2a的副本、数据块2b的副本;在DC 2可以访问到数据块2a的副本、数据块2b的副本。综上,在DC 2中访问到的副本最接近客户端的请求,即在DC 2中可以访问到目标文件1、目标文件2的全部数据,因此,DC 2是DC 1、DC 2以及DC 3中数据本地化最高的数据中心,DC 2为本申请实施例所述的第一数据中心。
一种可能的实现方式中,客户端请求的多个文件来自同一目录,所述多个对应的副本放置策略一致,即目标文件的副本实际分布的DC是相同的,那么不同DC的数据本地化程度相同,选择其中任意一个DC作为本申请实施例所述的第一数据中心即可。
示例的,客户端请求访问的目标文件是目标文件1、目标文件2,其中,目标文件1包括数据块1a、数据块1b以及数据块1c,目标文件1对应的副本放置策略为:副本放置在DC 1、DC 2。参考图10,DC 1存储有数据块1a、数据块1b以及数据块1c的副本,DC 2存储有数据块1a、数据块1b以及数据块1c的副本。也就是说,存储有所述目标文件1的副本的数据中心有DC 1、DC 2,即目标文件1的副本实际分布的数据中心为DC 1、DC 2。
目标文件2包括数据块2a、数据块1b,目标文件2对应的副本放置策略与目标文件1对应的副本放置策略相同,即副本放置在DC 1、DC 2。参考图10,DC 1存储有数据块2a、数据块2b的副本,DC 2存储有数据块2a、数据块2b的副本。也就是说,存储有所述目标文件2的副本的数据中心有DC 1、DC 2,即目标文件2的副本实际分布的数据中心为DC 1、DC 2。
综上,客户端请求访问的多个文件对应的数据中心为DC 1、DC 2。其中,在DC 1、DC2中均能访问到目标文件1、目标文件2的全部数据,DC 1、DC 2的数据本地化程度一致。DC 1或DC 2为本申请实施例所述的第一数据中心。
步骤804、所述资源管理服务器向客户端发送从第一数据中心读取的目标数据的副本。
具体地,所述资源管理服务器将读数据请求提交到本地化最高的DC(即本申请实施例所述的第一数据中心)的YARN资源上运行,即资源管理服务器分配YARN application在该DC上执行客户端的读数据请求。示例的,参考图11,由于DC2的数据本地化最高,资源管理服务器分配YARN application 2在DC2上访问数据块1a的副本、数据块1b的副本、数据块1c的副本、数据块2a的副本以及数据块2b的副本,并将访问到的副本返回给客户端。
需要说明的是,所述进程管理服务将在第一数据中心读取到的目标数据的副本发送给客户端,例如,目标文件1、目标文件2的所有数据块的副本。
或者,所述进程管理服务在所述第一数据中心没有访问到所述目标数据的所有副本,所述进程管理服务可以将从第一数据中心访问到的目标数据的副本返回给客户端,客户端还可以在其他DC上访问目标数据的其他副本。示例的,客户端请求的多个文件包括数据块1、数据块2、数据块3,在数据本地化最高的DC 1上可以访问数据块1的副本、数据块3的副本,在DC 3上访问数据块2的副本。
步骤805、当所述第一数据中心故障,资源管理服务器在第二数据中心中读取目标数据的副本,向客户端发送从第二数据中心读取的目标数据的副本。
其中,第二数据中心是存储有目标文件的副本的多个数据中心中,除第一数据中心以外,数据本地化最高的一个数据中心。当第一数据中心故障,将客户端的读数据请求递交到第二数据中心的YARN资源上运行,即资源管理服务器分配YARN application在第二数据中心上执行客户端的读数据请求。可以保证客户端的读数据请求得到响应,并且由于第二数据中心数据本地化较高,可以在第二数据中心本地就可以访问到目标数据的大部分副本,尽可能减少跨DC访问数据,节省带宽消耗。
示例的,参考图12,DC 2本是数据本地化最高的数据中心,当DC 2发生故障,可以在DC 1可以访问到数据块1a的副本、数据块1b的副本以及数据块1c的副本,在DC3可以访问到数据块2a的副本、数据块2b的副本。
客户端请求访问的是目标文件1、目标文件2,包括数据块1a、数据块1b、数据块1c、数据块2a、数据块2b,相比于DC 3上访问到的副本,在DC 1上访问到的副本更接近于客户端请求的数据,因此DC 1的数据本地化程度高于DC 3,即DC 1为本申请实施例所述的第二数据中心。
具体地,参考图12,资源管理服务器可以YARN application 1在DC 1上访问数据块1a的副本、数据块1b的副本、数据块1c的副本,并将访问到的副本返回给客户端。此外,客户端还可以跨DC访问数据块1的副本,例如,占用DC 1和DC 3之间的通信带宽,在DC3访问数据块2a、数据块2b的副本。
可选的,本申请实施例图8所示的方法可以由YARN ResourceManager中的插件DCScheduler来实现,当然,也可以是YARN ResourceManager中的其他功能模块来实现,本申请实施例对此不作限制。
本申请实施例提供的方法中,文件的副本跨DC放置,不仅仅局限于同一个DC。单个DC故障后,文件的数据不会全部丢失。此外,客户端还可以在其他DC访问文件的副本,尽可能保证客户端的业务不受DC宕机的影响,客户端的读数据请求能够得到及时响应。此外,始终将客户端的读数据请求调度到数据本地化最高的DC,即尽可能在同一个DC访问到目标文件的大部分数据,避免过多占用DC间的通信带宽跨DC访问数据影响系统的性能。
在采用对应各个功能划分各个功能模块的情况下,图13示出上述实施例中所涉及的服务器的一种可能的结构示意图。图13所示的服务器可以是本申请实施例所述的资源管理服务器或名称管理服务器,也可以是资源管理服务器或名称管理服务器中实现上述方法的部件。如图13所示,该服务器包括处理单元1301以及收发单元1302。处理单元可以是一个或多个处理器,收发单元1302可以是网络接口。
处理单元1301,用于支持资源管理服务器执行步骤802、步骤803,支持名称管理服务器执行步骤402,和/或用于本文所描述的技术的其它过程。
收发单元1302,用于支持例如资源管理服务器执行步骤801、步骤801以及步骤805,支持名称管理服务器执行步骤401,和/或用于本文所描述的技术的其它过程。
一种可能的实现方式中,图13所示的服务器也可以是应用于资源管理服务器或名称管理服务器中的芯片。所述芯片可以是片上系统(System-On-a-Chip,SOC)。
其中,以上用于接收/发送的收发单元1302可以是该服务器的一种网络接口,用于从其它服务器接收信号。
示例性的,在采用集成的单元的情况下,本申请实施例提供的服务器的结构示意图如图14所示。在图14中,该服务器包括:处理模块1401和通信模块1402。处理模块1401用于对服务器的动作进行控制管理,例如,执行上述处理单元1301执行的步骤,和/或用于执行本文所描述的技术的其它过程。通信模块1402用于执行上述收发单元1302执行的步骤,支持服务器与其他设备之间的交互,如与其他终端服务器之间的交互。如图14所示,服务器还可以包括存储模块1403,存储模块1403用于存储服务器的程序代码和数据。
当处理模块1401为处理器,通信模块1402为网络接口,存储模块1403为存储器时,服务器为图3所示的服务器。
本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令。该计算机指令指示资源管理服务器执行上述的读数据方法,或者该计算机指令用于实现该资源管理服务器包括的功能单元。
本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令。该计算机指令指示名称管理服务器执行上述的写数据方法,或者该计算机指令用于实现该名称管理服务器包括的功能单元。
本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令。该计算机指令指示资源管理服务器执行上述的读数据方法,或者该计算机指令用于实现该资源管理服务器包括的功能单元。
本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令。该计算机指令指示名称管理服务器执行上述的写数据方法,或者该计算机指令用于实现该名称管理服务器包括的功能单元。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将数据库访问装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的数据库访问装置和方法,可以通过其它的方式实现。例如,以上所描述的数据库访问装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,数据库访问装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁盘或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (18)

1.一种读数据方法,其特征在于,包括:
资源管理服务器从客户端接收读数据请求,所述读数据请求用于请求多个文件;
所述资源管理服务器从第一数据中心读取目标数据的副本,所述目标数据包括所述多个文件中不同文件的数据;其中,所述第一数据中心为存储所述目标数据的副本的多个数据中心中数据本地化最高的数据中心,所述数据本地化用于指示数据中心存储的目标数据的副本与所述目标数据的接近程度;
所述资源管理服务器向所述客户端发送从所述第一数据中心读取的所述目标数据的副本。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述资源管理服务器根据所述多个文件的目录信息确定存储所述目标数据的副本的所述多个数据中心,所述读数据请求携带所述目标数据的目录信息;
所述资源管理服务器计算所述多个数据中心存储的目标数据的副本分别与所述目标数据的接近程度,将存储的目标数据的副本最接近所述目标数据的数据中心确定为所述第一数据中心。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在所述第一数据中心出现故障时,所述资源管理服务器从第二数据中心读取所述目标数据的副本,其中,所述第二数据中心为所述多个数据中心中除所述第一数据中心外数据本地化最高的数据中心;
所述资源管理服务器向所述客户端发送从所述第二数据中心读取的所述目标数据的副本。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述目标数据的副本为存储在所述客户端所在的数据中心的副本。
5.一种写数据方法,其特征在于,包括:
名称管理服务器从客户端接收写数据请求,所述写数据请求携带目标数据;
所述名称管理服务器根据所述目标数据将所述目标数据的副本写入多个数据中心。
6.根据权利要求5所述的方法,其特征在于,所述名称管理服务器根据所述目标数据将所述目标数据的副本写入多个数据中心,包括:
所述名称管理服务器在所述客户端所在的数据中心写入第一个所述目标数据的副本。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
在所述目标数据的副本实际分布的数据中心与副本放置策略指示的所述多个数据中心不一致时,所述名称管理服务器将所述目标数据的副本调整到所述副本放置策略指示的所述多个数据中心。
8.一种资源管理服务器,其特征在于,包括:
收发单元,用于从客户端接收读数据请求,所述读数据请求用于请求多个文件;
处理单元,用于从第一数据中心读取目标数据的副本,所述目标数据包括所述多个文件中不同文件的数据;其中,所述第一数据中心为存储所述目标数据的副本的多个数据中心中数据本地化最高的数据中心,所述数据本地化用于指示数据中心存储的目标数据的副本与所述目标数据的接近程度;
所述收发单元,还用于向所述客户端发送从所述第一数据中心读取的所述目标数据的副本。
9.根据权利要求8所述的资源管理服务器,其特征在于,所述处理单元还用于:
根据所述多个文件的目录信息确定存储所述目标数据的副本的所述多个数据中心,所述读数据请求携带所述目标数据的目录信息;
计算所述多个数据中心存储的目标数据的副本分别与所述目标数据的接近程度,将存储的目标数据的副本最接近所述目标数据的数据中心确定为所述第一数据中心。
10.根据权利要求8或9所述的资源管理服务器,其特征在于,所述处理单元还用于:在所述第一数据中心出现故障时,从第二数据中心读取所述目标数据的副本,其中,所述第二数据中心为所述多个数据中心中除所述第一数据中心外数据本地化最高的数据中心;
所述收发单元还用于:向所述客户端发送从所述第二数据中心读取的所述目标数据的副本。
11.根据权利要求8-10任一项所述的资源管理服务器,其特征在于,所述目标数据的副本为存储在所述客户端所在的数据中心的副本。
12.一种名称管理服务器,其特征在于,包括:
收发单元,用于从客户端接收写数据请求,所述写数据请求携带目标数据;
处理单元,用于根据所述目标数据将所述目标数据的副本写入多个数据中心。
13.根据权利要求12所述的名称管理服务器,其特征在于,所述处理单元用于:在所述客户端所在的数据中心写入第一个所述目标数据的副本。
14.根据权利要求12或13所述的名称管理服务器,其特征在于,所述处理单元还用于:
在所述目标数据的副本实际分布的数据中心与副本放置策略指示的所述多个数据中心不一致时,将所述目标数据的副本调整到所述副本放置策略指示的所述多个数据中心。
15.一种资源管理服务器,其特征在于,所述资源管理服务器包括处理器和存储器;在所述处理器执行所述存储器中的计算机指令时,所述资源管理服务器执行如权利要求1至4中任一项所述的方法。
16.一种名称管理服务器,其特征在于,所述名称管理服务器包括处理器和存储器;在所述处理器执行所述存储器中的计算机指令时,所述名称管理服务器执行如权利要求5至7中任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令指示所述资源管理服务器执行权利要求1至4中任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令指示所述名称管理服务器执行权利要求5至7中任一项所述的方法。
CN201910927180.0A 2019-09-27 2019-09-27 一种读数据方法、写数据方法及服务器 Active CN110825704B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910927180.0A CN110825704B (zh) 2019-09-27 2019-09-27 一种读数据方法、写数据方法及服务器
PCT/CN2020/096124 WO2021057108A1 (zh) 2019-09-27 2020-06-15 一种读数据方法、写数据方法及服务器
EP20869429.9A EP3951607A4 (en) 2019-09-27 2020-06-15 DATA READING METHOD, DATA WRITING METHOD AND SERVER
US17/526,659 US20220075757A1 (en) 2019-09-27 2021-11-15 Data read method, data write method, and server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910927180.0A CN110825704B (zh) 2019-09-27 2019-09-27 一种读数据方法、写数据方法及服务器

Publications (2)

Publication Number Publication Date
CN110825704A true CN110825704A (zh) 2020-02-21
CN110825704B CN110825704B (zh) 2023-09-01

Family

ID=69548339

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910927180.0A Active CN110825704B (zh) 2019-09-27 2019-09-27 一种读数据方法、写数据方法及服务器

Country Status (4)

Country Link
US (1) US20220075757A1 (zh)
EP (1) EP3951607A4 (zh)
CN (1) CN110825704B (zh)
WO (1) WO2021057108A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021057108A1 (zh) * 2019-09-27 2021-04-01 华为技术有限公司 一种读数据方法、写数据方法及服务器
CN113282246A (zh) * 2021-06-15 2021-08-20 杭州海康威视数字技术股份有限公司 数据处理方法及装置
CN117453153A (zh) * 2023-12-26 2024-01-26 柏科数据技术(深圳)股份有限公司 基于Crush规则的文件存储方法、装置、终端及介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11847352B1 (en) * 2021-09-22 2023-12-19 Ridgeline, Inc. Parent child request recovery to improve stability
CN116795066B (zh) * 2023-08-16 2023-10-27 南京德克威尔自动化有限公司 远程io模块的通信数据处理方法、系统、服务器及介质

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140059310A1 (en) * 2012-08-24 2014-02-27 Vmware, Inc. Virtualization-Aware Data Locality in Distributed Data Processing
CN103678360A (zh) * 2012-09-13 2014-03-26 腾讯科技(深圳)有限公司 一种分布式文件系统的数据存储方法和装置
US20140122429A1 (en) * 2012-10-31 2014-05-01 International Business Machines Corporation Data processing method and apparatus for distributed systems
CN104156381A (zh) * 2014-03-27 2014-11-19 深圳信息职业技术学院 Hadoop分布式文件系统的副本存取方法、装置和Hadoop分布式文件系统
CN104615606A (zh) * 2013-11-05 2015-05-13 阿里巴巴集团控股有限公司 一种Hadoop分布式文件系统及其管理方法
CN105760391A (zh) * 2014-12-18 2016-07-13 华为技术有限公司 数据动态重分布的方法、数据节点、名字节点及系统
US20180018344A1 (en) * 2016-07-12 2018-01-18 Commvault Systems, Inc. Dynamic management of expandable cache storage for multiple network shares configured in a file server
US20180285263A1 (en) * 2017-04-02 2018-10-04 Sas Institute Inc. Techniques for Reading From and Writing to Distributed Data Stores
CN109783002A (zh) * 2017-11-14 2019-05-21 华为技术有限公司 数据读写方法、管理设备、客户端和存储系统
CN109901949A (zh) * 2019-02-25 2019-06-18 中国工商银行股份有限公司 双活数据中心的应用灾备系统及方法
CN110019082A (zh) * 2017-07-31 2019-07-16 普天信息技术有限公司 文件数据的分布式多副本存储方法
CN110022338A (zh) * 2018-01-09 2019-07-16 阿里巴巴集团控股有限公司 文件读取方法、系统、元数据服务器和用户设备
CN110198346A (zh) * 2019-05-06 2019-09-03 北京三快在线科技有限公司 数据读取方法、装置、电子设备及可读存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7634566B2 (en) * 2004-06-03 2009-12-15 Cisco Technology, Inc. Arrangement in a network for passing control of distributed data between network nodes for optimized client access based on locality
US9268808B2 (en) * 2012-12-31 2016-02-23 Facebook, Inc. Placement policy
CN104113597B (zh) * 2014-07-18 2016-06-08 西安交通大学 一种多数据中心的hdfs数据读写方法
CN106095337A (zh) * 2016-06-07 2016-11-09 国云科技股份有限公司 一种基于san网络存储的云盘快速共享方法
US11146626B2 (en) * 2018-11-01 2021-10-12 EMC IP Holding Company LLC Cloud computing environment with replication system configured to reduce latency of data read access
US11625273B1 (en) * 2018-11-23 2023-04-11 Amazon Technologies, Inc. Changing throughput capacity to sustain throughput for accessing individual items in a database
CN110825704B (zh) * 2019-09-27 2023-09-01 华为云计算技术有限公司 一种读数据方法、写数据方法及服务器

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140059310A1 (en) * 2012-08-24 2014-02-27 Vmware, Inc. Virtualization-Aware Data Locality in Distributed Data Processing
CN103678360A (zh) * 2012-09-13 2014-03-26 腾讯科技(深圳)有限公司 一种分布式文件系统的数据存储方法和装置
US20140122429A1 (en) * 2012-10-31 2014-05-01 International Business Machines Corporation Data processing method and apparatus for distributed systems
CN104615606A (zh) * 2013-11-05 2015-05-13 阿里巴巴集团控股有限公司 一种Hadoop分布式文件系统及其管理方法
CN104156381A (zh) * 2014-03-27 2014-11-19 深圳信息职业技术学院 Hadoop分布式文件系统的副本存取方法、装置和Hadoop分布式文件系统
CN105760391A (zh) * 2014-12-18 2016-07-13 华为技术有限公司 数据动态重分布的方法、数据节点、名字节点及系统
US20180018344A1 (en) * 2016-07-12 2018-01-18 Commvault Systems, Inc. Dynamic management of expandable cache storage for multiple network shares configured in a file server
US20180285263A1 (en) * 2017-04-02 2018-10-04 Sas Institute Inc. Techniques for Reading From and Writing to Distributed Data Stores
CN110019082A (zh) * 2017-07-31 2019-07-16 普天信息技术有限公司 文件数据的分布式多副本存储方法
CN109783002A (zh) * 2017-11-14 2019-05-21 华为技术有限公司 数据读写方法、管理设备、客户端和存储系统
CN110022338A (zh) * 2018-01-09 2019-07-16 阿里巴巴集团控股有限公司 文件读取方法、系统、元数据服务器和用户设备
CN109901949A (zh) * 2019-02-25 2019-06-18 中国工商银行股份有限公司 双活数据中心的应用灾备系统及方法
CN110198346A (zh) * 2019-05-06 2019-09-03 北京三快在线科技有限公司 数据读取方法、装置、电子设备及可读存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
乐洪超;赵辉;: "一种基于HDFS的远程文件备份系统的设计和实现", 计算机安全, no. 07, pages 5 - 9 *
李强;孙震宇;孙功星;: "一种面向HDFS的数据随机访问方法", 计算机工程与应用, no. 10, pages 6 - 12 *
陈波;沈炜;: "基于HDFS的动态副本策略设计与实现", 工业控制计算机, no. 01, pages 107 - 109 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021057108A1 (zh) * 2019-09-27 2021-04-01 华为技术有限公司 一种读数据方法、写数据方法及服务器
CN113282246A (zh) * 2021-06-15 2021-08-20 杭州海康威视数字技术股份有限公司 数据处理方法及装置
CN117453153A (zh) * 2023-12-26 2024-01-26 柏科数据技术(深圳)股份有限公司 基于Crush规则的文件存储方法、装置、终端及介质
CN117453153B (zh) * 2023-12-26 2024-04-09 柏科数据技术(深圳)股份有限公司 基于Crush规则的文件存储方法、装置、终端及介质

Also Published As

Publication number Publication date
EP3951607A1 (en) 2022-02-09
WO2021057108A1 (zh) 2021-04-01
CN110825704B (zh) 2023-09-01
EP3951607A4 (en) 2022-07-13
US20220075757A1 (en) 2022-03-10

Similar Documents

Publication Publication Date Title
US11153380B2 (en) Continuous backup of data in a distributed data store
US10474547B2 (en) Managing contingency capacity of pooled resources in multiple availability zones
US11120152B2 (en) Dynamic quorum membership changes
US9460185B2 (en) Storage device selection for database partition replicas
US10229011B2 (en) Log-structured distributed storage using a single log sequence number space
US10891267B2 (en) Versioning of database partition maps
CN110825704B (zh) 一种读数据方法、写数据方法及服务器
US9971823B2 (en) Dynamic replica failure detection and healing
US9489443B1 (en) Scheduling of splits and moves of database partitions
US9880933B1 (en) Distributed in-memory buffer cache system using buffer cache nodes
US8386540B1 (en) Scalable relational database service
JP5798248B2 (ja) 規模変更可能なデータ記憶サービスを実装するためのシステムおよび方法
US9699017B1 (en) Dynamic utilization of bandwidth for a quorum-based distributed storage system
US11080253B1 (en) Dynamic splitting of contentious index data pages
US11080207B2 (en) Caching framework for big-data engines in the cloud
US20230221897A1 (en) Implementing coherency and page cache support for a storage system spread across multiple data centers
US10223184B1 (en) Individual write quorums for a log-structured distributed storage system
US10592469B1 (en) Converting files between thinly and thickly provisioned states
US11860835B1 (en) Efficient drop column requests in a non-relational data store
US11336723B1 (en) Replicating data volume updates from clients accessing the data volume across fault tolerance zones
US11121981B1 (en) Optimistically granting permission to host computing resources
US8850132B1 (en) Method and system for providing a shared data resource coordinator within a storage virtualizing data processing system
CN115982101B (zh) 基于多机房副本放置策略的机房数据迁移方法与装置
US11914571B1 (en) Optimistic concurrency for a multi-writer database
CN116243860A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220210

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Applicant after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd.

GR01 Patent grant
GR01 Patent grant