CN110633046A - 一种分布式系统的存储方法、装置、存储设备及存储介质 - Google Patents

一种分布式系统的存储方法、装置、存储设备及存储介质 Download PDF

Info

Publication number
CN110633046A
CN110633046A CN201810653279.1A CN201810653279A CN110633046A CN 110633046 A CN110633046 A CN 110633046A CN 201810653279 A CN201810653279 A CN 201810653279A CN 110633046 A CN110633046 A CN 110633046A
Authority
CN
China
Prior art keywords
data
storage node
storage
synchronized
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.)
Pending
Application number
CN201810653279.1A
Other languages
English (en)
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.)
Kyland Technology Co Ltd
Original Assignee
Kyland Technology 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 Kyland Technology Co Ltd filed Critical Kyland Technology Co Ltd
Priority to CN201810653279.1A priority Critical patent/CN110633046A/zh
Publication of CN110633046A publication Critical patent/CN110633046A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

本发明公开了一种分布式系统的存储方法、装置、存储设备及存储介质,所述分布式系统包括:一个元数据管理集群和多个存储节点;所述元数据管理集群与各个存储节点连接;所述方法包括:将待同步数据的元数据信息存储到所述元数据管理集群中;根据所述待同步数据的元数据信息将所述待同步数据存储到与其对应的第一存储节点中;根据所述待同步数据的元数据信息将所述待同步数据从所述第一存储节点同步到与其对应的第二存储节点中。当分布式存储系统的拓扑结构频繁地发生变化时,如果分布式存储系统的网络带宽较低,也可以保证分布式存储系统的正常使用。

Description

一种分布式系统的存储方法、装置、存储设备及存储介质
技术领域
本发明实施例涉及信息存储技术领域,尤其涉及一种分布式系统的存储方法、装置、存储设备及存储介质。
背景技术
目前,业内通常采用分布式数据存储系统进行数据存储,分布式数据存储系统既具有集群系统的可扩/缩容的特性,又可以进行分布式操作。因此,在数据存储量发生变化时,分布式数据存储系统能够通过增加/移除集群中的数据存储节点实现对分布式数据存储系统的扩/缩容。
分布式存储系统是将数据分散存储在多台独立的设备上。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
在现有的分布式存储方法中,先将待同步的数据划分为多个数据对象;然后将多个数据对象存放到多台服务器上,并对每一个数据对象执行多副本策略,保证数据高可用。由于分布式存储系统要求数据要求具有强一致性,即:在任意时刻,分布式存储系统中的各个存储节点中存储的数据是相同的。当分布式存储系统的拓扑结构发生变化时,各个存储节点中存储的数据需要再均衡,此时会有大量的数据在各个节点之间迁移,最终达到数据的均衡。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:
在现有的分布式存储方法中,当分布式存储系统的拓扑结构频繁地发生变化时,各个存储节点中存储的大量数据需要再均衡;此时如果分布式存储系统的网络带宽较低,那么就不能支持大量的数据在各个存储节点间迁移,最终有可能导致整个分布式存储系统无法正常使用。
发明内容
本发明提供一种分布式系统的存储方法、装置、存储设备及存储介质,当分布式存储系统的拓扑结构频繁地发生变化时,如果分布式存储系统的网络带宽较低,也可以保证分布式存储系统的正常使用。
为达到上述目的,本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种分布式系统的存储方法,所述分布式系统包括:一个元数据管理集群和多个存储节点;所述元数据管理集群与各个存储节点连接;所述方法包括:
将待同步数据的元数据信息存储到所述元数据管理集群中;
根据所述待同步数据的元数据信息将所述待同步数据存储到与其对应的第一存储节点中;
根据所述待同步数据的元数据信息将所述待同步数据从所述第一存储节点同步到与其对应的和第二存储节点中。
在上述实施例中,所述根据所述待同步数据的元数据信息将所述待同步数据存储到与其对应的第一存储节点中,包括:
接收客户端发送的第一写入请求;
根据所述待同步数据的元数据信息向所述客户端返回第一写入响应,以使所述客户端根据所述第一写入响应将所述待同步数据写入到与所述第一存储节点中;其中,所述第一写入响应包括所述第一存储节点的节点标识。
在上述实施例中,所述方法还包括:
接收所述客户端发送的第一读取请求;
根据所述待同步数据的元数据信息向所述客户端返回第一读取响应,以使所述客户端根据所述第一读取响应在所述第一存储节点中读取所述待同步数据;其中,所述第一读取响应包括所述第一存储节点的节点标识。
在上述实施例中,所述根据所述待同步数据的元数据信息将所述待同步数据从所述第一存储节点同步到与其对应的第二存储节点中,包括:
当所述第一存储节点满足第一同步条件且所述第二存储节点满足第二同步条件时,根据所述待同步数据的元数据信息控制所述第二存储节点向所述第一存储节点发送数据同步请求,以使所述第一存储节点根据所述数据同步请求将所述待同步数据写入到所述第二存储节点中;
接收所述第一存储节点返回的第一同步反馈;其中,所述第一同步反馈包括所述第一存储节点的节点标识和所述待同步数据的元数据信息;
接收所述第二存储节点返回的第二同步反馈;其中,所述第二同步反馈包括所述第二存储节点的节点标识和所述待同步数据的元数据信息。
第二方面,本发明实施例还提供了一种分布式系统的存储装置,所述分布式系统包括:元数据管理集群和多个存储节点;所述元数据管理集群与各个存储节点连接;所述装置包括:元数据存储模块和存储控制模块;其中,
所述元数据存储模块,用于将待同步数据的元数据信息存储到所述元数据管理集群中;
所述存储控制模块,用于根据所述待同步数据的元数据信息将所述待同步数据存储到与其对应的第一存储节点中;根据所述待同步数据的元数据信息将所述待同步数据从所述第一存储节点同步到与其对应的第二存储节点中。
在上述实施例中,所述存储控制模块,具体用于接收客户端发送的第一写入请求;根据所述待同步数据的元数据信息向所述客户端返回第一写入响应,以使所述客户端根据所述第一写入响应将所述待同步数据写入到所述第一存储节点中;其中,所述第一写入响应包括所述第一存储节点的节点标识。
在上述实施例中,所述元数据存储模块,还用于接收所述客户端发送的第一读取请求;根据所述待同步数据的元数据信息向所述客户端返回第一读取响应,以使所述客户端根据所述第一读取响应在所述第一存储节点中读取所述待同步数据;其中,所述第一读取响应包括所述第一存储节点的节点标识。
在上述实施例中,所述数据存储模块,还用于当所述第一存储节点满足第一同步条件且所述第二存储节点满足第二同步条件时,根据所述待同步数据的元数据信息控制所述第二存储节点向所述第一存储节点发送数据同步请求,以使所述第一存储节点根据所述数据同步请求将所述待同步数据写入到所述第二存储节点中;接收所述第一存储节点返回的第一同步反馈;其中,所述第一同步反馈包括所述第一存储节点的节点标识和所述待同步数据的元数据信息;接收所述第二存储节点返回的第二同步反馈;其中,所述第二同步反馈包括所述第二存储节点的节点标识和所述待同步数据的元数据信息。
第三方面,本发明实施例还提供了一种存储设备,所述存储设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任一实施例所述的方法。
第四方面,本发明实施例还提供了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上述任一实施例所述的方法。
本发明实施例提出了一种分布式系统的存储方法、装置、存储设备及存储介质,先将待同步数据的元数据信息存储到元数据管理集群中;然后根据待同步数据的元数据信息将待同步数据存储到与其对应的第一存储节点;再根据待同步数据的元数据信息将待同步数据从第一存储节点同步到与其对应的第二存储节点中。也就是说,在本发明的技术方案中,将存储数据以及存储数据的元数据信息进行分离存储,当分布式存储系统的拓扑结构发生变化时,元数据管理集群可以先对待同步数据的元数据信息进行同步,对于分布式存储系统中发生变化的存储节点,元数据管理集群可以将这些存储节点中的待同步数据存储到新的存储节点中;或者,元数据管理集群可以将这些存储节点提供给待同步数据进行存储;对于分布式存储系统中未发生变化的存储节点,元数据管理集群可以保持这些存储节点中的待同步数据不变。而在现有的分布式系统的存储方法中,当分布式存储系统的拓扑结构频繁地发生变化时,各个存储节点中存储的大量数据需要再均衡;此时如果分布式存储系统的网络带宽较低,那么就不能支持大量的数据在各个存储节点间迁移,最终有可能导致整个分布式存储系统无法正常使用。因此,和现有技术相比,本发明实施例提出的分布式系统的存储方法、装置、存储设备及存储介质,当分布式存储系统的拓扑结构频繁地发生变化时,如果分布式存储系统的网络带宽较低,也可以保证分布式存储系统的正常使用;并且,本发明实施例的技术方案实简单方便、便于普及,适用范围更广。
附图说明
图1为本发明实施例中分布式系统的存储方法的流程示意图;
图2为本发明实施例中分布式存储系统的组成结构示意图;
图3为本发明实施例中写入待同步数据的流程图;
图4为本发明实施例中读取待同步数据的流程示意图;
图5为本发明实施例中同步待同步数据的流程示意图;
图6为本发明实施例中分布式系统的存储装置的结构示意图;
图7为本发明实施例中存储设备的组成结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
图1为本发明实施例中分布式系统的存储方法的流程示意图。如图1所示,分布式系统的存储方法可以包括以下步骤:
步骤101、将待同步数据的元数据信息存储到元数据管理集群中。
在本发明的具体实施例中,分布式系统包括:一个元数据管理集群和多个存储节点;元数据管理集群与各个存储节点连接。图2为本发明实施例中分布式存储系统的组成结构示意图。如图2所示,从物理结构划分,分布式存储系统中每个服务器可以包括:元数据管理节点和存储节点。例如,服务器1可以包括:元数据管理节点1和存储节点1;服务器2可以包括:元数据管理节点2和存储节点2;服务器3可以包括:元数据管理节点3和存储节点3;元数据管理层中所有的元数据管理节点组成一套元数据管理集群。从逻辑上划分,分布式存储系统系统可以包括:用户层,元数据管理层和数据存储层;其中,用户层负责对外提供数据显示和从外部获取待同步数据,它主要由手持终端和PC客户端构成。用户使用这些设备从分布式存储系统读取数据,并显示到终端系统;还可以通过这些设备向分布式存储系统传输数据,并存储到分布式存储系统。元数据管理层负责管理分布式存储系统中的元数据,调度分布式系统中的数据,以及维护分布式存储系统中数据节点的状态和数据的状态等。元数据管理层中所有的元数据管理节点组成一套元数据管理集群。它向用户层提供数据访问的API接口,元数据管理层只负责对元数据进行管理,不对数据进行存储等操作。所有元数据管理节点拥有完全相同的元数据,因此无论哪个节点从集群中消失都不会导致元数据的丢失。数据存储层负责提供数据存储服务。当数据调度完成之后,数据直接从应用层发送到数据存储层,数据存储层将数据存储到其中一个存储节点中。数据每次都进行单节点存储,当存储节点之间带宽利用率较低时,数据按优先级在存储节点之间进行两两同步。当有新的存储节点加入集群的时候,数据不需要再均衡。
步骤102、根据待同步数据的元数据信息将待同步数据存储到与其对应的第一存储节点。
在本发明的具体实施中,元数据管理集群可以根据待同步数据的元数据信息将待同步数据存储到与其对应的第一存储节点。具体地,元数据管理集群可以接收客户端发送的第一写入请求;根据待同步数据的元数据信息向客户端返回第一写入响应,以使客户端根据第一写入响应将待同步数据写入到与第一存储节点中;其中,第一写入响应包括第一存储节点的节点标识。
步骤103、根据待同步数据的元数据信息将待同步数据从第一存储节点同步到与其对应的第二存储节点中。
在本发明的具体实施例中,元数据管理集群可以根据待同步数据的元数据信息将待同步数据从第一存储节点同步到与其对应的第二存储节点中。具体地,当第一存储节点满足第一同步条件且第二存储节点满足第二同步条件时,元数据管理集群可以根据待同步数据的元数据信息控制第二存储节点向第一存储节点发送数据同步请求,以使第一存储节点根据数据同步请求将待同步数据写入到第二存储节点中;元数据管理集群还可以接收第一存储节点返回的第一同步反馈;其中,第一同步反馈包括第一存储节点的节点标识和待同步数据的元数据信息;元数据管理集群还可以接收第二存储节点返回的第二同步反馈;其中,第二同步反馈包括第二存储节点的节点标识和待同步数据的元数据信息。
具体地,在本发明的具体实施例中,元数据管理集群可以向第一存储节点发送第一同步请求;当元数据管理集群在第一预设时间段内接收到第一存储节点返回的第一同步响应时,元数据管理集群可以判定第一存储节点满足第一同步条件。此外,元数据管理集群还可以向第二存储节点发送第二同步请求;当元数据管理集群在第二预设时间段内接收到第二存储节点返回的第二同步响应时,元数据管理集群可以判定第二存储节点满足第二同步条件。
具体地,在本发明的具体实施例中,第一存储节点在接收到元数据管理集群发送的第一同步请求之后,第一存储节点可以判断自身的带宽利用率是否小于预设阈值;当第一存储节点的带宽利用率小于预设阈值时,表示第一存储节点处于空闲状态,此时,第一存储节点可以向元数据管理集群返回一个第一同步响应;元数据管理集群在接收到第一存储节点返回的第一同步响应之后,可以判定第一存储节点满足第一同步条件。同样地,第二存储节点在接收到元数据管理集群发送的第二同步请求之后,第二存储节点可以判断自身的带宽利用率是否小于预设阈值;当第二存储节点的带宽利用率小于预设阈值时,表示第二存储节点处于空闲状态,此时,第二存储节点可以向元数据管理集群返回一个第二同步响应;元数据管理集群在接收到第二存储节点返回的第二同步响应之后,可以判定第二存储节点满足第二同步条件。
在本发明的具体实施例中,当第一存储节点不满足第一同步条件或者第二存储节点不满足第二同步条件时,元数据管理集群可以将第一存储节点中的待同步数据进行单点存储,即待同步数据只存储在第一存储节点中。
图3为本发明实施例中写入待同步数据的流程图。如图3所示,将客户端中的待同步数据写入到第一存储节点的方法可以包括以下步骤:
步骤301、客户端向元数据管理集群发送第一写入请求Write Request1。
步骤302、元数据管理集群向全部存储节点发送第二写入请求Write Request2。
在本发明的具体实施例中,元数据管理集群在接收到客户端发送的WriteRequest1之后,向注册到元数据管理集群的全部存储节点发送Write Request2。
步骤303、各个存储节点向元数据管理集群返回第二写入响应Write Response2。
在本发明的具体实施例中,各个存储节点在接收到元数据管理集群发送的WriteRequest2之后,向元数据管理集群返回Write Response2;其中,Write Response2包括各个存储节点的Token。
步骤304、元数据管理集群在全部存储节点中选择一个存储节点作为第一存储节点;元数据管理集群向客户端返回第一写入响应Write Response1。
在本发明的具体实施例中,元数据管理集群根据各存储节点返回的WriteResponse2,获取到有效的存储节点和各个存储节点的Token;然后元数据管理集群可以在这些有效的存储节点中进行一个筛选,筛选出一个最优的存储节点作为第一存储节点供客户端写入数据,并将第一存储节点的Token和IP地址通过Write Response1返回给客户端。
步骤305、客户端向第一存储节点发送第三写入请求Write Request3。
在本发明的具体实施例中,客户端获取到了元数据管理集群返回的第一存储节点的Token和IP地址之后,携带该Token向第一存储节点发送Write Request3。
步骤306、第一存储节点向客户端返回第三写入响应Write Response3。
在本发明的具体实施例中,第一存储节点根据该Token验证Write Request3是否有效;如果Write Request3有效,则第一存储节点向客户端返回Write Response3。
步骤307、客户端向第一存储节点发送待同步数据Write Data。
在本发明的具体实施例中,客户端在收到第一存储节点返回的Write Response3之后,向第一存储节点发送待同步数据。
步骤308、第一存储节点向客户端返回存储完成响应Write Finish。
在本发明的具体实施例中,第一存储节点在接收到待同步数据之后,将待同步数据作为一个完整的整体写入服务器上。写入完成以后,第一存储节点向客户端发送一个Write Finish。
步骤309、客户端向元数据管理集群发送第一审计请求Write Audit1。
在本发明的具体实施例中,客户端收到第一存储节点返回的Write Finish之后,向元数据管理集群发送一个Write Audit1,请求元数据管理集群验证数据写入是否正确。
步骤310、元数据管理集群向第一存储节点发送第二审计请求Write Audit2。
步骤311、第一存储节点向元数据管理集群返回第二审计响应Audit Response2。
步骤312、元数据管理集群向客户端返回第一审计响应Audit Response1。
通过上述的步骤311-步骤312,元数据管理集群可以先将客户端中的待同步数据写入到第一存储节点;再将待同步数据从第一存储节点同步到第二存储节点中。
图4为本发明实施例中读取待同步数据的流程示意图。如图4所示,客户端在第一存储节点读取待同步数据的方法可以包括以下步骤:
步骤401、客户端向元数据管理集群发送第一读取请求Read Request1。
在本发明的具体实施例中,客户端通过元数据管理层API向元数据管理集群发送Read Request1。
步骤402、元数据管理集群向客户端返回第一读取响应Read Response1。
在本发明的具体实施例中,元数据管理集群根据Read Request1在本地KVDB数据库中查询待同步数据的元数据信息,并将第一存储节点的Token和IP地址通过ReadResponse1返回给客户端。
步骤403、客户端向第一存储节点发送第二读取请求Read Request2。
在本发明的具体实施例中,客户端携带第一存储节点的Token向第一存储节点发送Read Request2。
步骤404、第一存储节点向客户端返回第二读取响应Read Response2。
步骤405、第一存储节点向客户端发送待同步数据Read Data。
在本发明的具体实施例中,第一存储节点在验证Token正确之后,向客户端返回Read Response2,然后将待同步数据发送至客户端。
通过上述的步骤401-步骤405,客户端可以在元数据管理集群的控制下在第一存储节点中读取待同步数据。
图5为本发明实施例中同步待同步数据的流程示意图。如图5所示,将待同步数据从第一存储节点同步到第二存储节点中的方法可以包括以下步骤:
步骤501、元数据管理集群向第一存储节点发送第一同步请求Backup Request1。
在本发明的具体实施例中,元数据管理模块检测到第一存储节点的带宽利用率低于预设阈值时,元数据管理集群可以向第一存储节点发送Backup Request1。
步骤502、第一存储节点向元数据管理集群返回第一同步响应Backup Response1。
在本发明的具体实施例中,第一存储节点接收到Backup Request1之后,携带自身的Token向元数据管理集群返回Backup Response1。
步骤503、元数据管理集群向第二存储节点发送第二同步请求Backup Request2。
在本发明的具体实施例中,元数据管理集群向第二存储节点发送BackupRequest2;Backup Request2中携带第一存储节点的Token和IP地址以及待同步数据的元数据信息。
步骤504、第二存储节点向元数据管理集群返回第二同步响应Backup Response2。
在本发明的具体实施例中,第二存储节点接收到Backup Request2之后向元数据管理集群做出响应,表示已经收到Backup Request2,即将进行数据同步。
步骤505、第二存储节点向第一存储节点发送数据同步请求Data BackupRequest。
在本发明的具体实施例中,第二存储节点向第一存储节点发送携带有第一存储节点的Token和待同步数据的元数据信息的Data Backup Request。
步骤506、第一存储节点将待同步数据发送至第二存储节点Backup Data。
在本发明的具体实施例中,第一存储节点接收到Data Backup Request之后,首先验证该Token是否正确,然后解析Data Backup Request中的元数据信息,并将正确的待同步数据发送至第二存储节点。
步骤507、第二存储节点向第一存储节点返回第三同步响应Data BackupResponse。
在本发明的具体实施例中,第二存储节点接收待同步数据,并将待同步数据写入到第二存储节点内部之后,向第一存储节点返回Data Backup Response。
步骤508、第一存储节点向元数据管理集群发送第一同步反馈Backup Feedback1。
在本发明的具体实施例中,第一存储节点接收到第二存储节点返回的DataBackup Response之后,发起一条第一同步反馈Backup Feedback1到元数据管理集群,Backup Feedback1包括待同步数据的元数据信息以及第一存储节点的Token。
步骤509、第二存储节点向元数据管理集群发送第二同步反馈Backup Feedback2。
在本发明的具体实施例中,第二存储节点向第一存储节点返回Data BackupResponse之后,发起一条第二同步反馈Backup Feedback2到元数据管理集群,BackupFeedback2包括待同步数据的元数据信息以及第二存储节点的Token。元数据管理集群,将待同步数据的元数据信息写入到本地KVDB数据库中。
较佳地,在本发明的具体实施例中,当第一存储节点满足第一同步条件且第二存储节点满足第二同步条件时,元数据管理集群可以向第一存储节点发起数据同步请求。具体地,元数据管理集群可以首先按优先级从待同步列表中挑选出一个待同步数据作为目标同步数据;然后从适合做同步的存储节点中挑选出最优的存储节点作为第二存储节点。如果元数据管理集群向第一存储节点发出的第一同步请求,在第一预设时间段内没有接收到第一同步响应,则元数据管理集群则认为第一存储节点已经丢失,放弃此次同步任务。然后元数据管理集群会从待同步数据列表中重新按优先级挑选新的待同步数据来做同步。如果第一存储节点在同步数据的时候突然中断且中断超过设定时间,则元数据管理集群认为第一存储节点已经丢失,此时,元数据管理集群向第二存储节点发送同步中断请求,要求第二存储节点将目标同步数据的同步完成量等元数据信息返回给元数据管理集群,元数据管理集群将此数据状态以及同步完成量等元数据信息写入到本地KVDB数据库,并将此数据暂时标记为不可用。
较佳地,在本发明的具体实施例中,当元数据管理集群向第二存储节点发起第二同步请求之后,如果在第二预设时间段内没有接收到第二存储节点返回的第二同步响应,则元数据管理集群认为第二存储节点已经丢失,此时,元数据管理集群会向注册到元数据管理集群上的其他存储节点发送心跳检测请求,然后从返回响应的存储节点中挑选一个最优的存储节点作为第二存储节点,并向第二存储节点发送第二同步请求。如果在同步数据的时候第二存储节点失去连接超过一定时间,则元数据管理集群认为第二存储节点已经丢失,此时,元数据管理集群向第一存储节点发送同步中断请求,要求第一存储节点将同步完成量等元数据信息返回给元数据管理集群,元数据管理集群将同步状态写入到本地KVDB数据库中,并标记此次同步失败。对于失败的同步,元数据管理集群会每隔一个小时重新检测第一存储节点或者第二存储节点存活状态和连接状态,如果第一存储节点满足第一同步条件且第二存储节点满足第二同步条件,则第一存储节点和第二存储节点会接着从上一次的中断处继续发起数据同步。
本发明实施例提出的分布式系统的存储方法,先将待同步数据的元数据信息存储到元数据管理集群中;然后根据待同步数据的元数据信息将待同步数据存储到与其对应的第一存储节点;再根据待同步数据的元数据信息将待同步数据从第一存储节点同步到与其对应的第二存储节点中。也就是说,在本发明的技术方案中,将存储数据以及存储数据的元数据信息进行分离存储,当分布式存储系统的拓扑结构发生变化时,元数据管理集群可以先对待同步数据的元数据信息进行同步,对于分布式存储系统中发生变化的存储节点,元数据管理集群可以将这些存储节点中的待同步数据存储到新的存储节点中;或者,元数据管理集群可以将这些存储节点提供给待同步数据进行存储;对于分布式存储系统中未发生变化的存储节点,元数据管理集群可以保持这些存储节点中的待同步数据不变。而在现有的分布式系统的存储方法中,当分布式存储系统的拓扑结构频繁地发生变化时,各个存储节点中存储的大量数据需要再均衡;此时如果分布式存储系统的网络带宽较低,那么就不能支持大量的数据在各个存储节点间迁移,最终有可能导致整个分布式存储系统无法正常使用。因此,和现有技术相比,本发明实施例提出的分布式系统的存储方法,当分布式存储系统的拓扑结构频繁地发生变化时,如果分布式存储系统的网络带宽较低,也可以保证分布式存储系统的正常使用;并且,本发明实施例的技术方案实简单方便、便于普及,适用范围更广。
图6为本发明实施例中分布式存储装置的结构示意图。所述分布式系统包括:元数据管理集群和多个存储节点;所述元数据管理集群与各个存储节点连接;所述装置包括:元数据存储模块601和存储控制模块602;其中,
所述元数据存储模块601,用于将待同步数据的元数据信息存储到所述元数据管理集群中;
所述存储控制模块602,用于根据所述待同步数据的元数据信息将所述待同步数据存储到与其对应的第一存储节点中;根据所述待同步数据的元数据信息将所述待同步数据从所述第一存储节点同步到与其对应的第二存储节点中。
进一步的,所述存储控制模块602,具体用于接收客户端发送的第一写入请求;根据所述待同步数据的元数据信息向所述客户端返回第一写入响应,以使所述客户端根据所述第一写入响应将所述待同步数据写入到与所述第一存储节点中;其中,所述第一写入响应包括所述第一存储节点的节点标识。
进一步的,所述元数据存储模块601,还用于接收所述客户端发送的第一读取请求;根据所述待同步数据的元数据信息向所述客户端返回第一读取响应,以使所述客户端根据所述第一读取响应在所述第一存储节点中读取所述待同步数据;其中,所述第一读取响应包括所述第一存储节点的节点标识。
进一步的,所述存储控制模块602,还用于当所述第一存储节点满足第一同步条件且所述第二存储节点满足第二同步条件时,根据所述待同步数据的元数据信息控制所述第二存储节点向所述第一存储节点发送数据同步请求,以使所述第一存储节点根据所述数据同步请求将所述待同步数据写入到所述第二存储节点中;接收所述第一存储节点返回的第一同步反馈;其中,所述第一同步反馈包括所述第一存储节点的节点标识和所述待同步数据的元数据信息;接收所述第二存储节点返回的第二同步反馈;其中,所述第二同步反馈包括所述第二存储节点的节点标识和所述待同步数据的元数据信息。
本发明实施例提出的分布式存储装置,先将待同步数据的元数据信息存储到元数据管理集群中;然后根据待同步数据的元数据信息将待同步数据存储到与其对应的第一存储节点;再根据待同步数据的元数据信息将待同步数据从第一存储节点同步到与其对应的第二存储节点中。也就是说,在本发明的技术方案中,将存储数据以及存储数据的元数据信息进行分离存储,当分布式存储系统的拓扑结构发生变化时,元数据管理集群可以先对待同步数据的元数据信息进行同步,对于分布式存储系统中发生变化的存储节点,元数据管理集群可以将这些存储节点中的待同步数据存储到新的存储节点中;或者,元数据管理集群可以将这些存储节点提供给待同步数据进行存储;对于分布式存储系统中未发生变化的存储节点,元数据管理集群可以保持这些存储节点中的待同步数据不变。而在现有的分布式系统的存储方法中,当分布式存储系统的拓扑结构频繁地发生变化时,各个存储节点中存储的大量数据需要再均衡;此时如果分布式存储系统的网络带宽较低,那么就不能支持大量的数据在各个存储节点间迁移,最终有可能导致整个分布式存储系统无法正常使用。因此,和现有技术相比,本发明实施例提出的分布式系统的存储装置,当分布式存储系统的拓扑结构频繁地发生变化时,如果分布式存储系统的网络带宽较低,也可以保证分布式存储系统的正常使用;并且,本发明实施例的技术方案实简单方便、便于普及,适用范围更广。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
图7是本发明实施例中存储设备的组成结构示意图。图7示出了适于用来实现本发明实施方式的示例性存储设备的框图。图7显示的存储设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,存储设备12以通用计算设备的形式表现。存储设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
存储设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被存储设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。存储设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
存储设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该存储设备12交互的设备通信,和/或与使得该存储设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,存储设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与存储设备12的其它模块通信。应当明白,尽管图中未示出,可以结合存储设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的分布式系统的存储方法。
本发明实施例还提供一种非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行上述任一实施例所述的方法。
当然,本发明实施例所提供的包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的分布式系统的存储方法中的相关操作。
本发明实施例的计算机可读存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种分布式系统的存储方法,其特征在于,所述分布式系统包括:一个元数据管理集群和多个存储节点;所述元数据管理集群与各个存储节点连接;所述方法包括:
将待同步数据的元数据信息存储到所述元数据管理集群中;
根据所述待同步数据的元数据信息将所述待同步数据存储到与其对应的第一存储节点中;
根据所述待同步数据的元数据信息将所述待同步数据从所述第一存储节点同步到与其对应的第二存储节点中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待同步数据的元数据信息将所述待同步数据存储到与其对应的第一存储节点中,包括:
接收客户端发送的第一写入请求;
根据所述待同步数据的元数据信息向所述客户端返回第一写入响应,以使所述客户端根据所述第一写入响应将所述待同步数据写入到与所述第一存储节点中;其中,所述第一写入响应包括所述第一存储节点的节点标识。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的第一读取请求;
根据所述待同步数据的元数据信息向所述客户端返回第一读取响应,以使所述客户端根据所述第一读取响应在所述第一存储节点中读取所述待同步数据;其中,所述第一读取响应包括所述第一存储节点的节点标识。
4.根据权利要求1所述的方法,其特征在于,所述根据所述待同步数据的元数据信息将所述待同步数据从所述第一存储节点同步到与其对应的第二存储节点中,包括:
当所述第一存储节点满足第一同步条件且所述第二存储节点满足第二同步条件时,根据所述待同步数据的元数据信息控制所述第二存储节点向所述第一存储节点发送数据同步请求,以使所述第一存储节点根据所述数据同步请求将所述待同步数据写入到所述第二存储节点中;
接收所述第一存储节点返回的第一同步反馈;其中,所述第一同步反馈包括所述第一存储节点的节点标识和所述待同步数据的元数据信息;
接收所述第二存储节点返回的第二同步反馈;其中,所述第二同步反馈包括所述第二存储节点的节点标识和所述待同步数据的元数据信息。
5.一种分布式系统的存储装置,其特征在于,所述分布式系统包括:元数据管理集群和多个存储节点;所述元数据管理集群与各个存储节点连接;所述装置包括:元数据存储模块和存储控制模块;其中,
所述元数据存储模块,用于将所述待同步数据的元数据信息存储到所述元数据管理集群中;
所述存储控制模块,用于根据所述待同步数据的元数据信息将所述待同步数据存储到与其对应的第一存储节点中;根据所述待同步数据的元数据信息将所述待同步数据从所述第一存储节点同步到与其对应的第二存储节点中。
6.根据权利要求5所述的装置,其特征在于,所述存储控制模块,具体用于接收客户端发送的第一写入请求;根据所述待同步数据的元数据信息向所述客户端返回第一写入响应,以使所述客户端根据所述第一写入响应将所述待同步数据写入到与所述第一存储节点中;其中,所述第一写入响应包括所述第一存储节点的节点标识。
7.根据权利要求5所述的装置,其特征在于,所述元数据存储模块,还用于接收所述客户端发送的第一读取请求;根据所述待同步数据的元数据信息向所述客户端返回第一读取响应,以使所述客户端根据所述第一读取响应在所述第一存储节点中读取所述待同步数据;其中,所述第一读取响应包括所述第一存储节点的节点标识。
8.根据权利要求5所述的装置,其特征在于,所述存储控制模块,还用于当所述第一存储节点满足第一同步条件且所述第二存储节点满足第二同步条件时,根据所述待同步数据的元数据信息控制所述第二存储节点向所述第一存储节点发送数据同步请求,以使所述第一存储节点根据所述数据同步请求将所述待同步数据写入到所述第二存储节点中;接收所述第一存储节点返回的第一同步反馈;其中,所述第一同步反馈包括所述第一存储节点的节点标识和所述待同步数据的元数据信息;接收所述第二存储节点返回的第二同步反馈;其中,所述第二同步反馈包括所述第二存储节点的节点标识和所述待同步数据的元数据信息。
9.一种存储设备,其特征在于,所述存储设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一权利要求所述的方法。
10.一种非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行如权利要求1至5任一权利要求所述的方法。
CN201810653279.1A 2018-06-22 2018-06-22 一种分布式系统的存储方法、装置、存储设备及存储介质 Pending CN110633046A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810653279.1A CN110633046A (zh) 2018-06-22 2018-06-22 一种分布式系统的存储方法、装置、存储设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810653279.1A CN110633046A (zh) 2018-06-22 2018-06-22 一种分布式系统的存储方法、装置、存储设备及存储介质

Publications (1)

Publication Number Publication Date
CN110633046A true CN110633046A (zh) 2019-12-31

Family

ID=68967158

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810653279.1A Pending CN110633046A (zh) 2018-06-22 2018-06-22 一种分布式系统的存储方法、装置、存储设备及存储介质

Country Status (1)

Country Link
CN (1) CN110633046A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159141A (zh) * 2020-01-02 2020-05-15 中国航空工业集团公司西安航空计算技术研究所 一种去中心化的分布式数据同步方法、分布式节点及系统
CN112468601A (zh) * 2021-02-03 2021-03-09 柏科数据技术(深圳)股份有限公司 一种分布式存储系统的数据同步方法、访问方法及系统
CN113268395A (zh) * 2021-04-30 2021-08-17 厦门科灿信息技术有限公司 业务数据的处理方法、处理装置及终端
CN113656496A (zh) * 2021-07-30 2021-11-16 星辰天合(北京)数据科技有限公司 数据处理方法及系统
CN114115718A (zh) * 2021-08-31 2022-03-01 济南浪潮数据技术有限公司 分布式块存储系统服务质量控制方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101980192A (zh) * 2010-10-15 2011-02-23 中兴通讯股份有限公司 一种基于对象的集群文件系统管理方法及集群文件系统
CN102694860A (zh) * 2012-05-25 2012-09-26 北京邦诺存储科技有限公司 一种云存储的数据处理方法、设备及系统
CN103795801A (zh) * 2014-02-12 2014-05-14 浪潮电子信息产业股份有限公司 一种基于实时应用集群的元数据集群设计方法
EP3080717A1 (en) * 2013-12-11 2016-10-19 Intel Corporation Cache and non-cache usage in a distributed storage system
CN108173953A (zh) * 2017-12-29 2018-06-15 北京奇虎科技有限公司 一种基于内容分发网络cdn的文件分发方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101980192A (zh) * 2010-10-15 2011-02-23 中兴通讯股份有限公司 一种基于对象的集群文件系统管理方法及集群文件系统
CN102694860A (zh) * 2012-05-25 2012-09-26 北京邦诺存储科技有限公司 一种云存储的数据处理方法、设备及系统
EP3080717A1 (en) * 2013-12-11 2016-10-19 Intel Corporation Cache and non-cache usage in a distributed storage system
CN103795801A (zh) * 2014-02-12 2014-05-14 浪潮电子信息产业股份有限公司 一种基于实时应用集群的元数据集群设计方法
CN108173953A (zh) * 2017-12-29 2018-06-15 北京奇虎科技有限公司 一种基于内容分发网络cdn的文件分发方法和装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159141A (zh) * 2020-01-02 2020-05-15 中国航空工业集团公司西安航空计算技术研究所 一种去中心化的分布式数据同步方法、分布式节点及系统
CN112468601A (zh) * 2021-02-03 2021-03-09 柏科数据技术(深圳)股份有限公司 一种分布式存储系统的数据同步方法、访问方法及系统
CN112468601B (zh) * 2021-02-03 2021-05-18 柏科数据技术(深圳)股份有限公司 一种分布式存储系统的数据同步方法、访问方法及系统
CN113268395A (zh) * 2021-04-30 2021-08-17 厦门科灿信息技术有限公司 业务数据的处理方法、处理装置及终端
CN113656496A (zh) * 2021-07-30 2021-11-16 星辰天合(北京)数据科技有限公司 数据处理方法及系统
CN114115718A (zh) * 2021-08-31 2022-03-01 济南浪潮数据技术有限公司 分布式块存储系统服务质量控制方法、装置、设备及介质
CN114115718B (zh) * 2021-08-31 2024-03-29 济南浪潮数据技术有限公司 分布式块存储系统服务质量控制方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
JP7214295B2 (ja) 分散型システムのデータ同期方法、装置、コンピュータプログラム、及び電子機器
US10691568B2 (en) Container replication and failover orchestration in distributed computing environments
US10073747B2 (en) Reducing recovery time in disaster recovery/replication setup with multitier backend storage
CN110633046A (zh) 一种分布式系统的存储方法、装置、存储设备及存储介质
CN111078147B (zh) 一种缓存数据的处理方法、装置、设备及存储介质
US8195619B2 (en) Extent reference count update system and method
US10067692B2 (en) Method and apparatus for backing up and restoring cross-virtual machine application
WO2021139224A1 (zh) 云场景下的文件备份方法、装置、介质、电子设备
CN107666493B (zh) 一种数据库配置方法及其设备
CN112346647B (zh) 数据存储方法、装置、设备和介质
CN113806300B (zh) 数据存储方法、系统、装置、设备及存储介质
CN111818145B (zh) 一种文件传输方法、装置、系统、设备及存储介质
US20150378854A1 (en) Maintaining inactive copy relationships for secondary storages of active copy relationships having a common primary storage for use in case of a failure of the common primary storage
US20170206027A1 (en) Management system and management method of computer system
CN111225003B (zh) 一种nfs节点配置方法和装置
US20140351210A1 (en) Data processing system, data processing apparatus, and storage medium
US11194771B2 (en) Methods for transferring reserves when moving virtual machines across systems
US8621260B1 (en) Site-level sub-cluster dependencies
EP3349416B1 (en) Relationship chain processing method and system, and storage medium
US9223513B2 (en) Accessing data in a dual volume data storage system using virtual identifiers
US9971532B2 (en) GUID partition table based hidden data store system
US20220138220A1 (en) Dedicated replication channels for replicating records between regions
CN117643015A (zh) 基于日志记录的客户端密钥修改的快照跨一系列节点管理密钥
CN114490540A (zh) 数据存储方法、介质、装置和计算设备
US10712959B2 (en) Method, device and computer program product for storing data

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20191231

RJ01 Rejection of invention patent application after publication