CN112579551A - 数据存储和读取方法、装置、客户端、管理服务器及系统 - Google Patents
数据存储和读取方法、装置、客户端、管理服务器及系统 Download PDFInfo
- Publication number
- CN112579551A CN112579551A CN201910943958.7A CN201910943958A CN112579551A CN 112579551 A CN112579551 A CN 112579551A CN 201910943958 A CN201910943958 A CN 201910943958A CN 112579551 A CN112579551 A CN 112579551A
- Authority
- CN
- China
- Prior art keywords
- storage
- data
- target disk
- storage system
- disk
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 238000007726 management method Methods 0.000 title claims abstract description 69
- 238000013500 data storage Methods 0.000 title claims abstract description 62
- 238000004891 communication Methods 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 11
- 230000000875 corresponding effect Effects 0.000 description 115
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据存储和读取方法、装置、客户端、管理服务器及系统,客户端可以实现获得待存储数据;根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;将待存储数据存储至目标磁盘。可见,本发明实施例在进行数据存储时,目标磁盘是客户端根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则确定的;而不是像现有技术那样由元数据节点在每次收到请求后确定目标磁盘,因此,可以避免因元数据节点出现故障,不能进行数据存储的问题。
Description
技术领域
本发明涉及分布式数据存储技术领域,特别是涉及一种数据存储和读取方法、装置、客户端、管理服务器及系统。
背景技术
分布式存储中,在存储待存储文件时,首先将待存储文件划分成多个待存储数据,其中,每一待存储数据都有对应的标识信息;再确定各个待存储数据对应的存储位置;并按照确定的存储位置将各个待存储数据存储至对应的存储位置,完成文件的存储。
参见图1,基于现有的数据存储系统的拓扑结构,现有的数据存储方法,通常是:客户端101向元数据节点102发送写请求;当元数据节点102接收到该写请求时,从已记录的存储节点103中随机选择一个存储节点103作为目标存储节点,将目标存储节点的地址返回至客户端101,并记录待存储数据和目标存储节点之间的映射关系;客户端101根据接收到的目标存储节点的地址,将待存储数据发送给目标存储节点;目标存储节点接收到待存储数据后,从自身包含的磁盘中选择一个磁盘作为目标磁盘,并将该待存储数据存储至目标磁盘中。
相应的,基于现有的数据存储系统的网络结构,现有的数据读取方法,通常是:客户端101向元数据节点102发送读请求;当元数据节点102接收到该读请求时,根据已记录的已存储数据和目标存储节点之间的映射关系,确定待读取数据的目标存储节点;并将目标存储节点的地址返回至客户端101;客户端101根据接收到的目标存储节点的地址,向目标存储节点发出获取待读取数据的请求;并接收目标存储节点返回的待读取数据。
发明人在实现本发明的过程中发现,现有技术至少存在如下问题:在存储和读取数据时,目标存储节点的确定依赖于元数据节点,如果元数据节点出现故障,将不能进行数据的存储和读取。
发明内容
本发明实施例的目的在于提供一种数据存储和读取方法、装置、客户端、管理服务器及系统,以解决元数据节点出现故障,不能进行数据存储的问题。
具体技术方案如下:
为了达到上述目的,第一方面,本发明实施例提供了一种数据存储方法,应用于存储系统中的客户端,所述存储系统还包括:管理服务器;该方法包括:
获得待存储数据;
根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;
将所述待存储数据存储至所述目标磁盘。
可选的,所述存储系统还包括管理服务器,所述存储系统的拓扑结构信息和目标磁盘选择规则为预先从所述管理服务器中获取并保存的。
可选的,在所述根据自身保存的存储系统的拓扑结信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘的步骤之前,还包括:
判断自身是否保存有所述存储系统的拓扑结构信息和目标磁盘选择规则;
如果自身保存有所述存储系统的拓扑结构映射表和目标磁盘选择规则,则执行所述根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘的步骤;
如果自身未保存存储系统的拓扑结构信息和目标磁盘选择规则,则向管理服务器发送获取所述存储系统的拓扑结构信息和目标磁盘选择规则的请求;接收并保存所述管理服务器返回的存储系统的拓扑结构信息和目标磁盘选择规则。
可选的,所述的存储系统的拓扑结构信息为:按存储系统的拓扑结构构建的包含多层的树形结构;其中,每一层对应一个存储级别;每个存储级别包含一个或多个该存储级别的存储实体;
所述目标磁盘选择规则,包括:选择故障域的规则和从故障域中选择磁盘的规则;
所述根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘的步骤,包括:
根据所述选择故障域的规则和预设存储份数,从所述拓扑结构信息中确定故障域,其中,所述故障域的数量与所述预设存储份数的数量相同;所述选择故障域的规则,包括:故障域对应的存储级别,以及从该存储级别包含的存储实体中,选择预设存储份数个目标存储实体作为故障域的预设故障域选择算法;
根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘。
可选的,所述的多层的树形结构中,除根节点外,每层的节点都包含对应存储级别的一个存储实体的标识,以及该存储实体的选择权重信息;
所述根据所述选择故障域的规则和预设存储份数,从所述拓扑结构信息中确定故障域的步骤,包括:
按照所述选择故障域的规则中包含的故障域对应的存储级别,将该存储级别对应层的各个节点对应的存储实体确定为候选存储实体;
获得待存储数据的标识;
按照预设故障域选择算法,基于所述待存储数据的标识以及各个候选存储实体的选择权重信息,计算出各个候选存储实体的选择值;
获得预设存储份数个选择值最高的候选存储实体,分别作为故障域;
所述根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘的步骤,包括:
若所述故障域对应的存储级别为非磁盘级别,则基于所述多层的树形结构,将每个故障域对应的磁盘作为候选磁盘;
按照所述从故障域中选择磁盘的规则,基于所述待存储数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值;
在每个故障域中获得选择值最高的候选磁盘,分别作为目标磁盘;
若所述故障域对应的存储级别为磁盘级别,则将每个故障域对应的磁盘确定为目标磁盘。
可选的,所述的多层的树形结构中,包含三层节点;其中,根节点与存储系统对应;每个与根节点相连的子节点与一个存储节点对应;每个子节点的叶子节点,与该子节点对应存储节点的一个磁盘对应;所述每个子节点都包含:一个存储节点的标识,以及该存储节点的选择权重信息;每个叶子节点包含:一个磁盘的标识,以及该磁盘对应的选择权重信息;
所述选择故障域的规则中包含的故障域对应的存储级别为存储节点;
所述根据所述选择故障域的规则和预设存储份数,从所述拓扑结构信息中确定故障域的步骤,包括:
将每个存储节点确定为候选存储节点;
按照预设故障域选择算法,基于所述待存储数据的标识以及各个候选存储节点的选择权重信息,计算出各个候选存储节点的选择值;
获得预设存储份数个选择值最高的候选存储节点,分别作为故障域存储节点;
所述根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘的步骤,包括:
基于所述多层的树形结构,将每个故障域存储节点对应的磁盘作为候选磁盘;
按照所述从故障域中选择磁盘的规则,基于所述待存储数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值;
在每个故障域存储节点中获得选择值最高的候选磁盘,分别作为目标磁盘。
第二方面,本发明实施例提供了一种数据存储方法,应用于存储系统中的管理服务器,所述存储系统还包括:客户端;该方法包括:
接收客户端发送的获取存储系统的拓扑结构信息和目标磁盘选择规则的请求;所述请求中包含所述客户端的标识信息;
根据所述请求中的客户端标识信息,将所述存储系统的拓扑结构信息和目标磁盘选择规则发送至所述客户端;以使所述客户端保存所述存储系统的拓扑结构信息和目标磁盘选择规则,并在获得待存储数据后,根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;并将所述待存储数据存储至所述目标磁盘。
第三方面,本发明实施例提供了一种数据读取方法,应用于存储系统中的客户端,该方法包括:
获得待读取数据的标识信息;
根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘;
根据待读取数据的标识信息,从所述目标磁盘中获得所述待读取数据。
可选的,所述存储系统还包括管理服务器,所述存储系统的拓扑结构信息和目标磁盘选择规则为预先从所述管理服务器中获取并保存的。
可选的,在所述根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘的步骤之前,还包括:
判断自身是否保存有所述存储系统的拓扑结构信息和目标磁盘选择规则;
如果自身保存有所述存储系统的拓扑结构信息和目标磁盘选择规则,则执行所述根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘的步骤;
如果自身未保存存储系统的拓扑结构信息和目标磁盘选择规则,则向管理服务器发送获取所述存储系统的拓扑结构信息和目标磁盘选择规则的请求;接收并保存所述管理服务器返回的存储系统的拓扑结构信息和目标磁盘选择规则。
可选的,所述的存储系统的拓扑结构信息为:按存储系统的拓扑结构构建的包含多层的树形结构;其中,每一层对应一个存储级别;每个存储级别包含一个或多个该存储级别的存储实体;
所述目标磁盘选择规则,包括:选择故障域的规则和从故障域中选择磁盘的规则;
所述根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘的步骤,包括:
根据所述选择故障域的规则和预设存储份数,从所述拓扑结构信息中确定故障域,其中,所述故障域的数量与所述预设存储份数的数量相同;所述选择故障域的规则,包括:故障域对应的存储级别,以及从该存储级别包含的存储实体中,选择预设存储份数个目标存储实体作为故障域的预设故障域选择算法;
根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘。
可选的,所述的多层的树形结构中,除根节点外,每层的节点都包含对应存储级别的一个存储实体的标识,以及该存储实体的选择权重信息;
所述根据所述选择故障域的规则和预设存储份数,从所述拓扑结构信息中确定故障域的步骤,包括:
按照所述选择故障域的规则中包含的故障域对应的存储级别,将该存储级别对应层的各个节点对应的存储实体确定为候选存储实体;
按照预设故障域选择算法,基于所述待读取数据的标识以及各个候选存储实体的选择权重信息,计算出各个候选存储实体的选择值;
获得预设存储份数个选择值最高的候选存储实体,分别作为故障域;
所述根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘的步骤,包括:
若所述故障域对应的存储级别为非磁盘级别,则基于所述多层的树形结构,将每个故障域对应的磁盘作为候选磁盘;
按照所述从故障域中选择磁盘的规则,基于所述待读取数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值;
在每个故障域中获得选择值最高的候选磁盘,分别作为目标磁盘;
若所述故障域对应的存储级别为磁盘级别,则将每个故障域对应的磁盘确定为目标磁盘。
可选的,所述的多层的树形结构中,包含三层节点;其中,根节点与存储系统对应;每个与根节点相连的子节点与一个存储节点对应;每个子节点的叶子节点,与该子节点对应存储节点的一个磁盘对应;所述每个子节点都包含:一个存储节点的标识,以及该存储节点的选择权重信息;每个叶子节点包含:一个磁盘的标识,以及该磁盘对应的选择权重信息;
所述选择故障域的规则中包含的故障域对应的存储级别为存储节点;
所述根据所述选择故障域的规则和预设存储份数,从所述拓扑结构信息中确定故障域的步骤,包括:
将每个存储节点确定为候选存储节点;
按照预设故障域选择算法,基于所述待读取数据的标识以及各个候选存储节点的选择权重信息,计算出各个候选存储节点的选择值;
获得预设存储份数个选择值最高的候选存储节点,分别作为故障域存储节点;
所述根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘的步骤,包括:
基于所述多层的树形结构,将每个故障域存储节点对应的磁盘作为候选磁盘;
按照所述从故障域中选择磁盘的规则,基于所述待读取数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值;
在每个故障域存储节点中获得选择值最高的候选磁盘,分别作为目标磁盘。
第四方面,本发明实施例提供了一种数据读取方法,应用于存储系统中的管理服务器,所述存储系统还包括:客户端;该方法包括:
接收客户端发送的获取存储系统的拓扑结构映射表和目标磁盘选择规则的请求;所述请求中包含所述客户端的标识信息;
根据所述请求中的客户端标识信息,将所述存储系统的拓扑结构信息和目标磁盘选择规则发送至所述客户端;以使所述客户端保存所述存储系统的拓扑结构信息和目标磁盘选择规则,并在获得待读取数据后,根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘;并根据待读取数据的标识信息,从所述目标磁盘读取所述待读取数据。
第五方面,本发明实施例提供了一种数据存储装置,应用于存储系统中的客户端,该装置包括:
获得模块,用于获得待存储数据;
确定模块,用于根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;
存储模块,用于将所述待存储数据存储至所述目标磁盘。
第六方面,本发明实施例提供了一种数据存储装置,应用于存储系统中的管理服务器,所述存储系统还包括:客户端;该装置包括:
接收模块,用于接收客户端发送的获取存储系统的拓扑结构信息和目标磁盘选择规则的请求;所述请求中包含所述客户端的标识信息;
发送模块,用于根据所述请求中的客户端标识信息,将所述存储系统的拓扑结构信息和目标磁盘选择规则发送至所述客户端;以使所述客户端保存所述存储系统的拓扑结构信息和目标磁盘选择规则,并在获得待存储数据后,根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;并将所述待存储数据存储至所述目标磁盘。
第七方面,本发明实施例提供了一种数据读取装置,应用于存储系统中的客户端,该装置包括:
获得模块,用于获得待读取数据的标识信息;
确定模块,用于根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘;
读取模块,用于根据待读取数据的标识信息,从所述目标磁盘中获得所述待读取数据。
第八方面,本发明实施例提供了一种数据读取装置,应用于存储系统中的管理服务器,所述存储系统还包括:客户端;该装置包括:
接收模块,用于接收客户端发送的获取存储系统的拓扑结构映射表和目标磁盘选择规则的请求;所述请求中包含所述客户端的标识信息;
发送模块,用于根据所述请求中的客户端标识信息,将所述存储系统的拓扑结构信息和目标磁盘选择规则发送至所述客户端;以使所述客户端保存所述存储系统的拓扑结构信息和目标磁盘选择规则,并在获得待读取数据的标识信息后,根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘;并根据待读取数据的标识信息,从所述目标磁盘读取所述待读取数据。
第九方面,本发明实施例提供了一种客户端,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信,
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述实施例所述的所有应用于客户端的方法步骤。
第十方面,本发明实施例提供了一种管理服务器,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信,
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,上述实施例所述的所有应用于管理服务器的方法步骤。
第十一方面,本发明实施例提供了一种存储系统,包括:客户端、管理服务器和一个或多个存储设备;所述每个存储设备包含多个磁盘;
所述客户端用于:获得待存储数据;根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;所述存储系统的拓扑结构信息和目标磁盘选择规则为预先从所述管理服务器中获取并保存的;将所述待存储数据存储至所述目标磁盘;和/或,获得待读取数据的标识信息;根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘;所述存储系统的拓扑结构信息和目标磁盘选择规则为预先从所述管理服务器中获取并保存的;根据待读取数据的标识信息,从所述目标磁盘中获得所述待读取数据;
所述管理服务器用于:接收客户端发送的获取存储系统的拓扑结构信息和目标磁盘选择规则的请求;根据所述请求中的客户端标识信息,将所述存储系统的拓扑结构信息和目标磁盘选择规则发送至所述客户端;
所述每个存储设备的磁盘用于:存储数据。
本发明实施例提供的数据存储和读取方法、装置、客户端、管理服务器及系统,客户端可以获得待存储数据;根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;将待存储数据存储至目标磁盘。可见,本发明实施例在进行数据存储时,目标磁盘是客户端根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则确定的;而不是像现有技术那样由元数据节点在每次收到请求后确定目标磁盘,因此,可以避免因元数据节点出现故障,不能进行数据存储的问题。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有的数据存储系统的拓扑结构的示意图;
图2为本发明实施例提供的数据存储系统的拓扑结构的示意图;
图3a为本发明实施例提供的数据存储方法应用于存储系统中的客户端的一种流程示意图;
图3b为本发明实施例提供的数据存储方法中根据选择故障域的规则和预设存储份数,从拓扑结构信息中确定故障域的流程示意图;
图3c为本发明实施例提供的数据存储方法中根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘的流程示意图;
图4为发明实施例提供的按存储系统的拓扑结构构建的包含三层节点的树形结构;
图5为本发明实施例提供的数据存储方法应用于存储系统中的客户端的另一种流程示意图;
图6为发明实施例提供的按存储系统的拓扑结构构建的包含六层节点的树形结构;
图7为本发明实施例提供的数据存储方法应用于存储系统中的客户端的另一种流程示意图;
图8为本发明实施例提供的数据存储方法应用于存储系统中的管理服务器的一种流程示意图;
图9a为本发明实施例提供的数据读取方法应用于存储系统中的客户端的一种流程示意图;
图9b为本发明实施例提供的数据读取方法中根据选择故障域的规则和预设存储份数,从拓扑结构信息中确定故障域的流程示意图;
图9c为本发明实施例提供的数据读取方法中根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘的流程示意图;
图10为本发明实施例提供的数据读取方法应用于存储系统中的客户端的另一种流程示意图;
图11为本发明实施例提供的数据读取方法应用于存储系统中的管理服务器的一种流程示意图;
图12为本发明实施例提供的应用于存储系统中的客户端的数据存储装置的一种结构示意图;
图13为本发明实施例提供的应用于存储系统中的管理服务器的数据存储装置的一种结构示意图
图14为本发明实施例提供的应用于存储系统中的客户端的数据读取装置的一种结构示意图;
图15为本发明实施例提供的应用于存储系统中的管理服务器的数据读取装置的一种结构示意图;
图16为本发明实施例提供的一种客户端的结构示意图;
图17为本发明实施例提供的一种管理服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中存在的元数据节点出现故障,不能进行数据存储的问题,参见图2,本发明中实施例提供了一种存储系统,该存储系统可以包括:客户端201、管理服务器202和一个或多个存储设备203;每个存储设备203包含多个磁盘;
客户端201用于:获得待存储数据;根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;存储系统的拓扑结构信息和目标磁盘选择规则为预先从管理服务器中获取并保存的;将待存储数据存储至目标磁盘;和/或,获得待读取数据的标识信息;根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘;存储系统的拓扑结构信息和目标磁盘选择规则为预先从管理服务器中获取并保存的;根据待读取数据的标识信息,从目标磁盘中获得待读取数据;
管理服务器202用于:接收客户端发送的获取存储系统的拓扑结构信息和目标磁盘选择规则的请求;根据请求中的客户端标识信息,将存储系统的拓扑结构信息和目标磁盘选择规则发送至客户端;
每个存储设备203的磁盘用于:存储数据。
由图2所示的实施例可见,本发明实施例提供的系统在进行数据存储和读取时,目标磁盘是客户端根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则确定的;而不是像现有技术那样由元数据节点在每次接收到请求后确定目标磁盘,因此,可以避免因元数据节点出现故障,不能进行数据存储和读取的问题。
基于图2所示的存储系统,本发明实施例还提供了一种数据存储方法,应用于图2所示的存储系统中的客户端,参见图3a,该方法可以包括:
S301:获得待存储数据;
其中,每一待存储数据都包含对应的标识信息;
目前,数据存储大都是以数据块为单位进行存储,本实施例中,可以是获得待存储的数据块及其标识信息。
S302:根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;
在一种具体的实施例中,存储系统的拓扑结构信息和目标磁盘选择规则可以为预先从管理服务器中获取并保存的;
在一种具体的实施例中,在根据自身保存的存储系统的拓扑结信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘的步骤之前,还可以包括:
判断自身是否保存有存储系统的拓扑结构信息和目标磁盘选择规则;
如果自身保存有存储系统的拓扑结构映射表和目标磁盘选择规则,则执行根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘的步骤;
如果自身未保存存储系统的拓扑结构信息和目标磁盘选择规则,则向管理服务器发送获取存储系统的拓扑结构信息和目标磁盘选择规则的请求;接收并保存管理服务器返回的存储系统的拓扑结构信息和目标磁盘选择规则。
具体的,存储系统的拓扑结构信息可以为:按存储系统的拓扑结构构建的包含多层的树形结构;其中,每一层对应一个存储级别;每个存储级别包含一个或多个该存储级别的存储实体。
目标磁盘选择规则,可以包括:选择故障域的规则和从故障域中选择磁盘的规则。
根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘的步骤,可以包括:
根据选择故障域的规则和预设存储份数,从拓扑结构信息中确定故障域;故障域的数量与预设存储份数的数量相同;选择故障域的规则,包括:故障域对应的存储级别,以及从该存储级别包含的存储实体中,选择预设存储份数个目标存储实体作为故障域的预设故障域选择算法;
根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘。
在一种具体的实施例中,在多层的树形结构中,除根节点外,每层的节点都可以包含对应存储级别的一个存储实体的标识,以及该存储实体的选择权重信息;其中,上一层节点的选择权重由其包含的下一层节点的选择权重决定。例如,节点A包含的下一层节点为A’1、A’2、A’3则节点A的权重为其包含的下一层节点A’1、A’2、A’3权重之和。
参见图3b,根据选择故障域的规则和预设存储份数,从拓扑结构信息中确定故障域的步骤,可以包括:
S3001:按照选择故障域的规则中包含的故障域对应的存储级别,将该存储级别对应层的各个节点对应的存储实体确定为候选存储实体;
S3002:获得待存储数据的标识;
S3003:按照预设故障域选择算法,基于待存储数据的标识以及各个候选存储实体的选择权重信息,计算出各个候选存储实体的选择值;
S3004:获得预设存储份数个选择值最高的候选存储实体,分别作为故障域。
参见图3c,根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘的步骤,可以包括:
S3101:判断故障域对应的存储级别是否为磁盘级别;若故障域对应的存储级别为非磁盘级别,则执行步骤S3102:若故障域对应的存储级别为磁盘级别,则执行步骤S3105;
S3102:基于多层的树形结构,将每个故障域对应的磁盘作为候选磁盘;
S3103:按照从故障域中选择磁盘的规则,基于待存储数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值;
S3104:在每个故障域中获得选择值最高的候选磁盘,分别作为目标磁盘;
S3105:将每个故障域对应的磁盘确定为目标磁盘。
S303:将待存储数据存储至目标磁盘。
由图3a所示的实施例可见,本发明实施例在进行数据存储时,目标磁盘是客户端根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则确定的;而不是像现有技术那样由元数据节点在每次接收到请求后确定目标磁盘,因此,可以避免因元数据节点出现故障,不能进行数据存储的问题。
以下列举两个具体的例子对本发明实施例提供的数据存储方法,做进一步详细的说明,该数据存储方法应用于图2所示的存储系统中的客户端。
实施例1、该实施例中,存储系统的拓扑结构信息如图4所示为:按存储系统的拓扑结构构建的包含三层节点的树形结构;其中,根节点与存储系统对应;每个与根节点相连的子节点与一个存储节点对应;每个子节点的叶子节点,与该子节点对应存储节点的一个磁盘对应;每个子节点都包含:一个存储节点的标识,以及该存储节点的选择权重信息;每个叶子节点包含:一个磁盘的标识,以及该磁盘对应的选择权重信息。
在本实施例中,预设存储份数为3份,也就是说,在本实施例中有3个故障域。每个故障域中存储一份待存储数据,这样,当一个故障域损坏时,可以从其他未损坏的故障域获得数据。例1:故障域为存储节点也就是服务器host,那么数据会分别存储在3个不同的服务器中的一个磁盘中,例如,分别存储在A、B和C服务器中的一个磁盘中。例2:故障域为磁盘Dev,那么数据会分别存储在同一个存储节点中的3个不同的磁盘中。
参见图5,基于图4所示的拓扑结构信息,数据存储方法包括:
S501:获得待存储数据;
S502:判断自身是否保存有存储系统的拓扑结构信息和目标磁盘选择规则;如果自身保存有存储系统的拓扑结构信息和目标磁盘选择规则,则执行步骤S505;如果自身未保存存储系统的拓扑结构信息和目标磁盘选择规则,则执行步骤S503;
S503:向管理服务器发送获取存储系统的拓扑结构信息和目标磁盘选择规则的请求;
S504:接收并保存管理服务器返回的存储系统的拓扑结构信息和目标磁盘选择规则;
在本实施例中,目标磁盘选择规则,包括:选择故障域的规则和从故障域中选择磁盘的规则;其中,选择故障域的规则中包含的故障域对应的存储级别为存储节点。
S505:根据存储系统的拓扑结构信息和目标磁盘选择规则,将每个存储节点确定为候选存储节点;
具体的是按照选择故障域的规则中包含的故障域对应的存储级别,将每个存储节点确定为候选存储节点;
本实施例中,选择故障域的规则中包含的故障域对应的存储级别是存储节点,因此,本步骤中将图4所示的拓扑结构信息中的每个存储节点确定为候选存储节点。
S506:获得待存储数据的标识;
S507:按照选择故障域的规则中的预设故障域选择算法,基于待存储数据的标识以及各个候选存储节点的选择权重信息,计算出各个候选存储节点的选择值;
在一种具体的实施例中,基于待存储数据的标识以及各个候选存储节点的选择权重信息,计算出各个候选存储节点的选择值的步骤可以是:
利用预设的哈希函数kcsh(ret_bid,weight,random_num),基于待存储数据的标识以及各个候选存储节点的选择权重信息,计算出各个候选存储节点的选择值,其中,参数ret_bid为待存储数据的标识bid,经过哈希函数中的消息摘要算法(Message DigestAlgorithm,MD5)计算后得到的值;weight为各个候选存储节点的选择权重;random_num为一个固定不变的常数,该常数是利用随机函数得到的,当然在其他实施例中也可以是通过人为设定得到random_num。在其他实施例中,在kcsh中也可以不用ret_bid而直接用bid,本实施例中先用哈希算法中的MD5算法对bid进行计算得到ret_bid,再采用ret_bid作为参数的目的是为了降低哈希函数kcsh的冲突概率,保证各存储节点存储的数据量均衡;其中,这里的冲突指的是:在哈希算法中,不同的待存储数据对应到同一个存储位置的现象。
具体的,利用哈希函数kcsh(ret_bid,weight,random_num),计算出各个候选存储节点的选择值的过程可以是:
例如,待存储数据为在待写入文件中偏移量offset为1000字节bytes,长度为100字节bytes的数据块,客户端先利用公式offset/(2*1024*1024)计算该待存储数据块的标识,得到bid。其中,在实际应用中,通常是将待写入文件按照预设的大小单位,划分为多个数据块,一个数据块对应一个标识,在该例子中,大小单位为2兆字节Mbytes,其中,1Mbytes=1024*1024bytes。
利用哈希函数中的MD5算法对bid进行计算得到ret_bid,利用哈希算法中的Robert Jenkins hash算法,计算得到一个x值。本实施例中,Robert Jenkins hash算法中的参数为(ret_bid,id,random_num),其中,参数id为各个候选存储节点的标识。
再利用公式:计算得到各个候选存储节点的选择值。其中,在该公式中用x除以一个655350的目的是得到一个小于1的数,对该数取log()的目的是得到一个负数,这样,就相当于用一个负数除以一个正数,可以使得存储节点上存储的数据量和存储节点的选择权重正相关。其中,选择655350是因为计算机中整型字符范围的最大值为655350。
S508:获得3个选择值最高的候选存储节点,分别作为故障域存储节点;
S509:基于多层的树形结构,将每个故障域存储节点对应的磁盘作为候选磁盘;
S510:按照选择故障域的规则中的从故障域中选择磁盘的规则,基于待存储数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值;
在一种具体的实施例中,基于待存储数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值的方式,可以与基于待存储数据的标识以及各个候选存储节点的选择权重信息,计算出各个候选存储节点的选择值的方式相同。
S511:在每个故障域存储节点中获得选择值最高的候选磁盘,分别作为目标磁盘;
S512:将待存储数据存储至目标磁盘。
在其他实施例中,选择故障域的规则中包含的故障域对应的存储级别还可以为磁盘。那么,是在获得待存储数据和待存储数据的标识后;将每个故障域对应的磁盘确定为目标磁盘;按照预设故障域选择算法,基于待存储数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值;获得预设存储份数个选择值最高的候选磁盘,分别作为故障域,也就是获得预设存储份数个选择值最高的候选磁盘分别作为目标磁盘。
实施例2、在该实施例中,存储系统的拓扑结构信息还可以如图6所示为:按存储系统的拓扑结构构建的包含六层节点的树形结构;其中,第一层节点也就是根节点,根节点与存储系统对应;第二层节点,也就是每个与根节点相连的子节点,其对应的存储级别为数据中心;第三层节点对应的存储级别为机柜;第四层节点对应的存储级别为机架;第五层节点对应的存储级别为存储节点;第六层节点也就是叶子节点对应的存储级别为磁盘;其中,每个子节点都包含:一个节点的标识,以及该节点的选择权重信息;每个叶子节点包含:一个磁盘的标识,以及该磁盘对应的选择权重信息。在实际应用中,数据中心也可以称为机房,其中,一个机房中可以放置多个机柜,一个机柜可以包含多个机架,一个机架可以放置一个或多个存储节点。
本实施例中,预设存储份数为3份。
参见图7,基于图6所示的拓扑结构信息,数据存储方法可以包括:
S701:获得待存储数据;
S702:判断自身是否保存有存储系统的拓扑结构信息和目标磁盘选择规则;如果自身保存有存储系统的拓扑结构信息和目标磁盘选择规则,则执行步骤S705;如果自身未保存存储系统的拓扑结构信息和目标磁盘选择规则,则执行步骤S703;
S703:向管理服务器发送获取存储系统的拓扑结构信息和目标磁盘选择规则的请求;
S704:接收并保存管理服务器返回的存储系统的拓扑结构信息和目标磁盘选择规则;
在本实施例中,目标磁盘选择规则,包括:选择故障域的规则和从故障域中选择磁盘的规则;其中,选择故障域的规则中包含的故障域对应的存储级别为机架。
S705:根据存储系统的拓扑结构信息和目标磁盘选择规则,将每个机架确定为候选机架;
具体的是按照选择故障域的规则中包含的故障域对应的存储级别,将每个机架确定为候选存储节点;
本实施例中,选择故障域的规则中包含的故障域对应的存储级别是机架,因此,本步骤中将图6所示的拓扑结构信息中的每个机架确定为候选存储节点。
S706:获得待存储数据的标识;
S707:按照选择故障域的规则中的预设故障域选择算法,基于待存储数据的标识以及各个候选机架的选择权重信息,计算出各个候选机架的选择值;
具体的,可以是利用预设的哈希函数kcsh(ret_bid,weight,random_num),基于待存储数据的标识以及各个候选机架的选择权重信息,计算出各个候选机架的选择值。
S708:获得3个选择值最高的候选机架,分别作为故障域;
S709:基于多层的树形结构,将每个故障域对应的磁盘作为候选磁盘;
具体的,可以是将图6所示的拓扑结构信息中每个故障域下面包含的所有存储节点的所有磁盘作为候选磁盘。例如:故障域为机架1、机架2和机架3,图6所示的拓扑结构信息中机架1至机架3下面包含的存储节点分别为:存储节点11和12、存储节点21和22和存储节点31和32;存储节点11、12、21、22、31和32分别包含的磁盘为:111-115、121-125、211-215、221-225、311-315和321-325;那么,是将磁盘111-115、121-125、211-215、221-225、311-315和321-325作为候选磁盘。
S710:按照选择故障域的规则中的从故障域中选择磁盘的规则,基于待存储数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值;
具体的,可以是先利用预设的哈希函数kcsh(ret_bid,weight,random_num),基于待存储数据的标识以及故障域中所有存储节点的选择权重信息,分别计算出各个存储节点的选择值;获得选择值最高的3个存储节点,分别作为目标存储节点;再利用预设的哈希函数kcsh(ret_bid,weight,random_num),基于待存储数据的标识以及目标存储节点中所有磁盘的选择权重信息,分别计算出各个磁盘的选择值。
S711:在每个故障域中获得选择值最高的候选磁盘,分别作为目标磁盘;
S712:将待存储数据存储至目标磁盘;
由图5和图7所示的实施例可见,本发明实施例在进行数据存储时,目标磁盘是客户端根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则确定的;而不是像现有技术那样由元数据节点在每次接收到请求后确定目标磁盘,因此,可以避免因元数据节点出现故障,不能进行数据存储的问题。
另外,本发明实施例在进行数据存储时,是客户端直接确定目标存储节点,再将数据发送至目标存储节点,不需要与元数据节点进行交互,因此,提高了存储数据的效率。
本发明实施例提供的方法,在某一节点下线时,只需将该节点上的数据会迁移到其他节点。由于本发明实施例提供的方法在选择目标磁盘时是根据各个磁盘的选择值选择目标磁盘的,而在计算选择值时考虑到了节点的数据存储量,因此,可以均衡各个磁盘的数据存储量,相较于现有技术有元数据节点随机选择目标存储节点的方法,可以保证存储系统中各节点间数据存储量的均衡。
本发明实施例还提供了一种数据存储方法,应用于图2所示的存储系统中的管理服务器,参见图8,该方法包括:
S801:接收客户端发送的获取存储系统的拓扑结构信息和目标磁盘选择规则的请求;该请求中包含客户端的标识信息;
S802:根据请求中的客户端标识信息,将存储系统的拓扑结构信息和目标磁盘选择规则发送至客户端;以使客户端保存存储系统的拓扑结构信息和目标磁盘选择规则,并在获得待存储数据后,根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;并将待存储数据存储至目标磁盘。
由图8所示的实施例可见,本发明实施例中的客户端在进行数据存储时,目标磁盘是客户端根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则确定的;而不是像现有技术那样由元数据节点在每次接收到请求后确定目标磁盘,因此,可以避免因元数据节点出现故障,不能进行数据存储的问题。
与数据存储方法相对应的本发明实施例还提供了一种数据读取方法,应用于图2所示的存储系统中的客户端,参见图9a,该方法包括:
S901:获得待读取数据的标识信息;
S902:根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘;存储系统的拓扑结构信息和目标磁盘选择规则为预先从管理服务器中获取并保存的;
具体的,在根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘的步骤之前,还可以包括:
判断自身是否保存有存储系统的拓扑结构信息和目标磁盘选择规则;
如果自身保存有存储系统的拓扑结构信息和目标磁盘选择规则,则执行根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘的步骤;
如果自身未保存存储系统的拓扑结构信息和目标磁盘选择规则,则向管理服务器发送获取存储系统的拓扑结构信息和目标磁盘选择规则的请求;接收并保存管理服务器返回的存储系统的拓扑结构信息和目标磁盘选择规则。
在一种具体的实施例中,存储系统的拓扑结构信息可以为:按存储系统的拓扑结构构建的包含多层的树形结构;其中,每一层对应一个存储级别;每个存储级别包含一个或多个该存储级别的存储实体。
目标磁盘选择规则,可以包括:选择故障域的规则和从故障域中选择磁盘的规则。
根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘的步骤,可以包括:
根据选择故障域的规则和预设存储份数,从拓扑结构信息中确定故障域;故障域的数量与预设存储份数的数量相同;选择故障域的规则,包括:故障域对应的存储级别,以及从该存储级别包含的存储实体中,选择预设存储份数个目标存储实体作为故障域的预设故障域选择算法;
根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘。
在一种具体的实施例中,多层的树形结构中,除根节点外,每层的节点都可以包含对应存储级别的一个存储实体的标识,以及该存储实体的选择权重信息;
参见图9b,根据选择故障域的规则和预设存储份数,从拓扑结构信息中确定故障域的步骤,可以包括:
S9001:按照选择故障域的规则中包含的故障域对应的存储级别,将该存储级别对应层的各个节点对应的存储实体确定为候选存储实体;
S9002:按照预设故障域选择算法,基于待读取数据的标识以及各个候选存储实体的选择权重信息,计算出各个候选存储实体的选择值;
S9003:获得预设存储份数个选择值最高的候选存储实体,分别作为故障域。
参见图9c,根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘的步骤,可以包括:
S9101:判断故障域对应的存储级别是否为磁盘级别;若故障域对应的存储级别为非磁盘级别,则执行步骤S9102;若故障域对应的存储级别为磁盘级别,则执行步骤S9105;
S9102:基于多层的树形结构,将每个故障域对应的磁盘作为候选磁盘;
S9103:按照从故障域中选择磁盘的规则,基于待读取数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值;
S9104:在每个故障域中获得选择值最高的候选磁盘,分别作为目标磁盘;
S9105:将每个故障域对应的磁盘确定为目标磁盘。
S903:根据待读取数据的标识信息,从目标磁盘中获得待读取数据。
具体的可以是从确定出的目标磁盘中选择一个目标磁盘,作为获得待读取数据的目标磁盘;比如,从确定出的目标磁盘中选择选择值最大的目标磁盘,作为获得待读取数据的目标磁盘;
根据待读取数据的标识信息,从该获得待读取数据的目标磁盘中获得待读取数据。
在一些实施例中,还可以是客户端在存数据的时候,将数据标识与目标磁盘间的对应关系记录至数据库中,当读数据的时候,按照数据标识从数据库中的记录信息中确定目标磁盘,再从目标磁盘中读取数据。
由图9a所示的实施例可见,本发明实施例在进行数据读取时,目标磁盘是客户端根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则确定的;而不是像现有技术那样由元数据节点在每次接收到请求后确定目标磁盘,因此,可以避免因元数据节点出现故障,不能进行数据读取的问题。
以下列举一个具体的例子对本发明实施例提供的数据读取方法,做进一步详细的说明,该数据读取方法应用于图2所示的存储系统中的客户端。
在本实施例中,存储系统的拓扑结构信息如图4所示为:按存储系统的拓扑结构构建的包含三层节点的树形结构;其中,根节点与存储系统对应;每个与根节点相连的子节点与一个存储节点对应;每个子节点的叶子节点,与该子节点对应存储节点的一个磁盘对应;每个子节点都包含:一个存储节点的标识,以及该存储节点的选择权重信息;每个叶子节点包含:一个磁盘的标识,以及该磁盘对应的选择权重信息。
在本实施例中,预设存储份数为3份。
参见图10,本实施例中数据读取方法,可以包括:
S1001:获得待读取数据的标识信息;
S1002:判断自身是否保存有存储系统的拓扑结构信息和目标磁盘选择规则;如果自身保存有存储系统的拓扑结构信息和目标磁盘选择规则,则执行步骤S1005;如果自身未保存存储系统的拓扑结构信息和目标磁盘选择规则,则执行步骤S1003;
S1003:向管理服务器发送获取存储系统的拓扑结构信息和目标磁盘选择规则的请求;
S1004:接收并保存管理服务器返回的存储系统的拓扑结构信息和目标磁盘选择规则;
在本实施例中,目标磁盘选择规则,包括:选择故障域的规则和从故障域中选择磁盘的规则;其中,选择故障域的规则中包含的故障域对应的存储级别为存储节点。
S1005:根据存储系统的拓扑结构信息和目标磁盘选择规则,将每个存储节点确定为候选存储节点;
具体的是按照选择故障域的规则中包含的故障域对应的存储级别,将每个存储节点确定为候选存储节点;
本实施例中,选择故障域的规则中包含的故障域对应的存储级别是存储节点,因此,本步骤中将图4所示的拓扑结构信息中的每个存储节点确定为候选存储节点。
S1006:按照选择故障域的规则中的预设故障域选择算法,基于待读取数据的标识以及各个候选存储节点的选择权重信息,计算出各个候选存储节点的选择值;
在一种具体的实施例中,基于待读取数据的标识以及各个候选存储节点的选择权重信息,计算出各个候选存储节点的选择值的方式,可以与基于待存取数据的标识以及各个候选存储节点的选择权重信息,计算出各个候选存储节点的选择值的方式相同。
S1007:获得预设存储份数个选择值最高的候选存储节点,分别作为故障域存储节点;
S1008:基于多层的树形结构,将每个故障域存储节点对应的磁盘作为候选磁盘;
S1009:按照选择故障域的规则中的从故障域中选择磁盘的规则,基于待读取数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值;
在一种具体的实施例中,基于待读取数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值的方式,可以与基于待读取数据的标识以及各个候选存储节点的选择权重信息,计算出各个候选存储节点的选择值的方式相同。
S1010:在每个故障域存储节点中获得选择值最高的候选磁盘,分别作为目标磁盘;
S1011:从确定出的目标磁盘中选择一个目标磁盘,作为获得待读取数据的目标磁盘;
S1012:根据待读取数据的标识信息,从该获得待读取数据的目标磁盘中获得待读取数据。
在其他实施例中,选择故障域的规则中包含的故障域对应的存储级别还可以为磁盘。那么,是在获得待读取数据和待读取数据的标识后;将每个故障域对应的磁盘确定为目标磁盘;按照预设故障域选择算法,基于待读取数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值;获得预设存储份数个选择值最高的候选磁盘,分别作为故障域,也就是获得预设存储份数个选择值最高的候选磁盘分别作为目标磁盘。
由图10所示的实施例可见,本发明实施例在进行数据读取时,目标磁盘是客户端根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则确定的;而不是像现有技术那样由元数据节点在每次接收到请求后确定目标磁盘,因此,可以避免因元数据节点出现故障,不能进行数据读取的问题。
另外,本发明实施例在进行数据读取时,是客户端直接确定目标存储节点,直接从目标存储节点获得数据,不需要与元数据节点进行交互,因此,提高了存储读取的效率。
本发明实施例还提供了一种数据读取方法,应用于图2所示的存储系统中的管理服务器,参见图11,该方法包括:
S1101:接收客户端发送的获取存储系统的拓扑结构映射表和目标磁盘选择规则的请求;该请求中包含客户端的标识信息;
S1102:根据请求中的客户端标识信息,将存储系统的拓扑结构信息和目标磁盘选择规则发送至客户端;以使客户端保存存储系统的拓扑结构信息和目标磁盘选择规则,并在获得待读取数据后,根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘;并根据待读取数据的标识信息,从目标磁盘读取待读取数据。
由图11所示的实施例可见,本发明实施例中的客户端在进行数据读取时,目标磁盘是客户端根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则确定的;而不是像现有技术那样由元数据节点在每次接收到请求后确定目标磁盘,因此,可以避免因元数据节点出现故障,不能进行数据读取的问题。
与图3a所示实施例对应的,本发明实施例还提供了一种数据存储装置,应用于图2所示存储系统中的客户端,参见图12,该可以装置包括:
获得模块1201,用于获得待存储数据;
确定模块1202,用于根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;
存储模块1203,用于将待存储数据存储至目标磁盘。
由图12所示的实施例可见,本发明实施例在进行数据存储时,目标磁盘是客户端根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则确定的;而不是像现有技术那样由元数据节点确定目标磁盘,因此,可以避免因元数据节点出现故障,不能进行数据存储的问题。
与图8所示实施例对应的,本发明实施例还提供了一种存储存储装置,应用于图2所示存储系统中的管理服务器,参见图13,该装置可以包括:
接收模块1301,用于接收客户端发送的获取存储系统的拓扑结构信息和目标磁盘选择规则的请求;请求中包含客户端的标识信息;
发送模块1302,用于根据请求中的客户端标识信息,将存储系统的拓扑结构信息和目标磁盘选择规则发送至客户端;以使客户端保存存储系统的拓扑结构信息和目标磁盘选择规则,并在获得待存储数据后,根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;并将待存储数据存储至目标磁盘。
由图13所示的实施例可见,本发明实施例在进行数据存储时,目标磁盘是客户端根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则确定的;而不是像现有技术那样由元数据节点在每次接收到请求后确定目标磁盘,因此,可以避免因元数据节点出现故障,不能进行数据存储的问题。
与图9a所示实施例对应的,本发明实施例还提供了一种读取存储装置,应用于图2所示存储系统中的客户端,参见图14,该装置可以包括:
获得模块1401,用于获得待读取数据的标识信息;
确定模块1402,用于根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘;
读取模块1403,用于根据待读取数据的标识信息,从目标磁盘中获得待读取数据。
由图14所示的实施例可见,本发明实施例在进行数据读取时,目标磁盘是客户端根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则确定的;而不是像现有技术那样由元数据节点在每次接收到请求后确定目标磁盘,因此,可以避免因元数据节点出现故障,不能进行数据读取的问题。
与图11所示实施例对应的,本发明实施例还提供了一种存储读取装置,应用于图2所示存储系统中的管理服务器,参见图15,该装置可以包括:
接收模块1501,用于接收客户端发送的获取存储系统的拓扑结构映射表和目标磁盘选择规则的请求;请求中包含客户端的标识信息;
发送模块1502,用于根据请求中的客户端标识信息,将存储系统的拓扑结构信息和目标磁盘选择规则发送至客户端;以使客户端保存存储系统的拓扑结构信息和目标磁盘选择规则,并在获得待读取数据的标识信息后,根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘;并根据待读取数据的标识信息,从目标磁盘读取待读取数据。
由图15所示的实施例可见,本发明实施例在进行数据读取时,目标磁盘是客户端根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则确定的;而不是像现有技术那样由元数据节点在每次接收到请求后确定目标磁盘,因此,可以避免因元数据节点出现故障,不能进行数据读取的问题。
本发明实施例还提供了一种客户端,如图16所示,包括处理器1601、通信接口1602、存储器1603和通信总线1604,其中,处理器1601,通信接口1602,存储器1603通过通信总线1604完成相互间的通信,
存储器1603,用于存放计算机程序;
处理器1601,用于执行存储器1603上所存放的程序时,实现上述实施例所述的所有应用于客户端的方法步骤。
由图16所示的实施例可见,本发明实施例在进行数据存储和读取时,目标磁盘是客户端根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则确定的;而不是像现有技术那样由元数据节点在每次接收到请求后确定目标磁盘,因此,可以避免因元数据节点出现故障,不能进行数据存储和读取的问题。
本发明实施例还提供了一种管理服务器,如图17所示,包括处理器1701、通信接口1702、存储器1703和通信总线1704,其中,处理器1701,通信接口1702,存储器1703通过通信总线1704完成相互间的通信,
存储器1703,用于存放计算机程序;
处理器1701,用于执行存储器1703上所存放的程序时,上述实施例所述的所有应用于管理服务器的方法步骤。
由图17所示的实施例可见,本发明实施例在进行数据存储和读取时,目标磁盘是客户端根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则确定的;而不是像现有技术那样由元数据节点在每次接收到请求后确定目标磁盘,因此,可以避免因元数据节点出现故障,不能进行数据存储和读取的问题。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据存储和/或数读取方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一数据存储和/或数读取方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (21)
1.一种数据存储方法,其特征在于,应用于存储系统中的客户端,所述方法包括:
获得待存储数据;
根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;
将所述待存储数据存储至所述目标磁盘。
2.根据权利要求1所述的方法,其特征在于,所述存储系统还包括管理服务器,所述存储系统的拓扑结构信息和目标磁盘选择规则为预先从所述管理服务器中获取并保存的。
3.根据权利要求2所述的方法,其特征在于,在所述根据自身保存的存储系统的拓扑结信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘的步骤之前,还包括:
判断自身是否保存有所述存储系统的拓扑结构信息和目标磁盘选择规则;
如果自身保存有所述存储系统的拓扑结构映射表和目标磁盘选择规则,则执行所述根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘的步骤;
如果自身未保存存储系统的拓扑结构信息和目标磁盘选择规则,则向管理服务器发送获取所述存储系统的拓扑结构信息和目标磁盘选择规则的请求;
接收并保存所述管理服务器返回的存储系统的拓扑结构信息和目标磁盘选择规则。
4.根据权利要求1至3任一项所述的方法,其特征在于,
所述的存储系统的拓扑结构信息为:按存储系统的拓扑结构构建的包含多层的树形结构;其中,每一层对应一个存储级别;每个存储级别包含一个或多个该存储级别的存储实体;
所述目标磁盘选择规则,包括:选择故障域的规则和从故障域中选择磁盘的规则;
所述根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘的步骤,包括:
根据所述选择故障域的规则和预设存储份数,从所述拓扑结构信息中确定故障域,其中,所述故障域的数量与所述预设存储份数的数量相同;所述选择故障域的规则,包括:故障域对应的存储级别,以及从该存储级别包含的存储实体中,选择预设存储份数个目标存储实体作为故障域的预设故障域选择算法;
根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘。
5.根据权利要求4所述的方法,其特征在于,
所述的多层的树形结构中,除根节点外,每层的节点都包含对应存储级别的一个存储实体的标识,以及该存储实体的选择权重信息;
所述根据所述选择故障域的规则和预设存储份数,从所述拓扑结构信息中确定故障域的步骤,包括:
按照所述选择故障域的规则中包含的故障域对应的存储级别,将该存储级别对应层的各个节点对应的存储实体确定为候选存储实体;
获得待存储数据的标识;
按照预设故障域选择算法,基于所述待存储数据的标识以及各个候选存储实体的选择权重信息,计算出各个候选存储实体的选择值;
获得预设存储份数个选择值最高的候选存储实体,分别作为故障域;
所述根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘的步骤,包括:
若所述故障域对应的存储级别为非磁盘级别,则基于所述多层的树形结构,将每个故障域对应的磁盘作为候选磁盘;
按照所述从故障域中选择磁盘的规则,基于所述待存储数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值;
在每个故障域中获得选择值最高的候选磁盘,分别作为目标磁盘;
若所述故障域对应的存储级别为磁盘级别,则将每个故障域对应的磁盘确定为目标磁盘。
6.根据权利要求5所述的方法,其特征在于,
所述的多层的树形结构中,包含三层节点;其中,根节点与存储系统对应;每个与根节点相连的子节点与一个存储节点对应;每个子节点的叶子节点,与该子节点对应存储节点的一个磁盘对应;所述每个子节点都包含:一个存储节点的标识,以及该存储节点的选择权重信息;每个叶子节点包含:一个磁盘的标识,以及该磁盘对应的选择权重信息;
所述选择故障域的规则中包含的故障域对应的存储级别为存储节点;
所述根据所述选择故障域的规则和预设存储份数,从所述拓扑结构信息中确定故障域的步骤,包括:
将每个存储节点确定为候选存储节点;
按照预设故障域选择算法,基于所述待存储数据的标识以及各个候选存储节点的选择权重信息,计算出各个候选存储节点的选择值;
获得预设存储份数个选择值最高的候选存储节点,分别作为故障域存储节点;
所述根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘的步骤,包括:
基于所述多层的树形结构,将每个故障域存储节点对应的磁盘作为候选磁盘;
按照所述从故障域中选择磁盘的规则,基于所述待存储数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值;
在每个故障域存储节点中获得选择值最高的候选磁盘,分别作为目标磁盘。
7.一种数据存储方法,其特征在于,应用于存储系统中的管理服务器,所述存储系统还包括:客户端;所述方法包括:
接收客户端发送的获取存储系统的拓扑结构信息和目标磁盘选择规则的请求;所述请求中包含所述客户端的标识信息;
根据所述请求中的客户端标识信息,将所述存储系统的拓扑结构信息和目标磁盘选择规则发送至所述客户端;以使所述客户端保存所述存储系统的拓扑结构信息和目标磁盘选择规则,并在获得待存储数据后,根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;并将所述待存储数据存储至所述目标磁盘。
8.一种数据读取方法,其特征在于,应用于存储系统中的客户端,所述方法包括:
获得待读取数据的标识信息;
根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘;
根据待读取数据的标识信息,从所述目标磁盘中获得所述待读取数据。
9.根据权利要求8所述的方法,其特征在于,所述存储系统还包括管理服务器,所述存储系统的拓扑结构信息和目标磁盘选择规则为预先从所述管理服务器中获取并保存的。
10.根据权利要求9所述的方法,其特征在于,在所述根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘的步骤之前,还包括:
判断自身是否保存有所述存储系统的拓扑结构信息和目标磁盘选择规则;
如果自身保存有所述存储系统的拓扑结构信息和目标磁盘选择规则,则执行所述根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘的步骤;
如果自身未保存存储系统的拓扑结构信息和目标磁盘选择规则,则向管理服务器发送获取所述存储系统的拓扑结构信息和目标磁盘选择规则的请求;接收并保存所述管理服务器返回的存储系统的拓扑结构信息和目标磁盘选择规则。
11.根据权利要求8至10任一项所述的方法,其特征在于,
所述的存储系统的拓扑结构信息为:按存储系统的拓扑结构构建的包含多层的树形结构;其中,每一层对应一个存储级别;每个存储级别包含一个或多个该存储级别的存储实体;
所述目标磁盘选择规则,包括:选择故障域的规则和从故障域中选择磁盘的规则;
所述根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘的步骤,包括:
根据所述选择故障域的规则和预设存储份数,从所述拓扑结构信息中确定故障域,其中,所述故障域的数量与所述预设存储份数的数量相同;所述选择故障域的规则,包括:故障域对应的存储级别,以及从该存储级别包含的存储实体中,选择预设存储份数个目标存储实体作为故障域的预设故障域选择算法;
根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘。
12.根据权利要求11所述的方法,其特征在于,
所述的多层的树形结构中,除根节点外,每层的节点都包含对应存储级别的一个存储实体的标识,以及该存储实体的选择权重信息;
所述根据所述选择故障域的规则和预设存储份数,从所述拓扑结构信息中确定故障域的步骤,包括:
按照所述选择故障域的规则中包含的故障域对应的存储级别,将该存储级别对应层的各个节点对应的存储实体确定为候选存储实体;
按照预设故障域选择算法,基于所述待读取数据的标识以及各个候选存储实体的选择权重信息,计算出各个候选存储实体的选择值;
获得预设存储份数个选择值最高的候选存储实体,分别作为故障域;
所述根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘的步骤,包括:
若所述故障域对应的存储级别为非磁盘级别,则基于所述多层的树形结构,将每个故障域对应的磁盘作为候选磁盘;
按照所述从故障域中选择磁盘的规则,基于所述待读取数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值;
在每个故障域中获得选择值最高的候选磁盘,分别作为目标磁盘;
若所述故障域对应的存储级别为磁盘级别,则将每个故障域对应的磁盘确定为目标磁盘。
13.根据权利要求12所述的方法,其特征在于,
所述的多层的树形结构中,包含三层节点;其中,根节点与存储系统对应;每个与根节点相连的子节点与一个存储节点对应;每个子节点的叶子节点,与该子节点对应存储节点的一个磁盘对应;所述每个子节点都包含:一个存储节点的标识,以及该存储节点的选择权重信息;每个叶子节点包含:一个磁盘的标识,以及该磁盘对应的选择权重信息;
所述选择故障域的规则中包含的故障域对应的存储级别为存储节点;
所述根据所述选择故障域的规则和预设存储份数,从所述拓扑结构信息中确定故障域的步骤,包括:
将每个存储节点确定为候选存储节点;
按照预设故障域选择算法,基于所述待读取数据的标识以及各个候选存储节点的选择权重信息,计算出各个候选存储节点的选择值;
获得预设存储份数个选择值最高的候选存储节点,分别作为故障域存储节点;
所述根据从故障域中选择磁盘的规则,从每一故障域中选择一个磁盘作为目标磁盘的步骤,包括:
基于所述多层的树形结构,将每个故障域存储节点对应的磁盘作为候选磁盘;
按照所述从故障域中选择磁盘的规则,基于所述待读取数据的标识以及各个候选磁盘的选择权重信息,计算出各个候选磁盘的选择值;
在每个故障域存储节点中获得选择值最高的候选磁盘,分别作为目标磁盘。
14.一种数据读取方法,其特征在于,应用于存储系统中的管理服务器,所述存储系统还包括:客户端;所述方法包括:
接收客户端发送的获取存储系统的拓扑结构映射表和目标磁盘选择规则的请求;所述请求中包含所述客户端的标识信息;
根据所述请求中的客户端标识信息,将所述存储系统的拓扑结构信息和目标磁盘选择规则发送至所述客户端;以使所述客户端保存所述存储系统的拓扑结构信息和目标磁盘选择规则,并在获得待读取数据后,根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘;并根据待读取数据的标识信息,从所述目标磁盘读取所述待读取数据。
15.一种数据存储装置,其特征在于,应用于存储系统中的客户端,所述装置包括:
获得模块,用于获得待存储数据;
确定模块,用于根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;
存储模块,用于将所述待存储数据存储至所述目标磁盘。
16.一种数据存储装置,其特征在于,应用于存储系统中的管理服务器,所述存储系统还包括:客户端;所述装置包括:
接收模块,用于接收客户端发送的获取存储系统的拓扑结构信息和目标磁盘选择规则的请求;所述请求中包含所述客户端的标识信息;
发送模块,用于根据所述请求中的客户端标识信息,将所述存储系统的拓扑结构信息和目标磁盘选择规则发送至所述客户端;以使所述客户端保存所述存储系统的拓扑结构信息和目标磁盘选择规则,并在获得待存储数据后,根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;并将所述待存储数据存储至所述目标磁盘。
17.一种数据读取装置,其特征在于,应用于存储系统中的客户端,所述装置包括:
获得模块,用于获得待读取数据的标识信息;
确定模块,用于根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘;
读取模块,用于根据待读取数据的标识信息,从所述目标磁盘中获得所述待读取数据。
18.一种数据读取装置,其特征在于,应用于存储系统中的管理服务器,所述存储系统还包括:客户端;所述装置包括:
接收模块,用于接收客户端发送的获取存储系统的拓扑结构映射表和目标磁盘选择规则的请求;所述请求中包含所述客户端的标识信息;
发送模块,用于根据所述请求中的客户端标识信息,将所述存储系统的拓扑结构信息和目标磁盘选择规则发送至所述客户端;以使所述客户端保存所述存储系统的拓扑结构信息和目标磁盘选择规则,并在获得待读取数据的标识信息后,根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘;并根据待读取数据的标识信息,从所述目标磁盘读取所述待读取数据。
19.一种客户端,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6和/或8-13任一所述的方法步骤。
20.一种管理服务器,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求7和/或14任一所述的方法步骤。
21.一种存储系统,其特征在于,包括:客户端、管理服务器和一个或多个存储设备;所述每个存储设备包含多个磁盘;
所述客户端用于:获得待存储数据;根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待存储数据对应的目标磁盘;所述存储系统的拓扑结构信息和目标磁盘选择规则为预先从所述管理服务器中获取并保存的;将所述待存储数据存储至所述目标磁盘;和/或,获得待读取数据的标识信息;根据自身保存的存储系统的拓扑结构信息和目标磁盘选择规则,确定待读取数据对应的目标磁盘;所述存储系统的拓扑结构信息和目标磁盘选择规则为预先从所述管理服务器中获取并保存的;根据待读取数据的标识信息,从所述目标磁盘中获得所述待读取数据;
所述管理服务器用于:接收客户端发送的获取存储系统的拓扑结构信息和目标磁盘选择规则的请求;根据所述请求中的客户端标识信息,将所述存储系统的拓扑结构信息和目标磁盘选择规则发送至所述客户端;
所述每个存储设备的磁盘用于:存储数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910943958.7A CN112579551B (zh) | 2019-09-30 | 2019-09-30 | 数据存储和读取方法、装置、客户端、管理服务器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910943958.7A CN112579551B (zh) | 2019-09-30 | 2019-09-30 | 数据存储和读取方法、装置、客户端、管理服务器及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112579551A true CN112579551A (zh) | 2021-03-30 |
CN112579551B CN112579551B (zh) | 2024-08-30 |
Family
ID=75116882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910943958.7A Active CN112579551B (zh) | 2019-09-30 | 2019-09-30 | 数据存储和读取方法、装置、客户端、管理服务器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579551B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113485648A (zh) * | 2021-07-14 | 2021-10-08 | 华能吉林发电有限公司 | 基于云平台的存储资源控制系统 |
CN113568570A (zh) * | 2021-06-22 | 2021-10-29 | 阿里巴巴新加坡控股有限公司 | 数据处理方法及装置 |
CN114422518A (zh) * | 2022-03-31 | 2022-04-29 | 北京奥星贝斯科技有限公司 | 请求服务的方法及装置 |
CN115242819A (zh) * | 2022-07-22 | 2022-10-25 | 济南浪潮数据技术有限公司 | 分布式存储的选路方法及相关组件 |
CN115277547A (zh) * | 2022-07-29 | 2022-11-01 | 济南浪潮数据技术有限公司 | 一种路径调整方法、装置、设备及介质 |
CN115826876A (zh) * | 2023-01-09 | 2023-03-21 | 苏州浪潮智能科技有限公司 | 数据写入方法、系统、存储硬盘、电子设备及存储介质 |
CN118092814A (zh) * | 2024-04-23 | 2024-05-28 | 北京南天智联信息科技股份有限公司 | 一种数据存取方法和数据存取系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140244701A1 (en) * | 2013-02-25 | 2014-08-28 | Emc Corporation | Data analytics platform over parallel databases and distributed file systems |
US20160034356A1 (en) * | 2014-08-04 | 2016-02-04 | Cohesity, Inc. | Backup operations in a tree-based distributed file system |
CN105912612A (zh) * | 2016-04-06 | 2016-08-31 | 中广天择传媒股份有限公司 | 一种分布式文件系统及面向该系统的数据均衡分布方法 |
US20170329541A1 (en) * | 2016-05-11 | 2017-11-16 | Hitachi, Ltd. | Data storage system, process and computer program for such data storage system for reducing read and write amplifications |
CN108491478A (zh) * | 2018-03-09 | 2018-09-04 | 深圳市瑞驰信息技术有限公司 | 一种改进型的分布式存储系统的数据分布方法及系统 |
CN110169040A (zh) * | 2018-07-10 | 2019-08-23 | 深圳花儿数据技术有限公司 | 基于多层一致性哈希的分布式数据存储方法与系统 |
CN110169008A (zh) * | 2018-07-10 | 2019-08-23 | 深圳花儿数据技术有限公司 | 一种基于一致性哈希算法的分布式数据冗余存储方法 |
-
2019
- 2019-09-30 CN CN201910943958.7A patent/CN112579551B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140244701A1 (en) * | 2013-02-25 | 2014-08-28 | Emc Corporation | Data analytics platform over parallel databases and distributed file systems |
US20160034356A1 (en) * | 2014-08-04 | 2016-02-04 | Cohesity, Inc. | Backup operations in a tree-based distributed file system |
CN105912612A (zh) * | 2016-04-06 | 2016-08-31 | 中广天择传媒股份有限公司 | 一种分布式文件系统及面向该系统的数据均衡分布方法 |
US20170329541A1 (en) * | 2016-05-11 | 2017-11-16 | Hitachi, Ltd. | Data storage system, process and computer program for such data storage system for reducing read and write amplifications |
CN108491478A (zh) * | 2018-03-09 | 2018-09-04 | 深圳市瑞驰信息技术有限公司 | 一种改进型的分布式存储系统的数据分布方法及系统 |
CN110169040A (zh) * | 2018-07-10 | 2019-08-23 | 深圳花儿数据技术有限公司 | 基于多层一致性哈希的分布式数据存储方法与系统 |
CN110169008A (zh) * | 2018-07-10 | 2019-08-23 | 深圳花儿数据技术有限公司 | 一种基于一致性哈希算法的分布式数据冗余存储方法 |
Non-Patent Citations (1)
Title |
---|
高原等: "基于调度树的分布式文件系统数据流调度算法研究", 《江苏科技信息》, no. 27, pages 40 - 42 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568570A (zh) * | 2021-06-22 | 2021-10-29 | 阿里巴巴新加坡控股有限公司 | 数据处理方法及装置 |
CN113568570B (zh) * | 2021-06-22 | 2024-04-12 | 阿里巴巴创新公司 | 数据处理方法及装置 |
CN113485648A (zh) * | 2021-07-14 | 2021-10-08 | 华能吉林发电有限公司 | 基于云平台的存储资源控制系统 |
CN113485648B (zh) * | 2021-07-14 | 2022-04-26 | 华能吉林发电有限公司 | 基于云平台的存储资源控制系统 |
CN114422518A (zh) * | 2022-03-31 | 2022-04-29 | 北京奥星贝斯科技有限公司 | 请求服务的方法及装置 |
CN115242819A (zh) * | 2022-07-22 | 2022-10-25 | 济南浪潮数据技术有限公司 | 分布式存储的选路方法及相关组件 |
CN115242819B (zh) * | 2022-07-22 | 2024-07-16 | 济南浪潮数据技术有限公司 | 分布式存储的选路方法及相关组件 |
CN115277547A (zh) * | 2022-07-29 | 2022-11-01 | 济南浪潮数据技术有限公司 | 一种路径调整方法、装置、设备及介质 |
CN115826876A (zh) * | 2023-01-09 | 2023-03-21 | 苏州浪潮智能科技有限公司 | 数据写入方法、系统、存储硬盘、电子设备及存储介质 |
WO2024148856A1 (zh) * | 2023-01-09 | 2024-07-18 | 苏州元脑智能科技有限公司 | 数据写入方法、系统、存储硬盘、电子设备及存储介质 |
CN118092814A (zh) * | 2024-04-23 | 2024-05-28 | 北京南天智联信息科技股份有限公司 | 一种数据存取方法和数据存取系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112579551B (zh) | 2024-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112579551B (zh) | 数据存储和读取方法、装置、客户端、管理服务器及系统 | |
US11316925B2 (en) | Video data storage method and device in cloud storage system | |
CN103973810A (zh) | 基于互联网协议ip盘的数据处理方法和装置 | |
CN111046310A (zh) | 页面处理方法、装置、服务器及计算机可读存储介质 | |
CN110781156A (zh) | 一种数据节点的分配方法、设备及介质 | |
CN114120221A (zh) | 基于深度学习的环境核查方法、电子设备及存储介质 | |
US11349677B2 (en) | System and method for utility ranking and funding for cloud storage | |
US12132783B2 (en) | Storing a data object as data regions in a storage network | |
CN109255254A (zh) | 一种数据库权限管理方法、装置、设备及存储介质 | |
CN107797758B (zh) | 数据存储方法、数据访问方法及装置 | |
CN113572721A (zh) | 一种异常访问检测方法、装置、电子设备及存储介质 | |
CN110955682A (zh) | 缓存数据的删除、数据缓存及缓存数据的读取方法及装置 | |
CN111400327B (zh) | 一种数据同步方法、装置、电子设备及存储介质 | |
CN110941706A (zh) | 答案确定方法及系统 | |
CN110968267B (zh) | 数据管理方法、装置、服务器及系统 | |
CN112671590B (zh) | 数据传输方法、装置、电子设备及计算机存储介质 | |
CN112910936B (zh) | 数据处理方法、装置、系统、电子设备及可读存储介质 | |
CN113849482A (zh) | 一种数据迁移方法、装置及电子设备 | |
CN114637790A (zh) | 榜单数据查询方法、装置、电子设备和存储介质 | |
CN116860180B (zh) | 一种分布式存储方法、装置、电子设备及存储介质 | |
CN113704200A (zh) | 数据存储方法、装置、设备及存储介质 | |
CN114386025A (zh) | 异常检测方法、装置、电子设备及存储介质 | |
CN113536138A (zh) | 一种网络资源推荐方法、装置、电子设备及可读存储介质 | |
CN113032399B (zh) | 一种数据处理方法及装置 | |
CN112543213B (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 |