CN113282564A - 数据存储方法、系统、节点和存储介质 - Google Patents

数据存储方法、系统、节点和存储介质 Download PDF

Info

Publication number
CN113282564A
CN113282564A CN202110840278.XA CN202110840278A CN113282564A CN 113282564 A CN113282564 A CN 113282564A CN 202110840278 A CN202110840278 A CN 202110840278A CN 113282564 A CN113282564 A CN 113282564A
Authority
CN
China
Prior art keywords
data
node
cloud
nodes
storage
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
CN202110840278.XA
Other languages
English (en)
Other versions
CN113282564B (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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Cloud Computing 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 Alibaba Cloud Computing Ltd filed Critical Alibaba Cloud Computing Ltd
Priority to CN202110840278.XA priority Critical patent/CN113282564B/zh
Publication of CN113282564A publication Critical patent/CN113282564A/zh
Application granted granted Critical
Publication of CN113282564B publication Critical patent/CN113282564B/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/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/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems

Landscapes

  • Engineering & Computer Science (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

数据存储方法、系统、节点和存储介质
技术领域
本发明涉及云计算技术领域,尤其涉及一种数据存储方法、系统、节点和存储介质。
背景技术
随着云计算的兴起,云计算带来的低成本、按需灵活配置和高资源利用率吸引了越来越多的企业用户把它们的系统迁移到云上。
比如将一些大数据系统迁移到云上的一个实现方式是:使用云端提供的基础设施即服务(Infrastructure as a Service,简称IaaS)资源搭建其系统,称之为云上自建。
以Hadoop分布式文件系统(Hadoop Distributed File System,简称HDFS)为例,HDFS由名字节点与若干数据节点组成,HDFS本身会使用多副本机制进行数据存储,以保证数据的高可用性。而云端也会提供有云存储系统,为保证数据安全、可靠,也会采用多副本机制进行数据存储。因此,具体如何实现HDFS上云,以及在HDFS上云过程中降低数据存储成本,是亟待解决的问题。
发明内容
本发明实施例提供一种数据存储方法、系统、节点和存储介质,用以实现分布式文件系统上云,且降低数据存储成本。
第一方面,本发明实施例提供一种数据存储方法,应用于分布式文件系统中的管理节点,所述分布式文件系统中还包括多个数据节点,所述多个数据节点中的部分数据节点共用同一云盘;该方法包括:
响应于客户端的数据存储请求,从预设的多个云盘中确定目标云盘;
在所述目标云盘挂载的数据节点中确定预设数量的数据节点;
将所述预设数量的数据节点的标识发送至所述客户端,以使所述客户端将数据块发送到第一数据节点,通过所述第一数据节点将所述数据块存入所述目标云盘以及将所述数据块的写入事件日志同步至第二数据节点,所述第一数据节点是所述预设数量的数据节点中的一个,所述第二数据节点包括所述预设数量的数据节点中的其他数据节点;其中,所述目标云盘将所述数据块的多个副本存入云存储系统中。
第二方面,本发明实施例提供一种数据存储装置,位于应用于分布式文件系统中的管理节点,所述分布式文件系统中还包括多个数据节点,所述多个数据节点中的部分数据节点共用同一云盘,该装置包括:
确定模块,用于响应于客户端的数据存储请求,从预设的多个云盘中确定目标云盘;在所述目标云盘挂载的数据节点中确定预设数量的数据节点;
发送模块,用于将所述预设数量的数据节点的标识发送至所述客户端,以使所述客户端将数据块发送到第一数据节点,通过所述第一数据节点将所述数据块存入所述目标云盘以及将所述数据块的写入事件日志同步至第二数据节点,所述第一数据节点是所述预设数量的数据节点中的一个,所述第二数据节点包括所述预设数量的数据节点中的其他数据节点;其中,所述目标云盘将所述数据块的多个副本存入云存储系统中。
第三方面,本发明实施例提供一种管理节点,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第一方面所述的数据存储方法。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被管理节点的处理器执行时,使所述处理器至少可以实现如第一方面所述的数据存储方法。
第五方面,本发明实施例提供一种数据存储方法,应用于分布式文件系统中的第一数据节点,所述分布式文件系统中包括管理节点和多个数据节点,所述多个数据节点中的部分数据节点共用同一云盘;该方法包括:
接收客户端发送的数据块,其中,所述客户端根据所述管理节点发送的预设数量的数据节点的标识选定所述第一数据节点以向所述第一数据节点发送所述数据块,所述管理节点响应于所述客户端的数据存储请求,从预设的多个云盘中确定目标云盘以及在所述目标云盘挂载的数据节点中确定所述预设数量的数据节点;
将所述数据块存入目标云盘,以使所述目标云盘将所述数据块的多个副本存入云存储系统中;
将所述数据块的写入事件日志同步至第二数据节点,所述第二数据节点包括所述预设数量的数据节点中的其他数据节点。
第六方面,本发明实施例提供一种数据存储装置,位于分布式文件系统中的第一数据节点,所述分布式文件系统中包括管理节点和多个数据节点,所述多个数据节点中的部分数据节点共用同一云盘;该装置包括:
接收模块,用于接收客户端发送的数据块,其中,所述客户端根据所述管理节点发送的预设数量的数据节点的标识选定所述第一数据节点以向所述第一数据节点发送所述数据块,所述管理节点响应于所述客户端的数据存储请求,从预设的多个云盘中确定目标云盘以及在所述目标云盘挂载的数据节点中确定所述预设数量的数据节点;
存储模块,用于将所述数据块存入目标云盘,以使所述目标云盘将所述数据块的多个副本存入云存储系统中;将所述数据块的写入事件日志同步至第二数据节点,所述第二数据节点包括所述预设数量的数据节点中的其他数据节点。
第七方面,本发明实施例提供一种数据节点,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第五方面所述的数据存储方法。
第八方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被数据节点的处理器执行时,使所述处理器至少可以实现如第五方面所述的数据存储方法。
第九方面,本发明实施例提供一种数据存储系统,包括:
分布式文件系统、云存储系统和多个云盘;
所述分布式文件系统中包括管理节点和多个数据节点;所述多个数据节点中的部分数据节点共用同一云盘;
所述管理节点,用于响应于客户端的数据存储请求,从所述多个云盘中确定目标云盘以及在所述目标云盘挂载的数据节点中确定预设数量的数据节点,将所述预设数量的数据节点的标识发送至所述客户端;
第一数据节点,用于接收所述客户端发送的数据块,并将所述数据块存入所述目标云盘,将所述数据块的写入事件日志同步至第二数据节点,所述第一数据节点是所述预设数量的数据节点中的一个,所述第二数据节点包括所述预设数量的数据节点中的其他数据节点;
所述目标云盘,用于将所述数据块的多个副本存入所述云存储系统中。
本发明实施例提供的方案中,将包含管理节点和若干数据节点的分布式文件系统部署在云端后,为支持数据节点对数据的存储,还设置多个云盘,其中,云盘与数据节点的对应关系为一对多的关系,即一个云盘由多个数据节点共享。另外,云盘仅是逻辑的存储空间,在将数据最终存储到物理存储空间上,还提供支持云盘的底层的云存储系统,该云存储系统可以是由若干物理机构成的分布式云存储系统。
基于上述系统架构在进行数据存储的过程中,需要进行数据存储的客户端先将数据存储请求发送到分布式文件系统中的管理节点,管理节点响应于客户端的数据存储请求,从多个云盘中确定目标云盘以及在目标云盘挂载的数据节点中确定预设数量的数据节点,并将预设数量的数据节点的标识发送至客户端。其中,原本在分布式文件系统中会提供数据的冗余备份机制,该预设数量便是基于数据的冗余备份数量决定。客户端从预设数量的数据节点中选定一个数据节点,称为第一数据节点,将需要存储的数据块发送至第一数据节点。接着,第一数据节点将收到的数据块存入目标云盘,以通过目标云盘最终将该数据块的多个副本存入底层的云存储系统中,其中,为保证数据的安全可靠,云盘也采用多副本的方式将数据块存入到云存储系统中。另外,第一数据节点还将数据块的写入事件日志同步至第二数据节点,其中,第二数据节点包括上述预设数量的数据节点中的其他数据节点,以使上述预设数量的数据节点都能维护上述数据块的存储信息。
在上述方案中,为了实现诸如HDFS等分布式文件系统上云,同时最大程度上保留HDFS等分布式文件系统的原生语义(比如并不对分布式文件系统自身的多副本机制以及其与客户端的交互过程产生较大改变),通过共享云盘方式实现对分布式文件系统中需要存储的数据块的存储。其中,一方面,在数据节点层面,仅进行了单副本的共享存储,无需如传统分布式系统中在数据节点层面进行多副本的存储;另一方面,针对客户端需要存储的某数据块来说,最终该数据块通过相应数据节点所对应的云盘实现了在云存储系统中的多副本冗余存储。通过该方案,既保证了数据的安全、可靠存储,又降低了数据块的副本数量,降低存储成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据存储系统的示意图;
图2为本发明实施例提供的另一种数据存储系统的示意图;
图3为基于图2所示系统的一种数据存储过程的示意图;
图4为本发明实施例提供的另一种数据存储系统的示意图;
图5为本发明实施例提供的一种数据存储过程的示意图;
图6为本发明实施例提供的一种数据存储方法的交互流程图;
图7为本发明实施例提供的一种数据存储装置的结构示意图;
图8为与图7所示实施例提供的数据存储装置对应的管理节点的结构示意图;
图9为本发明实施例提供的一种数据存储装置的结构示意图;
图10为与图9所示实施例提供的数据存储装置对应的数据节点的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
在以HDFS为代表的大数据系统上云过程中,可以使用云端提供的IaaS资源搭建其系统,称之为云上自建。比如,该IaaS资源为云服务器(ECS)。
在使用云服务器搭建分布式文件系统时,一种可选的实现方案是:使用云服务器所在宿主机本地的存储磁盘为分布式文件系统提供数据存储空间。具体来说,云端部署有若干云服务器(或者称为云服务器实例),可以选定其中一个云服务器,在其中部署分布式文件系统中的管理节点(当分布式文件系统为HDFS等系统时,也可以称为名字节点),即在其中部署管理节点所具有的功能。并选定其他的多个云服务器,在这多个云服务器中分别部署分布式文件系统中的数据节点,即在其中的每个云服务器中部署数据节点所具有的功能。为便于理解,结合图1来示例性说明。
在图1中,假设分布式文件系统中包括1个管理节点和N个数据节点,N大于1,那么在云端选定N+1个云服务器进行这个管理节点和N个数据节点的部署。如图1中所示,对应于N个数据节点的云服务器所在宿主机本地的磁盘将作为相应数据节点的存储空间。
由于分布式文件系统本身采用了多副本(常见的为三副本)机制进行数据块的存储,基于此,假设某客户端当前需要将数据块x存入到分布式文件系统中,简单来说存入过程是:客户端向管理节点发送数据存储请求,管理节点选定三个数据节点(比如为图1中示意的数据节点1、数据节点2和数据节点3)反馈给客户端,客户端将数据块x发送给其中的一个数据节点,如数据节点1。之后,数据节点1将数据块x存储在本地的磁盘中,并将数据块x的两个副本分别发送给数据节点2和数据节点3,由数据节点2和数据节点3分别存储到自己本地的磁盘中。
可以理解的是,上述数据块是分布式文件系统中存储数据的最小单位,可以是64KB等设定的大小。客户端需要存储的数据被拆分成一个或多个数据块,将拆分出的数据块依次存入分布式文件系统。
由此可见,在上述方案中,在基于云服务器本地的磁盘进行分布式文件系统的部署时,由于云服务器本地磁盘存储能力有限,若想要扩容存储,只能通过增加云服务器即数据节点的方式,成本较高。为此,本发明实施例还提供了另一种使用云服务器搭建分布式文件系统的解决方案:云盘存储方案。云盘采用多副本的分布式存储机制,具有低时延、高性能、持久性、高可靠等性能,支持随时创建、扩容以及释放,在使用接口上与本地磁盘相一致。在基于云盘部署分布式文件系统时,由于云盘支持在线扩容,因此扩容存储可以直接扩容云盘,不再需要增加云服务器。为便于理解,结合图2示例性说明。
如图2中所示,每个数据节点所在的云服务器下挂载有相应的云盘,称为私有云盘。按照实际存储需求,可以对私有云盘的存储容量进行扩容,比如图中示意的由256GB扩容到512GB。上文中所说“云盘采用多副本的分布式存储机制”,具体来说就是:在云端部署有一个云存储系统,可以称为分布式云存储系统,如图2中所示,该云存储系统由若干物理机构成,其中每个物理机中都包含物理存储介质,比如磁盘等。相对于底层的物理的云存储系统来说,云盘可以认为是逻辑存储空间或者说虚拟存储空间。某云盘在接收到某数据时,会将该数据复制多份,将这多份数据分别存入到云存储系统中的不同物理机中,这便是云盘的多副本分布式存储机制。
基于图2所示的系统架构进行数据的存储过程可以参考图3来实现:
假设某客户端当前需要将数据块x存入到分布式文件系统中,客户端向管理节点发送数据存储请求,管理节点选定三个数据节点(比如为图2中示意的数据节点1、数据节点2和数据节点3)反馈给客户端,客户端将数据块x发送给其中的一个数据节点,如数据节点1。之后,数据节点1将数据块x发送至对应的私有云盘1中,并将数据块x的两个副本分别发送给数据节点2和数据节点3,由数据节点2和数据节点3分别发送到自己对应的私有云盘2和私有云盘3中。私有云盘1将数据块x复制三份(假设云盘采用的也是三副本机制),存储到云存储系统中的三个物理机中,同样地,私有云盘2也将数据块x复制三份存储到云存储系统中的三个物理机中,私有云盘3将数据块x复制三份存储到云存储系统中的三个物理机中。由此可见,云存储系统中最终会通过三个数据节点存储9份数据块x。数据块的存储副本数比较大,会占用过多的存储资源,增加数据块的存储成本。数据块副本数的过多存储,也会影响IO读取性能。
为此,本发明实施例还提供了另一种使用云服务器搭建分布式文件系统的解决方案:共享云盘方案。该解决方案所提供的数据存储系统架构如图4中所示,包括由管理节点和多个数据节点构成的分布式文件系统,云存储系统和多个云盘,其中,所述多个数据节点中的部分数据节点共用同一云盘。
如图4中所示,假设仍旧基于云端提供的云服务器搭建分布式文件系统中包含的管理节点和N个数据节点。假设上述数据存储系统中包括M个云盘,M大于1。这M个云盘中的任一个云盘与分布式文件系统中的数据节点的对应关系为:一对多。即一个云盘可以由几个数据节点共享。比如在图4中示意的:数据节点1、数据节点2和数据节点3共享一个云盘a。
在实际应用中,为了满足分布式文件系统的数据节点的弹性扩容与缩容的需求,共享式的云盘可以被动态地挂载在数据节点上,并随着数据节点的缩容进行动态的卸载。
另外,实际应用中,数据节点与共享式的云盘的对应关系可以根据设定的规则来确定,比如:设定每个云盘上能够接入的数据节点数量范围,设定一个数据节点可以接入的云盘数量范围,这样基于分布式文件系统中已经部署的数据节点数量和已经部署的云盘数量,可以确定云盘与数据节点之间的连接关系。当然,也可以由云端的相关人员预先根据其他规则配置好数据节点与云盘之间的连接关系,该连接关系体现为多个数据节点会共享一个云盘。
基于图4所示的系统架构进行数据的存储过程可以参考图5来实现。
具体过程是:客户端需要存储某文件时,将需要存储的文件进行数据块的拆分,之后逐个数据块地触发存储过程:向管理节点发送数据存储请求。管理节点响应于客户端的数据存储请求,从多个云盘中确定目标云盘以及在目标云盘挂载的数据节点中确定预设数量的数据节点,将该预设数量的数据节点的标识发送至客户端。如图5中所示,假设管理节点反馈给客户端的目标云盘为图中示意的云盘a,并假设从云盘a上挂载的多个数据节点中确定出的预设数量的数据节点为图中示意的数据节点1、数据节点2和数据节点3。
其中,可选地,管理节点具体可以先在多个云盘中确定剩余容量符合设定要求的云盘,再在剩余容量符合设定要求的云盘中确定目标云盘。比如,假设该设定要求为剩余容量最多,那么目标云盘即为M个云盘中剩余容量最多的云盘。再比如,该设定要求还可以是剩余容量topK的K个云盘,K为预设数值,比如为3,此时,目标云盘可以是从这K个云盘中随机选定的一个,或者,也可以在确定出K个云盘时,设置设定的时长,在该时长轮询使用这K个云盘,即在该时长内依次收到的数据存储请求会依次轮询使用这K个云盘。
其中,可选地,管理节点在确定出目标云盘后,从目标云盘挂载的全部数据节点中可以随机地选定出上述预设数量的数据节点,该预设数量是根据分布式文件系统中设定的数据块副本数量来确定的,通常为3副本。
实际应用中,管理节点可以根据选出的上述三个数据节点各自相对客户端的距离对这三个数据节点进行排序,从而在将这三个数据节点各自的标识发送给客户端时,这三个数据节点的标识的排序与上述距离排序结果一致。其中,数据节点的标识可以是数据节点对应的通信地址。
客户端接收到上述三个数据节点的标识后,可以随机从中选定一个数据节点,或基于上述排序结果选定第一个数据节点,为便于描述,将选择出的数据节点称为第一数据节点。客户端将当前需要存储的数据块发送到第一数据节点,由第一数据节点进行该数据块的存储处理。在图5中,假设第一数据节点为数据节点1。
第一数据节点接收到客户端发送的数据块后,将该数据块存入目标云盘,以使目标云盘将该数据块的多个副本存入底层的云存储系统中;另外,第一数据节点还将数据块的写入事件日志同步至第二数据节点,以使第二数据节点也维护该数据块的相关信息,其中,第二数据节点包括所述预设数量的数据节点中的其他数据节点,比如图5中示意的数据节点2和数据节点3。可选地,第二数据节点还可以包括目标云盘上挂载的除数据节点2、数据节点3外的其他数据节点。其中,上述数据块的相关信息可以包括数据块的标识。
实际应用中,在第一数据节点将数据块写入目标云盘,进而通过目标云盘将该数据块的多个副本存入底层的云存储系统后,第一数据节点可以获得这多个副本的存储路径,将该存储路径以及数据块的标识反馈给管理节点进行存储。
其中,目标云盘将数据块复制的份数由云盘采用的多副本存储机制规定,通常为3副本。
其中,第一数据节点将数据块的写入事件日志同步至第二数据节点的过程,如图5中所示,可以实现为:第一数据节点将数据块的写入事件日志写入目标云盘,以使第二数据节点在监听到写入事件日志时,将该写入事件日志存储在第二数据节点中。其中,假设第二数据节点即为图5中示意的数据节点2和数据节点3,都被预先配置为不断监听所接入的目标云盘上产生的写入事件日志,当数据节点1在接收到数据块并将数据块存入目标云盘时,会向目标云盘触发与该数据块对应的写入事件日志,该日志中记录有数据块的标识等信息。数据节点2和数据节点3监听到该写入事件日志后,读取到本地进行存储。
这样,从分布式文件系统的角度来说,仍旧是有3个数据节点维护了同一数据块的信息,且同一数据块最终仍旧被存储3个副本,保留了分布式文件系统原生的多副本设计思想。而在数据节点层面,进行了单副本的共享存储,同一数据块最终只会通过一个数据节点而被存储多份(如3份),且是存储在云存储系统中的3个物理机中,从而相比于采用图2所示的系统架构进行的存储,降低了需存储的数据块的副本数量,降低了存储成本。
在一可选实施例中,第一数据节点在接收到客户端发送的数据块后的存储过程可以包括:第一数据节点先将该数据块存入缓存中,之后,通过设定系统调用命令(systemcall)使得操作系统在将数据块存入到目标云盘后反馈存储确认信息,响应于操作系统反馈的存储确认信息,向客户端发送存储成功响应。这样,可以保证数据块在成功存入到目标云盘后才向客户端反馈存储成功响应。
由于在数据节点层面,针对一个数据块实际仅存储单一副本,需要考虑数据节点内存数据丢失的异常情况,例如机器断电,此时内存(缓存)中的Page Cache数据尚未存储到目标云盘中,存在数据丢失的风险。因此,通过上述方式,即通过每次数据块写入时都进行设定的系统调用,保证数据块存储到共享式的目标云盘中。
以上本发明实施例提供的数据存储系统的数据存储过程进行了说明。数据读取过程与传统的分布式文件系统中的数据读取过程类似,先简要进行说明。
假设客户端需要读取某个文件,客户端会向管理节点发送对应的数据读取请求。管理节点中维护有该文件的相关信息,比如该文件中包括的各个数据块的标识,以及每个数据块对应的数据节点。管理节点据此向客户端反馈这个文件对应的数据块列表,以及每个数据块对应的数据节点列表。其中,如前文所述,基于数据块的写入事件日志的同步结果,会有多个数据节点维护同一数据块的相关信息,假设一个数据块可以由三个数据节点维护,那么每个数据块对应的数据节点列表中可以包括相应的三个数据节点的标识。针对每个数据块,客户端从对应的数据节点列表中选定一个数据节点,向该数据节点发送与该数据块对应的数据读取请求,以便该数据节点获取相应数据块并反馈给客户端。
图6为本发明实施例提供的一种数据存储方法的交互流程图,该数据存储方法可以适用于图4所示的数据存储系统中。如图6所示,该方法可以包括如下步骤:
601、客户端向管理节点发送数据存储请求。
602、管理节点从预设的多个云盘中确定目标云盘,在目标云盘挂载的数据节点中确定预设数量的数据节点。
603、管理节点将确定出的数据节点的标识发送至客户端。
604、客户端将数据块发送到第一数据节点。
其中,所述第一数据节点是所述预设数量的数据节点中的一个。
605、第一数据节点将数据块存入目标云盘以及将数据块的写入事件日志存入目标云盘,以使第二数据节点监听目标云盘以得到写入事件日志。
其中,所述第二数据节点包括所述预设数量的数据节点中的其他数据节点。
606、目标云盘将数据块的多个副本存入云存储系统中。
本实施例中未展开描述的相关内容,可以参考前述实施例中的相关说明,在此不赘述。
以下将详细描述本发明的一个或多个实施例的数据存储装置。本领域技术人员可以理解,这些装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图7为本发明实施例提供的一种数据存储装置的结构示意图,该装置位于管理节点,如图7所示,该装置包括:确定模块11、发送模块12。
确定模块11,用于响应于客户端的数据存储请求,从预设的多个云盘中确定目标云盘;在所述目标云盘挂载的数据节点中确定预设数量的数据节点;
发送模块12,用于将所述预设数量的数据节点的标识发送至所述客户端,以使所述客户端将数据块发送到第一数据节点,通过所述第一数据节点将所述数据块存入所述目标云盘以及将所述数据块的写入事件日志同步至第二数据节点,所述第一数据节点是所述预设数量的数据节点中的一个,所述第二数据节点包括所述预设数量的数据节点中的其他数据节点;其中,所述目标云盘将所述数据块的多个副本存入云存储系统中。
图7所示装置可以执行前述实施例中管理节点执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图7所示数据存储装置的结构可实现为一管理节点,如图8所示,该管理节点可以包括:第一处理器21、第一存储器22、第一通信接口23。其中,第一存储器22上存储有可执行代码,当所述可执行代码被第一处理器21执行时,使第一处理器21至少可以实现如前述实施例中管理节点执行的步骤。
图9为本发明实施例提供的一种数据存储装置的结构示意图,该装置位于数据节点,如图9所示,该装置包括:接收模块31、存储模块32。
接收模块31,用于接收客户端发送的数据块,其中,所述客户端根据所述管理节点发送的预设数量的数据节点的标识选定所述第一数据节点以向所述第一数据节点发送所述数据块,所述管理节点响应于所述客户端的数据存储请求,从预设的多个云盘中确定目标云盘以及在所述目标云盘挂载的数据节点中确定所述预设数量的数据节点。
存储模块32,用于将所述数据块存入目标云盘,以使所述目标云盘将所述数据块的多个副本存入云存储系统中;将所述数据块的写入事件日志同步至第二数据节点,所述第二数据节点包括所述预设数量的数据节点中的其他数据节点。
图9所示装置可以执行前述实施例中数据节点执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图9所示数据存储装置的结构可实现为一数据节点,如图10所示,该数据节点可以包括:第二处理器41、第二存储器42、第二通信接口43。其中,第二存储器42上存储有可执行代码,当所述可执行代码被第二处理器41执行时,使第二处理器41至少可以实现如前述实施例中数据节点执行的步骤。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的数据存储方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (12)

1.一种数据存储系统,其特征在于,包括:
分布式文件系统、云存储系统和多个云盘;
所述分布式文件系统中包括管理节点和多个数据节点;所述多个数据节点中的部分数据节点共用同一云盘;
所述管理节点,用于响应于客户端的数据存储请求,从所述多个云盘中确定目标云盘以及在所述目标云盘挂载的数据节点中确定预设数量的数据节点,将所述预设数量的数据节点的标识发送至所述客户端;
第一数据节点,用于接收所述客户端发送的数据块,并将所述数据块存入所述目标云盘,将所述数据块的写入事件日志同步至第二数据节点,所述第一数据节点是所述预设数量的数据节点中的一个,所述第二数据节点包括所述预设数量的数据节点中的其他数据节点;
所述目标云盘,用于将所述数据块的多个副本存入所述云存储系统中。
2.根据权利要求1所述的系统,其特征在于,所述管理节点构建于云服务器集群中的一个云服务器中,所述多个数据节点构建于所述云服务器集群中的多个云服务器中。
3.根据权利要求1所述的系统,其特征在于,所述管理节点具体用于:在所述多个云盘中确定剩余容量符合设定要求的云盘,在所述剩余容量符合设定要求的云盘中确定所述目标云盘。
4.根据权利要求1所述的系统,其特征在于,所述第一数据节点具体用于:将所述数据块的写入事件日志写入所述目标云盘,以使所述第二数据节点在监听到所述写入事件日志时,将所述写入事件日志存储在所述第二数据节点中。
5.根据权利要求1所述的系统,其特征在于,所述第一数据节点还用于:
将所述数据块存入缓存中;
通过设定系统调用命令使得操作系统在将所述数据块存入到所述目标云盘后反馈存储确认信息;
响应于所述操作系统反馈的所述存储确认信息,向所述客户端发送存储成功响应。
6.一种数据存储方法,其特征在于,应用于分布式文件系统中的管理节点,所述分布式文件系统中还包括多个数据节点,所述多个数据节点中的部分数据节点共用同一云盘;所述方法包括:
响应于客户端的数据存储请求,从预设的多个云盘中确定目标云盘;
在所述目标云盘挂载的数据节点中确定预设数量的数据节点;
将所述预设数量的数据节点的标识发送至所述客户端,以使所述客户端将数据块发送到第一数据节点,通过所述第一数据节点将所述数据块存入所述目标云盘以及将所述数据块的写入事件日志同步至第二数据节点,所述第一数据节点是所述预设数量的数据节点中的一个,所述第二数据节点包括所述预设数量的数据节点中的其他数据节点;其中,所述目标云盘将所述数据块的多个副本存入云存储系统中。
7.根据权利要求6所述的方法,其特征在于,所述管理节点构建于云服务器集群中的一个云服务器中,所述多个数据节点构建于所述云服务器集群中的多个云服务器中。
8.一种数据存储方法,其特征在于,应用于分布式文件系统中的第一数据节点,所述分布式文件系统中包括管理节点和多个数据节点,所述多个数据节点中的部分数据节点共用同一云盘;所述方法包括:
接收客户端发送的数据块,其中,所述客户端根据所述管理节点发送的预设数量的数据节点的标识选定所述第一数据节点以向所述第一数据节点发送所述数据块,所述管理节点响应于所述客户端的数据存储请求,从预设的多个云盘中确定目标云盘以及在所述目标云盘挂载的数据节点中确定所述预设数量的数据节点;
将所述数据块存入目标云盘,以使所述目标云盘将所述数据块的多个副本存入云存储系统中;
将所述数据块的写入事件日志同步至第二数据节点,所述第二数据节点包括所述预设数量的数据节点中的其他数据节点。
9.根据权利要求8所述的方法,其特征在于,所述将所述数据块的写入事件日志同步至第二数据节点,包括:
将所述数据块的写入事件日志写入所述目标云盘,以使所述第二数据节点在监听到所述写入事件日志时,将所述写入事件日志存储在所述第二数据节点中。
10.一种管理节点,其特征在于,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求6或7所述的数据存储方法。
11.一种数据节点,其特征在于,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求8或9所述的数据存储方法。
12.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被处理器执行时,使所述处理器执行如权利要求6或权利要求8所述的数据存储方法。
CN202110840278.XA 2021-07-24 2021-07-24 数据存储方法、系统、节点和存储介质 Active CN113282564B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110840278.XA CN113282564B (zh) 2021-07-24 2021-07-24 数据存储方法、系统、节点和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110840278.XA CN113282564B (zh) 2021-07-24 2021-07-24 数据存储方法、系统、节点和存储介质

Publications (2)

Publication Number Publication Date
CN113282564A true CN113282564A (zh) 2021-08-20
CN113282564B CN113282564B (zh) 2022-01-04

Family

ID=77287199

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110840278.XA Active CN113282564B (zh) 2021-07-24 2021-07-24 数据存储方法、系统、节点和存储介质

Country Status (1)

Country Link
CN (1) CN113282564B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422537A (zh) * 2022-03-28 2022-04-29 维塔科技(北京)有限公司 多云存储系统、多云数据读写方法及电子设备
CN114415970A (zh) * 2022-03-25 2022-04-29 北京金山云网络技术有限公司 分布式存储系统的磁盘故障处理方法、装置及服务器
CN114661247A (zh) * 2022-05-23 2022-06-24 武汉四通信息服务有限公司 自动扩容方法、装置、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102414692A (zh) * 2009-04-24 2012-04-11 微软公司 副本数据的动态安置
US20130111262A1 (en) * 2010-05-03 2013-05-02 Panzura, Inc. Providing disaster recovery for a distributed filesystem
US20150261626A1 (en) * 2014-03-17 2015-09-17 Huawei Technologies Co., Ltd. Data restoration method and system
US9678968B1 (en) * 2010-05-03 2017-06-13 Panzura, Inc. Deleting a file from a distributed filesystem
CN108964911A (zh) * 2018-09-18 2018-12-07 苏州米特希赛尔人工智能有限公司 一种基于区块链和量子流数据块技术的流媒体服务系统
CN109033824A (zh) * 2018-09-05 2018-12-18 郑州信大壹密科技有限公司 基于虚拟隔离机制的云盘安全访问方法
CN111444157A (zh) * 2019-01-16 2020-07-24 阿里巴巴集团控股有限公司 分布式文件系统及数据访问方法
US20200327114A1 (en) * 2013-03-15 2020-10-15 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102414692A (zh) * 2009-04-24 2012-04-11 微软公司 副本数据的动态安置
US20130111262A1 (en) * 2010-05-03 2013-05-02 Panzura, Inc. Providing disaster recovery for a distributed filesystem
US9678968B1 (en) * 2010-05-03 2017-06-13 Panzura, Inc. Deleting a file from a distributed filesystem
US20200327114A1 (en) * 2013-03-15 2020-10-15 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US20150261626A1 (en) * 2014-03-17 2015-09-17 Huawei Technologies Co., Ltd. Data restoration method and system
CN109033824A (zh) * 2018-09-05 2018-12-18 郑州信大壹密科技有限公司 基于虚拟隔离机制的云盘安全访问方法
CN108964911A (zh) * 2018-09-18 2018-12-07 苏州米特希赛尔人工智能有限公司 一种基于区块链和量子流数据块技术的流媒体服务系统
CN111444157A (zh) * 2019-01-16 2020-07-24 阿里巴巴集团控股有限公司 分布式文件系统及数据访问方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
战科宇等: "分布式文件系统元数据服务器高可用性设计", 《小型微型计算机系统》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114415970A (zh) * 2022-03-25 2022-04-29 北京金山云网络技术有限公司 分布式存储系统的磁盘故障处理方法、装置及服务器
CN114422537A (zh) * 2022-03-28 2022-04-29 维塔科技(北京)有限公司 多云存储系统、多云数据读写方法及电子设备
CN114422537B (zh) * 2022-03-28 2022-06-21 维塔科技(北京)有限公司 多云存储系统、多云数据读写方法及电子设备
CN114661247A (zh) * 2022-05-23 2022-06-24 武汉四通信息服务有限公司 自动扩容方法、装置、电子设备及存储介质
CN114661247B (zh) * 2022-05-23 2022-09-20 武汉四通信息服务有限公司 自动扩容方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN113282564B (zh) 2022-01-04

Similar Documents

Publication Publication Date Title
CN113282564B (zh) 数据存储方法、系统、节点和存储介质
US10698772B2 (en) Storage system with multiple write journals supporting synchronous replication failure recovery
US10394485B1 (en) Storage system with efficient re-synchronization mode for use in replication of data from source to target
CN111182067B (zh) 一种基于星际文件系统ipfs的数据写入方法及设备
EP3206128B1 (en) Data storage method, data storage apparatus, and storage device
US9917884B2 (en) File transmission method, apparatus, and distributed cluster file system
CN110807062B (zh) 一种数据同步的方法、装置和数据库主机
CN106936931B (zh) 分布式锁的实现方法、相关设备及系统
US11023415B2 (en) Reducing feature dependencies of block storage used to back NAS cluster
CN106873902B (zh) 一种文件存储系统、数据调度方法及数据节点
US9298765B2 (en) Apparatus and method for handling partially inconsistent states among members of a cluster in an erratic storage network
CN114594914A (zh) 用于分布式存储系统的控制方法及系统
CN112099728B (zh) 一种执行写操作、读操作的方法及装置
CN111225003B (zh) 一种nfs节点配置方法和装置
US10931750B1 (en) Selection from dedicated source volume pool for accelerated creation of block data volumes
CN109254873B (zh) 数据备份方法、相关装置及系统
CN112579550B (zh) 一种分布式文件系统的元数据信息同步方法及系统
US8489698B2 (en) Apparatus and method for accessing a metadata
CN111459416B (zh) 一种基于分布式存储的热迁移系统及其迁移方法
CN116389233B (zh) 容器云管理平台主备切换系统、方法、装置和计算机设备
US10956442B1 (en) Dedicated source volume pool for accelerated creation of block data volumes from object data snapshots
CN109992447B (zh) 数据复制方法、装置及存储介质
WO2023070935A1 (zh) 一种数据存储方法、装置及相关设备
CN116954816A (zh) 容器集群控制方法、装置、设备及计算机存储介质
CN109343928B (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
GR01 Patent grant
GR01 Patent grant