CN109815207A - 数据存储方法和客户端代理 - Google Patents

数据存储方法和客户端代理 Download PDF

Info

Publication number
CN109815207A
CN109815207A CN201811618513.3A CN201811618513A CN109815207A CN 109815207 A CN109815207 A CN 109815207A CN 201811618513 A CN201811618513 A CN 201811618513A CN 109815207 A CN109815207 A CN 109815207A
Authority
CN
China
Prior art keywords
file
node server
written
client
duplication
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
CN201811618513.3A
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.)
SHENZHEN ANYUN INFORMATION TECHNOLOGY Co Ltd
Original Assignee
SHENZHEN ANYUN INFORMATION 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 SHENZHEN ANYUN INFORMATION TECHNOLOGY Co Ltd filed Critical SHENZHEN ANYUN INFORMATION TECHNOLOGY Co Ltd
Priority to CN201811618513.3A priority Critical patent/CN109815207A/zh
Publication of CN109815207A publication Critical patent/CN109815207A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据存储方法和客户端代理,在客户端与存储设备之间设置至少一个客户端代理,任一客户端代理连接的存储设备包括:N个文件节点服务器和M个元数据节点服务器,M、N≥2;客户端代理接收到客户端的写请求时,复制写请求对应的第一目标文件至少一份,将第一目标文件及其复制文件写入不同的文件节点服务器,复制第一目标文件对应的第一元数据文件至少一份,更新第一元数据文件及其复制文件中的文件存储地址信息,将第一元数据文件及其复制文件写入不同的元数据节点服务器。本发明的客户端代理,结构简单,扩展性强,其数据存储方法具备高可用和容灾备份能力。

Description

数据存储方法和客户端代理
技术领域
本发明涉及计算机领域,特别涉及一种数据存储方法和客户端代理。
背景技术
随着信息化的深入开展,各行各业的业务***所产生的数据越来越多,由于传统的集中式存储方案(集中式存储是指为待存储的数据制定一个特定的存储区域,如数据中心主机,将所有都存储在该区域中)将所有的数据均存储在数据中心主机上,若数据中心主机出故障,则整个***无法存储和提取数据,即集中式存储方案相较于分布式数据存储,数据稳定性较低,故而分布式数据存储应运而生。
分布式数据存储***既具有集群***的可扩/缩容的特性,又可以进行分布式操作。因此,在数据存储量发生变化时,分布式数据存储***能够通过增加/移除集群中的节点服务器(或数据存储节点)实现对分布式数据存储***的扩/缩容。
在现有的分布式数据存储***中,通常可以采用一致性哈希算法对集群进行分片,而后根据键值对数据(key-value)等进行存储。但是此种存储***在存储数据量发生变化而需要增加/移除节点服务器时,由于一致性哈希算法的限制,使得相邻存储节点的键值(key)映射发生的变化,容易导致数据的丢失,集群扩展性差。
发明内容
有鉴于此,本发明提供一种数据存储方法和客户端代理,以解决分布式数据存储***数据容易丢失和扩展性差的问题。
本发明提供一种数据存储方法,在客户端与存储设备之间设置至少一个客户端代理,任一客户端代理连接的存储设备包括:N个文件节点服务器和M个元数据节点服务器,M、N≥2;
客户端代理接收到客户端的写请求时,复制写请求对应的第一目标文件至少一份,将第一目标文件及其复制文件写入不同的文件节点服务器,复制第一目标文件对应的第一元数据文件至少一份,更新第一元数据文件及其复制文件中的文件存储地址信息,将第一元数据文件及其复制文件写入不同的元数据节点服务器。
一种客户端代理,在客户端与存储设备之间设置至少一个客户端代理,任一客户端代理连接的存储设备包括:N个文件节点服务器和M个元数据节点服务器,M、N≥2;
客户端代理接收到客户端的写请求时,复制写请求对应的第一目标文件至少一份,将第一目标文件及其复制文件写入不同的文件节点服务器,复制第一目标文件对应的第一元数据文件至少一份,更新第一元数据文件及其复制文件中的文件存储地址信息,将第一元数据文件及其复制文件写入不同的元数据节点服务器。
本发明的数据存储方法,通过设置客户端代理,将客户端的文件及其元数据文件(或复制)复制多份,然后分散保存到不同文件节点服务器和元数据节点服务器,即使一个节点出现故障,也不会丢失文件,使得整个***具有高可用和容灾备份能力。
另一方面,本申请未采用哈希算法,而是将文件的存储地址保存到元数据文件中,当存储数据量发生变化而需要增加/移除节点服务器时,不受哈希算法的限制,文件的不会丢失,且该***结构简单、易于扩展。
附图说明
图1为本发明存储***第一架构图;
图2为本发明存储***第二架构图;
图3为本发明存储***第三架构图;
图4为本发明数据存储方法的流程图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明设计了一种新的存储***,该存储***在客户端与存储设备之间设置至少一个客户端代理,任一客户端代理连接的存储设备包括:N个文件节点服务器和M个元数据节点服务器,M、N≥2。
如图1所示,在客户端与存储设备之间设置了一个客户端代理,该客户端代理前端与所有的客户端连接,客户端后端与所有的文件节点服务器和元数据节点服务器连接。
或者如图2所示,设置2个客户端代理:客户端代理1和客户端代理2,客户端代理1与客户端代理2前端连接的客户端不同,但是客户端代理1与客户端代理2后端与所有的文件节点服务器和元数据节点服务器连接。在图2中还可以设置更多的客户端代理,每个客户端代理连接的客户端不同,但是每个客户端均与所有的存储设备连接。
或者如图3所示,设置2个客户端代理:客户端代理1和客户端代理2,客户端代理1与客户端代理2前端连接的客户端不同,客户端代理1与客户端代理2后端连接的文件节点服务器和元数据节点服务器也不同。在图3中还可以设置更多的客户端代理,每个客户端代理连接的客户端、文件节点服务器和元数据节点服务器均不同。图3中的N1和N2代理不同的N,M1和M2代理不同的M。
基于上述的存储***,本发明的数据存储方法如图4所示,包括:
S11:客户端代理接收到客户端的写请求时,复制写请求对应的第一目标文件至少一份,将第一目标文件及其复制文件写入不同的文件节点服务器,
S12:复制第一目标文件对应的第一元数据文件至少一份,更新第一元数据文件及其复制文件中的文件存储地址信息,将第一元数据文件及其复制文件写入不同的元数据节点服务器。
S11和S12中写入的文件节点服务器和元数据服务器为该客户端代理连接的存储设备,接收的写请求的客户端也与客户端代理相连。
为了避免无效复制和存储,在图4的方法中第一目标文件及其复制文件总数≤N,第一元数据文件及其复制文件总数≤M。
当某个节点故障后,为确保存储***仍具有高可用,可使得M、N≥3。
S12中第一元数据文件及其复制文件中的文件存储地址信息可以是一个文件的文件存储地址信息,也可以是至少两个文件的存储地址信息,或者所有文件的存储地址信息。
在图4的方法中,客户端代理先为第一目标文件及其复制文件选择“文件节点服务器”,并将一个文件写入一个节点服务器,如果某一个节点服务器写入失败,可更换另一个节点服务器写入,直到第一目标文件及其复制文件均成功写入不同的文件节点服务器。
待第一目标文件及其复制文件均成功写入不同的文件节点服务器后,根据每个文件的存储地址更新第一元数据文件(第一目标文件的元数据文件)及其复制文件中的文件存储地址信息,更新后将第一元数据文件及其复制文件写入不同的元数据节点服务器。
例如某个客户端代理连接的文件节点服务器包括:文件节点服务器1、文件节点服务器2、文件节点服务器3、文件节点服务器4和文件节点服务器5,连接的元数据节点服务器包括:元数据节点服务器1、元数据节点服务器2和元数据节点服务器3。
则当该客户端代理接收到第一个写请求时,将第一份目标文件复制一份(也可以复制更多),记原文件和复制文件为A1和A2,将A1写入文件节点服务器1、A2写入文件节点服务器2,记其元数据文件和复制文件为a1和a2,将a1写入元数据节点服务器1、将a2写入元数据节点服务器2。
当该客户端代理接收到第二个写请求时,将第二份目标文件复制一份(也可以复制更多),记原文件和复制文件为B1和B2,将B1写入文件节点服务器3、B2写入文件节点服务器4,记其元数据文件和复制文件为b1和b2,将b1写入元数据节点服务器3、将b2写入元数据节点服务器1。
当该客户端代理接收到第三个写请求时,将第三份目标文件复制一份(也可以复制更多),记原文件和复制文件为C1和C2,将C1写入文件节点服务器5、C2写入文件节点服务器1,记其元数据文件和复制文件为c1和c2,将c1写入元数据节点服务器2、将c2写入元数据节点服务器3。
以上采用的是轮流写入各文件节点服务器和各元数据节点服务器的方法,也可以从客户端代理连接的节点服务器中,任选x(x=原文件和复制文件总数)个数的节点服务器写入。
本发明的数据存储方法,通过设置客户端代理,将客户端的文件及其元数据文件(或复制)复制多份,然后分散保存到不同文件节点服务器和元数据节点服务器,即使一个节点出现故障,也不会丢失文件,使得整个***具有高可用和容灾备份能力。
另一方面,本申请未采用哈希算法,而是将文件的存储地址保存到元数据文件中,当存储数据量发生变化而需要增加/移除节点服务器时,不受哈希算法的限制,文件的不会丢失,且该***结构简单、易于扩展。
当图4中的N个文件节点服务器位于不同的数据中心;图4中“将第一目标文件及其复制文件写入不同的文件节点服务器”可以扩展为:将第一目标文件及其复制文件写入不同数据中心的文件节点服务器,一个文件写入一个数据中心的一个文件节点服务器。
将第一目标文件及其复制文件写入不同数据中心可进一步确保整个***具有高可用和容灾备份能力。
同时为了使存储分布更加均衡,将一个文件写入一个数据中心的一个文件节点服务器时,可以将该文件写入一个数据中心中剩余存储空间最大的文件节点服务器。
当图4中的M个元数据节点服务器位于不同的数据中心;图4中“将第一元数据文件及其复制文件写入不同的元数据节点服务器”可以扩展为:将第一元数据文件及其复制文件写入不同数据中心的元数据节点服务器,一个元数据文件写入一个数据中心的一个元数据节点服务器。
将第一元数据文件及其复制文件写入不同数据中心可进一步确保整个***具有高可用和容灾备份能力。
同时为了使存储分布更加均衡,将一个元数据文件写入一个数据中心的一个元数据节点服务器时,可以将该元数据文件写入一个数据中心中剩余存储空间最大的元数据节点服务器。
此外,图4的方法还包括:当客户端代理接收到客户端的读请求时,遍历该客户端连接的元数据节点服务器获取读请求对应的第二元数据文件,根据第二元数据文件中的文件存储地址信息读取第二目标文件,将第二目标文件反馈给客户端。
多份元数据文件分布在不同的元数据节点服务器,只要搜索到任一元数据文件即可停止遍历,除非该元数据文件中存储地址对应的所有文件节点服务器发生故障。
为了提高遍历的效率,节省时间,遍历元数据节点服务器还可以分至少2次遍历,且后一次遍历的元数据节点服务器个数大于前一次遍历的元数据节点服务器个数。
例如第一次遍历1个元数据节点服务器,第二次遍历2个元数据节点服务器,第三次遍历4个元数据节点服务器,第4次遍历8个元数据节点服务器…第y次遍历2y个元数据节点服务器。
如果客户端代理连接的元数据节点服务器只有2个,则任选一个元数据节点服务器读取即可。
本发明还提供一种客户端代理,如图1-3所示,在客户端与存储设备之间设置至少一个客户端代理,任一客户端代理连接的存储设备包括:N个文件节点服务器和M个元数据节点服务器,M、N≥2;
客户端代理接收到客户端的写请求时,复制写请求对应的第一目标文件至少一份,将第一目标文件及其复制文件写入不同的文件节点服务器,复制第一目标文件对应的第一元数据文件至少一份,更新第一元数据文件及其复制文件中的文件存储地址信息,将第一元数据文件及其复制文件写入不同的元数据节点服务器。
当N个文件节点服务器位于不同的数据中心时;将第一目标文件及其复制文件写入不同的文件节点服务器可扩展为:将第一目标文件及其复制文件写入不同数据中心的文件节点服务器,一个文件写入一个数据中心的一个文件节点服务器。
当M个元数据节点服务器位于不同的数据中心时;将第一元数据文件及其复制文件写入不同的元数据节点服务器可扩展为:将第一元数据文件及其复制文件写入不同数据中心的元数据节点服务器,一个元数据文件写入一个数据中心的一个元数据节点服务器。
上述一个文件写入一个数据中心的一个文件节点服务器还包括:一个文件写入一个数据中心中剩余存储空间最大的文件节点服务器。
上述一个元数据文件写入一个数据中心的一个元数据节点服务器还包括:一个元数据文件写入一个数据中心中剩余存储空间最大的元数据节点服务器。
当客户端代理接收到客户端的读请求时,遍历元数据节点服务器获取读请求对应的第二元数据文件,根据第二元数据文件中的文件存储地址信息读取第二目标文件,将第二目标文件反馈给客户端。
其中,遍历元数据节点服务器包括:分至少2次遍历元数据节点服务器,且后一次遍历的元数据节点服务器个数大于前一次遍历的元数据节点服务器个数。
以上所述仅为本发明的较佳实施例而已,并不用以限定本发明的包含范围,凡在本发明技术方案的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种数据存储方法,其特征在于,在客户端与存储设备之间设置至少一个客户端代理,任一客户端代理连接的所述存储设备包括:N个文件节点服务器和M个元数据节点服务器,M、N≥2;
所述客户端代理接收到所述客户端的写请求时,复制所述写请求对应的第一目标文件至少一份,将所述第一目标文件及其复制文件写入不同的文件节点服务器,复制所述第一目标文件对应的第一元数据文件至少一份,更新所述第一元数据文件及其复制文件中的文件存储地址信息,将所述第一元数据文件及其复制文件写入不同的元数据节点服务器。
2.根据权利要求1所述的方法,其特征在于,所述客户端代理接收到所述客户端的读请求时,遍历所述元数据节点服务器获取所述读请求对应的第二元数据文件,根据所述第二元数据文件中的文件存储地址信息读取第二目标文件,将所述第二目标文件反馈给所述客户端。
3.根据权利要求1所述的方法,其特征在于,所述N个文件节点服务器位于不同的数据中心;
所述将所述第一目标文件及其复制文件写入不同的文件节点服务器包括:将所述第一目标文件及其复制文件写入不同数据中心的文件节点服务器,一个文件写入一个数据中心的一个文件节点服务器。
4.根据权利要求1所述的方法,其特征在于,所述M个元数据节点服务器位于不同的数据中心;
将所述第一元数据文件及其复制文件写入不同的元数据节点服务器包括:将所述第一元数据文件及其复制文件写入不同数据中心的元数据节点服务器,一个元数据文件写入一个数据中心的一个元数据节点服务器。
5.根据权利要求3所述的方法,其特征在于,所述一个文件写入一个数据中心的一个文件节点服务器包括:一个文件写入一个数据中心中剩余存储空间最大的文件节点服务器。
6.根据权利要求4所述的方法,其特征在于,所述一个元数据文件写入一个数据中心的一个元数据节点服务器包括:一个元数据文件写入一个数据中心中剩余存储空间最大的元数据节点服务器。
7.根据权利要求2所述的方法,其特征在于,所述遍历所述元数据节点服务器包括:分至少2次遍历所述元数据节点服务器,且后一次遍历的元数据节点服务器个数大于前一次遍历的元数据节点服务器个数。
8.一种客户端代理,其特征在于,在客户端与存储设备之间设置至少一个客户端代理,任一客户端代理连接的所述存储设备包括:N个文件节点服务器和M个元数据节点服务器,M、N≥2;
所述客户端代理接收到所述客户端的写请求时,复制所述写请求对应的第一目标文件至少一份,将所述第一目标文件及其复制文件写入不同的文件节点服务器,复制所述第一目标文件对应的第一元数据文件至少一份,更新所述第一元数据文件及其复制文件中的文件存储地址信息,将所述第一元数据文件及其复制文件写入不同的元数据节点服务器。
9.根据权利要求8所述的客户端代理,其特征在于,所述客户端代理接收到所述客户端的读请求时,遍历所述元数据节点服务器获取所述读请求对应的第二元数据文件,根据所述第二元数据文件中的文件存储地址信息读取第二目标文件,将所述第二目标文件反馈给所述客户端。
10.根据权利要求8所述的客户端代理,其特征在于,所述N个文件节点服务器位于不同的数据中心;
所述将所述第一目标文件及其复制文件写入不同的文件节点服务器包括:将所述第一目标文件及其复制文件写入不同数据中心的文件节点服务器,一个文件写入一个数据中心的一个文件节点服务器。
11.根据权利要求8所述的客户端代理,其特征在于,所述M个元数据节点服务器位于不同的数据中心;
将所述第一元数据文件及其复制文件写入不同的元数据节点服务器包括:将所述第一元数据文件及其复制文件写入不同数据中心的元数据节点服务器,一个元数据文件写入一个数据中心的一个元数据节点服务器。
12.根据权利要求10所述的客户端代理,其特征在于,所述一个文件写入一个数据中心的一个文件节点服务器包括:一个文件写入一个数据中心中剩余存储空间最大的文件节点服务器。
13.根据权利要求11所述的客户端代理,其特征在于,所述一个元数据文件写入一个数据中心的一个元数据节点服务器包括:一个元数据文件写入一个数据中心中剩余存储空间最大的元数据节点服务器。
14.根据权利要求9所述的客户端代理,其特征在于,所述遍历所述元数据节点服务器包括:分至少2次遍历所述元数据节点服务器,且后一次遍历的元数据节点服务器个数大于前一次遍历的元数据节点服务器个数。
CN201811618513.3A 2018-12-28 2018-12-28 数据存储方法和客户端代理 Pending CN109815207A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811618513.3A CN109815207A (zh) 2018-12-28 2018-12-28 数据存储方法和客户端代理

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811618513.3A CN109815207A (zh) 2018-12-28 2018-12-28 数据存储方法和客户端代理

Publications (1)

Publication Number Publication Date
CN109815207A true CN109815207A (zh) 2019-05-28

Family

ID=66602583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811618513.3A Pending CN109815207A (zh) 2018-12-28 2018-12-28 数据存储方法和客户端代理

Country Status (1)

Country Link
CN (1) CN109815207A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110633378A (zh) * 2019-08-19 2019-12-31 杭州欧若数网科技有限公司 一种支持超大规模关系网络的图数据库构建方法
CN111209263A (zh) * 2020-01-14 2020-05-29 中国建设银行股份有限公司 数据存储方法、装置、设备及存储介质
CN114138566A (zh) * 2022-02-07 2022-03-04 苏州浪潮智能科技有限公司 虚拟机的数据存储方法、装置、虚拟机及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101989999A (zh) * 2010-11-12 2011-03-23 华中科技大学 一种分布式环境中的分级存储***
CN102402530A (zh) * 2010-09-13 2012-04-04 方正国际软件有限公司 一种元数据分布式查询方法、装置及***
CN102420854A (zh) * 2011-11-14 2012-04-18 西安电子科技大学 面向云存储的分布式文件***
CN106462545A (zh) * 2014-03-31 2017-02-22 亚马逊科技公司 可缩放文件存储服务
CN107667351A (zh) * 2015-05-27 2018-02-06 谷歌公司 用于移动设备上的自动基于云的全数据备份和恢复的***和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402530A (zh) * 2010-09-13 2012-04-04 方正国际软件有限公司 一种元数据分布式查询方法、装置及***
CN101989999A (zh) * 2010-11-12 2011-03-23 华中科技大学 一种分布式环境中的分级存储***
CN102420854A (zh) * 2011-11-14 2012-04-18 西安电子科技大学 面向云存储的分布式文件***
CN106462545A (zh) * 2014-03-31 2017-02-22 亚马逊科技公司 可缩放文件存储服务
CN107667351A (zh) * 2015-05-27 2018-02-06 谷歌公司 用于移动设备上的自动基于云的全数据备份和恢复的***和方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110633378A (zh) * 2019-08-19 2019-12-31 杭州欧若数网科技有限公司 一种支持超大规模关系网络的图数据库构建方法
CN111209263A (zh) * 2020-01-14 2020-05-29 中国建设银行股份有限公司 数据存储方法、装置、设备及存储介质
CN114138566A (zh) * 2022-02-07 2022-03-04 苏州浪潮智能科技有限公司 虚拟机的数据存储方法、装置、虚拟机及存储介质

Similar Documents

Publication Publication Date Title
US7239605B2 (en) Item and method for performing a cluster topology self-healing process in a distributed data system cluster
CN106547859B (zh) 一种多租户数据存储***下的数据文件的存储方法及装置
US20110153570A1 (en) Data replication and recovery method in asymmetric clustered distributed file system
CN108509462B (zh) 一种同步活动事务表的方法及装置
CN102891849B (zh) 业务数据同步方法、恢复方法及装置和网络设备
US20160162520A1 (en) Data Storage Method and Apparatus for Distributed Database
US20100023564A1 (en) Synchronous replication for fault tolerance
CN112764968B (zh) 数据处理方法、装置、设备及存储介质
US20100125555A1 (en) Efficient undo-processing during data redistribution
CN109815207A (zh) 数据存储方法和客户端代理
CN102843403A (zh) 基于分布式文件***的文件处理方法、***及客户端
CN107798130A (zh) 一种分布式存储的快照方法
JP2012221419A (ja) 情報記憶システム及びそのデータ複製方法
CN105574187A (zh) 一种异构数据库复制事务一致性保障方法及***
CN104346373A (zh) 分区日志队列同步管理方法及设备
CN112162846B (zh) 事务处理方法、设备及计算机可读存储介质
CN104765661A (zh) 一种云存储服务中元数据服务节点的多节点热备方法
CN107038092B (zh) 一种数据复制方法及装置
CN109542861A (zh) 一种文件管理方法、装置和***
CN101986276A (zh) 文件存储方法、文件恢复方法、***及服务器
CN111930716A (zh) 一种数据库扩容方法、装置及***
CN105404565B (zh) 一种双活数据保护方法和装置
CN115146002A (zh) 跨数据中心的数据同步方法及装置
US11188258B2 (en) Distributed storage system
CN104951475A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190528

RJ01 Rejection of invention patent application after publication