CN109388335A - 一种数据存储方法及系统 - Google Patents
一种数据存储方法及系统 Download PDFInfo
- Publication number
- CN109388335A CN109388335A CN201710681123.XA CN201710681123A CN109388335A CN 109388335 A CN109388335 A CN 109388335A CN 201710681123 A CN201710681123 A CN 201710681123A CN 109388335 A CN109388335 A CN 109388335A
- Authority
- CN
- China
- Prior art keywords
- data
- copy
- data fragment
- storage
- serial number
- 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 38
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 64
- 238000013500 data storage Methods 0.000 claims abstract description 48
- 239000012634 fragment Substances 0.000 claims description 214
- 238000004364 calculation method Methods 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 5
- 238000006062 fragmentation reaction Methods 0.000 abstract description 16
- 238000013467 fragmentation Methods 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种数据存储方法及系统。所述方法包括:获取待存储数据及其数据名称,并将待存储数据按照预设大小进行切分获得多个数据分片及每个数据分片对应的数据分片序号;根据数据名称和数据分片序号,利用哈希算法获得数据分片对应的第二存储区域的第二区域序号;根据数据名称、数据分片序号、第二区域序号和数据分片的副本对应的副本序号,利用哈希算法获得数据分片的副本对应的第一存储区域中的磁盘序号;将数据分片的副本存储到磁盘序号对应的磁盘中。所述系统用于执行所述方法。本发明实施例通过利用哈希算法确定数据分片对应的第二存储区域以及数据分片副本对应的第一存储区域中的磁盘并进行存储,提高了数据存储的安全性。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种数据存储方法及系统。
背景技术
随着云计算和大数据等技术的推广,数据存储的需求呈现爆发式增长。分布式存储系统通过软件将分散存放于不同存储节点服务器上数据进行聚合,可实现存储节点服务器的通用性,使得存储系统的容量和性能可以方便的线性扩展。
为保障分布式存储系统中数据的高可靠性,一般的采用多副本冗余存放方式解决。首先将数据拆分为M个固定字节的分片,在数据存放时,每一个单独的数据分片都会存放R个副本,副本按照一定规则存放在R个不同的存储节点上,这R个存储节点就是一个副本逻辑组。当这R个存储节点同时出现故障时,数据分片必然会出现无法访问的情况,导致数据无法恢复。现有技术方案是按照server模式或者rack模式两种规则进行数据冗余存放,以下举例说明:
假设现有N个数据存储节点,数据冗余存放R个副本(R<N)。如果数据完全随机存放,即随机放置于R个数据磁盘上,那么总计会存在副本逻辑组的数量为C(R,N)。那么,系统在存满数据情况下,随机有R个硬盘同时发生故障时,数据必然会出现丢失。一般情况下,分布式存储系统采用3副本模式,以取得数据可靠性、性能及经济性的平衡,下面的例子以3副本计算。
(1)server模式
采用server模式,即每个数据分片随机的从R个不同的服务器中分别各取一个磁盘进行存放。这种模式下,在存满数据情况下,随机有R个硬盘同时发生故障时,数据丢失的概率为该模式下副本逻辑组的总数量/完全随机模式下的副本逻辑组总数量,即数据丢失的概率L如公式(1)所示:
公式(1)中,代表从Srs个服务器节点中随机抽取R个的组合数,SnR代表每个服务器节点中的存储磁盘数量Sn求取R次方,代表从N个数据存储节点随机抽取R个的组合数。
因此,假设副本数为3,当有12台存储节点服务器、每台服务器5个硬盘,共有60个数据存储节点时,上述情形发生数据丢失的概率为80.36%;当存储节点数量为120个时,上述情形下发生数据丢失的概率为90.09%。
(2)rack模式
采用rack模式,即每个数据分片随机的从R个不同的机柜中分别各取一个服务器的磁盘进行存放。这种模式下,在存满数据情况下,随机有R个硬盘同时发生故障时,数据丢失的概率L如公式(2)所示:
公式(2)中,代表从Rk个机柜中随机抽取R个的组合数,RnR代表每个机柜中的存储磁盘数量Rn求取R次方,代表从N个数据存储节点随机抽取R个的组合数。
因此,假设副本数为3,当有3个机柜、每个机柜有4台存储节点服务器、每台服务器5个硬盘时,共有60个数据存储节点,上述情形发生数据丢失的概率为23.38%;当存储节点数量为120个时,上述情形下发生数据丢失的概率为56.97%。
由上可知,无论是按照server模式还是rack模式进行分布式存储系统的数据冗余存放,均会存在随着数据存储节点数量的增加,数据丢失的可能性会随之增加的问题。
因此,如何提高数据存储的安全性是现如今亟待解决的技术问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种数据存储方法及系统。
第一方面,例提供一种数据存储方法,包括:
获取待存储数据及其数据名称,并将所述待存储数据按照预设大小进行切分,获得多个数据分片及每个所述数据分片对应的数据分片序号;
根据所述数据名称和所述数据分片序号,利用哈希算法获得所述数据分片对应的第二存储区域的第二区域序号;
根据所述数据名称、所述数据分片序号、所述第二区域序号和所述数据分片的副本对应的副本序号,利用哈希算法获得所述数据分片的副本对应的第一存储区域中的磁盘序号;其中,所述第二存储区域包括多个所述第一存储区域,所述数据分片的每一个副本对应一个所述第一存储区域;
将所述数据分片的副本存储到所述磁盘序号对应的磁盘中。
第二方面,本发明实施例提供一种数据存储系统,包括:
获取模块,用于获取待存储数据及其数据名称,并将所述待存储数据按照预设大小进行切分,获得多个数据分片及每个所述数据分片对应的数据分片序号;
第一计算模块,用于根据所述数据名称和所述数据分片序号,利用哈希算法获得所述数据分片对应的第二存储区域的第二区域序号;
第二计算模块,用于根据所述数据名称、所述数据分片序号、所述第二区域序号和所述数据分片的副本对应的副本序号,利用哈希算法获得所述数据分片的副本对应的第一存储区域中的磁盘序号;其中,所述第二存储区域包括多个所述第一存储区域,所述数据分片的每一个副本对应一个所述第一存储区域;
存储模块,用于将所述数据分片的副本存储到所述磁盘序号对应的磁盘中。
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,包括:
所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法步骤。
本发明实施例提供的一种数据存储方法及系统,通过根据数据名称和数据分片序号利用哈希算法获得该数据分片的第二存储区域,然后再根据数据名称、数据分片序号、第二区域序号和副本序号,利用哈希算法获得该数据分片的每一个副本对应的第一存储区域中的磁盘序号,并将副本进行存储,提升了数据存储的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据存储方法流程示意图;
图2为本发明实施例提供的数据存储系统结构示意图;
图3为本发明实施例提供的一种数据存储系统结构示意图;
图4为本发明实施例提供的电子设备实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种数据存储方法流程示意图,如图1所示,所述方法,包括:
步骤101:获取待存储数据及其数据名称,并将所述待存储数据按照预设大小进行切分,获得多个数据分片及每个所述数据分片对应的数据分片序号;
具体的,数据存储系统在获取到客户端发送的待存储数据及该待存储数据对应的数据名称之后,将该待存储数据按照预设大小进行切分,获得待存储数据的多个数据分片,以及每个数据分片都对应一个数据分片序号。应当说明的是,预设大小是指数据占用的比特数,例如,待存储数据的大小为100比特,如果预设大小是10比特,那么将待存储数据进行切分后可以获得10个数据分片,这10个数据分片中每一个数据分片都对应一个数据分片序号。
步骤102:根据所述数据名称和所述数据分片序号,利用哈希算法获得所述数据分片对应的第二存储区域的第二区域序号;
具体的,根据待存储数据的数据名称和对待存储数据进行切分后的数据分片对应的数据分片序号,利用哈希算法获得该数据分片对应的第二存储区域。应当说明的是,如果待存储数据经过切分后获得10个数据分片,那么将每一个数据分片对应的数据分片序号和待存储数据的数据名称进行哈希计算,从而可以得到每一个数据分片应该存储到的第二存储区域。应当说明的是,哈希算法包括多种算法,主流的算法有:经典的字符串哈希算法、MD4、MD5、SHA-1和Davies-Meyer等,本发明实施例使用的哈希算法为Davies-Meyer算法,Davies-Meyer算法是基于对称分组算法的单向散列算法,也可以使用其他算法,本发明实施例对此不做具体限定。
步骤103:根据所述数据名称、所述数据分片序号、所述第二区域序号和所述数据分片的副本对应的副本序号,利用哈希算法获得所述数据分片的副本对应的第一存储区域中的磁盘序号;其中,所述第二存储区域包括多个所述第一存储区域,所述数据分片的每一个副本对应一个所述第一存储区域;
具体的,在上个步骤中,对待存储数据中的每一个数据分片经过哈希算法都找到了对应的第二存储区域,为了数据安全起见,一般都会对数据进行复制,得到数据的多个副本,本发明实施例中的待存储数据的数据分片也都有相应的副本,并且,每个副本都有对应的副本序号。要将数据分片的每个副本都存储到磁盘中,需要计算得出数据分片的副本对应的磁盘序号,根据待存储数据的数据名称、数据分片序号、通过上一步骤得出的该数据分片序号对应的第二区域序号和该数据分片的副本对应的副本序号,利用哈希算法计算获得该数据分片的副本对应的第一存储区域中的磁盘序号。其中,应当说明的是,一次哈希计算,可以得出一个数据分片的副本对应的磁盘序号。并且,在上一步骤中计算得到数据分片应存储到的第二存储区域后,第二存储区域中包括与数据分片的副本个数相同的第一存储区域,因此,可以将第二存储区域中的每一个第一存储区域中存放该数据分片的一个副本。而在第一存储区域中,包括了多个磁盘,副本在选定了第一存储区域以后,具体存放在第一存储区域中的哪个磁盘上需要经过该步骤进行哈希计算获得。
步骤104:将所述数据分片的副本存储到所述磁盘序号对应的磁盘中。
具体的,在计算得到数据分片的副本对应的磁盘序号后,将该副本存储到该磁盘序号对应的磁盘中。应当说明的是,多个第二存储区域构成了一个数据存储系统。
本发明实施例通过根据数据名称和数据分片序号利用哈希算法获得该数据分片的第二存储区域,然后再根据数据名称、数据分片序号、第二区域序号和副本序号,利用哈希算法获得该数据分片的每一个副本对应的第一存储区域中的磁盘序号,并将副本进行存储,提升了数据存储的安全性。
在上述实施例的基础上,所述方法,还包括:
将每一个所述机柜上的服务器根据预定个数进行分组,每一组所述服务器作为一个所述第一存储区域,其中每个所述服务器包括多个所述磁盘;
根据所述数据分片的副本个数,将所述第一存储区域进行分组,每一组所述第一存储区域作为所述第二存储区域。
具体的,数据存储系统由多个机柜构成,每个机柜都包括多个服务器,每个服务器都包括多个磁盘,将每一个机柜上的服务器根据预定个数进行分组,每一组服务器作为一个第一存储区域,因此,第一存储区域包括多个磁盘。每个数据分片都有副本,且副本个数相同,根据副本个数,将第一存储区域进行分组,每一组第一存储区域作为第二存储区域,即,第二存储区域中包括的第一存储区域个数与数据分片的个数相同。
图2为本发明实施例提供的数据存储系统结构示意图,如图2所示,数据储系统中的存储节点由不同机柜中的服务器上的磁盘组成,这里假设有6个机柜201,单个机柜配置8台服务器,单个服务器上有5块磁盘202,每个数据分片有3个副本。每个机柜选择4个服务器作为一组构成第一存储区域203,从而一共可以构成12个第一存储区域203,由于副本个数为3,则将3个第一存储区域作为一组构成第二存储区域204,从而一共可以构成4个第二存储区域204。
本发明实施例通过将数据存储系统划分为第一存储区域和第二存储区域,通过第一次哈希算法获得数据分片对应的第二存储区域,通过第二次哈希算法获得该数据分片的副本对应的第一存储区域的磁盘,并将数据分片的副本进行存储,从而使得副本的逻辑组的总数量能够大幅减少,从而极大提升数据存储系统的数据可靠性。
在上述实施例的基础上,所述根据所述数据名称、所述数据分片序号、所述第二存储区域的第二区域序号和所述数据分片的副本对应的副本序号,利用哈希算法获得所述数据分片的副本对应的第一存储区域中的磁盘序号,包括:
根据所述数据名称、所述数据分片序号、所述第二存储区域的第二区域序号和所述数据分片的副本对应的副本序号,利用哈希算法获得所述数据分片的副本对应的第一哈希值,根据所述第一哈希值确定所述数据分片的副本对应的第一存储区域中的磁盘序号。
具体的,如果要确定某一数据分片的某个副本对应的存放位置时,根据待存储数据的数据名称、该数据分片的数据分片序号、该数据分片对应的第二存储区域的第二区域序号和该数据分片副本的副本序号,利用哈希算法计算,可以获得该数据分片的副本对应的第一哈希值,通过第一哈希值可以找到对应的磁盘序号,应当说明的是该第一哈希值可以为一个32位整数,不同的哈希算法可能会得到不同形式的第一哈希值。
本发明实施例通过数据名称、数据分片序号、第二区域序号和副本序号利用哈希算法获得该数据分片的副本对应的磁盘序号,从而用来存储该副本,提高了数据存储的安全性。
在上述实施例的基础上,所述根据所述数据名称和所述数据分片序号,利用哈希算法获得所述数据分片对应的第二存储区域的第二区域序号,包括:
根据所述数据名称和所述数据分片序号,利用哈希算法获得所述数据分片的第二哈希值,根据所述第二哈希值确定所述数据分片对应的所述第二存储区域的第二区域序号。
具体的,在对待存储数据的数据分片进行存储之前,首先要获取到数据分片对应的第二存储区域,根据数据名称和数据分片序号利用哈希算法可以计算或暗的数据分片的第二哈希值,通过第二哈希值可以确定该数据分片对应的第二存储区域的第二区域序号。
本发明实施例通过数据名称和数据分片序号利用哈希算法获得第二哈希值,根据该第二哈希值确定该数据分片对应的第二区域序号,确定出该数据分片应存储的第二存储区域,提高了数据存储的安全性。
在上述实施例的基础上,所述根据所述第一哈希值确定所述数据分片的副本对应的第一存储区域中的磁盘序号,包括:
根据所述第一存储区域中的磁盘个数和所述第一哈希值的取值范围建立第一哈希映射表,根据所述第一哈希值和所述第一哈希映射表获得所述数据分片的副本对应的磁盘序号。
具体的,根据数据名称、数据分片序号、第二区域序号和副本序号计算得到第一哈希值后,例如,得到的第一哈希值是一个32位整数的值,那么,可以得到第一哈希值的取值范围,即从0到32位最大值,根据第一存储区域中的磁盘个数,将第一哈希值的取值范围进行平均分割,使得平分后的每个数据段都能对应一个磁盘序号,从而可以获得该数据段和磁盘序号的第一哈希映射表,根据计算得出的第一哈希值,可以从第一哈希映射表中获得对应的磁盘序号,因此,可以将该副本存储到该磁盘序号对应的磁盘中。
本发明实施例通过根据数据名称和数据分片序号利用哈希算法获得该数据分片的第二存储区域,然后再根据数据名称、数据分片序号、第二区域序号和副本序号,利用哈希算法获得该数据分片的每一个副本对应的第一存储区域中的磁盘序号,并将副本进行存储,提升了数据存储的安全性。
在上述实施例的基础上,所述根据所述第二哈希值确定所述数据分片对应的所述第二存储区域的第二区域序号,包括:
根据所述第二存储区域的个数和所述第二哈希值的取值范围建立第二哈希映射表,根据所述第二哈希值和所述第二哈希映射表获得所述第二存储区域。
具体的,根据数据名称和数据分片序号利用哈希算法计算得出第二哈希值,假设该第二哈希值为32位整数,则第二哈希值的取值范围为从0到32位最大值,根据数据存储系统中的第二存储区域的个数,将第二哈希值的取值范围进行平均分割,每个数据段都对应一个第二存储区域的第二区域序号,从而可以建立数据段和第二区域序号的第二哈希映射表,第二哈希值通过第二哈希映射表可以找到对应的第二区域序号,从而确定该数据分片应存储的第二存储区域。
本发明实施例通过根据数据名称和数据分片序号利用哈希算法获得该数据分片的第二存储区域,然后再根据数据名称、数据分片序号、第二区域序号和副本序号,利用哈希算法获得该数据分片的每一个副本对应的第一存储区域中的磁盘序号,并将副本进行存储,提升了数据存储的安全性。
在上述各实施例的基础上,所述方法,还包括:
记录所述数据分片对应的每个副本的存储位置。
具体的,当每个数据分片的每个副本都确定了存储位置,并进行存储之后,数据存储系统将每个数据分片的每个副本的存储位置记录下来,便于对数据的读、写等操作。
在存满数据情况下,随机有R个硬盘同时发生故障时,数据丢失的概率L如公式(3)所示:
公式(3)中,Ds代表第二存储区域的总数量,代表每个第一存储区域中的存储磁盘数量Dn求取R次方,代表从N个磁盘中随机抽取R个的组合数;其中Dn=单服务器磁盘数*(单机柜服务器数/2),Ds=存储节点总个数/(副本数+Dn)。
假设存储节点数量为120个,副本数为3,单机柜有8台服务器,单服务器有5块磁盘,则Dn=5*(8/2)=20,Ds=120/(3*20)=2,上述情形下发生数据丢失的概率为5.7%。
本发明实施例解决了数据存储系统在磁盘数大量增加后面临的数据丢失高风险问题,能够极大提升数据存储系统的整体安全性。
图3为本发明实施例提供的一种数据存储系统结构示意图,如图3所示,所述系统,包括:获取模块301、计算模块302、第二计算模块303和存储模块304,其中:
获取模块301用于获取待存储数据及其数据名称,并将所述待存储数据按照预设大小进行切分,获得多个数据分片及每个所述数据分片对应的数据分片序号;第一计算模块302用于根据所述数据名称和所述数据分片序号,利用哈希算法获得所述数据分片对应的第二存储区域的第二区域序号;第二计算模块303用于根据所述数据名称、所述数据分片序号、所述第二区域序号和所述数据分片的副本对应的副本序号,利用哈希算法获得所述数据分片的副本对应的第一存储区域中的磁盘序号;其中,所述第二存储区域包括多个所述第一存储区域,所述数据分片的每一个副本对应一个所述第一存储区域;存储模块304用于将所述数据分片的副本存储到所述磁盘序号对应的磁盘中。
具体的,获取模块301在获取到客户端发送的待存储数据及该待存储数据对应的数据名称之后,将该待存储数据按照预设大小进行切分,获得待存储数据的多个数据分片,以及每个数据分片都对应一个数据分片序号。应当说明的是,预设大小是指数据占用的比特数。第一计算模块302根据待存储数据的数据名称和对待存储数据进行切分后的数据分片对应的数据分片序号,利用哈希算法获得该数据分片对应的第二存储区域。第一计算模块302对待存储数据中的每一个数据分片经过哈希算法都找到了对应的第二存储区域,为了数据安全起见,一般都会对数据进行复制,得到数据的多个副本,本发明实施例中的待存储数据的数据分片也都有相应的副本,并且,每个副本都有对应的副本序号。要将数据分片的每个副本都存储到磁盘中,需要第二计算模块303计算得出数据分片的副本对应的磁盘序号,第二计算模块303根据待存储数据的数据名称、数据分片序号、通过第一计算模块302得出的该数据分片序号对应的第二区域序号和该数据分片的副本对应的副本序号,利用哈希算法计算获得该数据分片的副本对应的第一存储区域中的磁盘序号。其中,应当说明的是,一次哈希计算,可以得出一个数据分片的副本对应的磁盘序号。并且,第一计算模块302计算得到数据分片应存储到的第二存储区域后,第二存储区域中包括与数据分片的副本个数相同的第一存储区域,因此,可以将第二存储区域中的每一个第一存储区域中存放该数据分片的一个副本。而在第一存储区域中,包括了多个磁盘,副本在选定了第一存储区域以后,具体存放在第一存储区域中的哪个磁盘上需要经过该步骤进行哈希计算获得。在计算得到数据分片的副本对应的磁盘序号后,存储模块304将该副本存储到该磁盘序号对应的磁盘中。应当说明的是,多个第二存储区域构成了一个数据存储系统。
本发明提供的系统的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
本发明实施例通过根据数据名称和数据分片序号利用哈希算法获得该数据分片的第二存储区域,然后再根据数据名称、数据分片序号、第二区域序号和副本序号,利用哈希算法获得该数据分片的每一个副本对应的第一存储区域中的磁盘序号,并将副本进行存储,提升了数据存储的安全性。
在上述实施例的基础上,所述系统,还包括分组模块,用于:
将每一个所述机柜上的服务器根据预定个数进行分组,每一组所述服务器作为一个所述第一存储区域,其中每个所述服务器包括多个所述磁盘;
根据所述数据分片的副本个数,将所述第一存储区域进行分组,每一组所述第一存储区域作为所述第二存储区域。
在上述实施例的基础上,所述第二计算模块,具体用于:
根据所述数据名称、所述数据分片序号、所述第二存储区域的第二区域序号和所述数据分片的副本对应的副本序号,利用哈希算法获得所述数据分片的副本对应的第一哈希值,根据所述第一哈希值确定所述数据分片的副本对应的第一存储区域中的磁盘序号。
在上述实施例的基础上,所述第一计算模块,具体用于:
根据所述数据名称和所述数据分片序号,利用哈希算法获得所述数据分片的第二哈希值,根据所述第二哈希值确定所述数据分片对应的所述第二存储区域的第二区域序号。
在上述实施例的基础上,所述第二计算模块,还用于:
根据所述第一存储区域中的磁盘个数和所述第一哈希值的取值范围建立第一哈希映射表,根据所述第一哈希值和所述第一哈希映射表获得所述数据分片的副本对应的磁盘序号。
在上述实施例的基础上,所述第一计算模块,还用于:
根据所述第二存储区域的个数和所述第二哈希值的取值范围建立第二哈希映射表,根据所述第二哈希值和所述第二哈希映射表获得所述第二存储区域。
在上述实施例的基础上,所述系统,还包括记录模块,用于:
记录所述数据分片对应的每个副本的存储位置。
本发明提供的系统的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
本发明实施例通过根据数据名称和数据分片序号利用哈希算法获得该数据分片的第二存储区域,然后再根据数据名称、数据分片序号、第二区域序号和副本序号,利用哈希算法获得该数据分片的每一个副本对应的第一存储区域中的磁盘序号,并将副本进行存储,提升了数据存储的安全性。
图4为本发明实施例提供的电子设备实体结构示意图,如图4所示,所述系统,包括:处理器(processor)401、存储器(memory)402和总线403;其中,
所述处理器401和存储器402通过所述总线403完成相互间的通信;
所述处理器401用于调用所述存储器402中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:获取待存储数据及其数据名称,并将所述待存储数据按照预设大小进行切分,获得多个数据分片及每个所述数据分片对应的数据分片序号;根据所述数据名称和所述数据分片序号,利用哈希算法获得所述数据分片对应的第二存储区域的第二区域序号;根据所述数据名称、所述数据分片序号、所述第二区域序号和所述数据分片的副本对应的副本序号,利用哈希算法获得所述数据分片的副本对应的第一存储区域中的磁盘序号;其中,所述第二存储区域包括多个所述第一存储区域,所述数据分片的每一个副本对应一个所述第一存储区域;将所述数据分片的副本存储到所述磁盘序号对应的磁盘中。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取待存储数据及其数据名称,并将所述待存储数据按照预设大小进行切分,获得多个数据分片及每个所述数据分片对应的数据分片序号;根据所述数据名称和所述数据分片序号,利用哈希算法获得所述数据分片对应的第二存储区域的第二区域序号;根据所述数据名称、所述数据分片序号、所述第二区域序号和所述数据分片的副本对应的副本序号,利用哈希算法获得所述数据分片的副本对应的第一存储区域中的磁盘序号;其中,所述第二存储区域包括多个所述第一存储区域,所述数据分片的每一个副本对应一个所述第一存储区域;将所述数据分片的副本存储到所述磁盘序号对应的磁盘中。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取待存储数据及其数据名称,并将所述待存储数据按照预设大小进行切分,获得多个数据分片及每个所述数据分片对应的数据分片序号;根据所述数据名称和所述数据分片序号,利用哈希算法获得所述数据分片对应的第二存储区域的第二区域序号;根据所述数据名称、所述数据分片序号、所述第二区域序号和所述数据分片的副本对应的副本序号,利用哈希算法获得所述数据分片的副本对应的第一存储区域中的磁盘序号;其中,所述第二存储区域包括多个所述第一存储区域,所述数据分片的每一个副本对应一个所述第一存储区域;将所述数据分片的副本存储到所述磁盘序号对应的磁盘中。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的系统等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
获取待存储数据及其数据名称,并将所述待存储数据按照预设大小进行切分,获得多个数据分片及每个所述数据分片对应的数据分片序号;
根据所述数据名称和所述数据分片序号,利用哈希算法获得所述数据分片对应的第二存储区域的第二区域序号;
根据所述数据名称、所述数据分片序号、所述第二区域序号和所述数据分片的副本对应的副本序号,利用哈希算法获得所述数据分片的副本对应的第一存储区域中的磁盘序号;其中,所述第二存储区域包括多个所述第一存储区域,所述数据分片的每一个副本对应一个所述第一存储区域;
将所述数据分片的副本存储到所述磁盘序号对应的磁盘中。
2.根据权利要求1所述的方法,其特征在于,所述方法,还包括:
将每一个所述机柜上的服务器根据预定个数进行分组,每一组所述服务器作为一个所述第一存储区域,其中每个所述服务器包括多个所述磁盘;
根据所述数据分片的副本个数,将所述第一存储区域进行分组,每一组所述第一存储区域作为所述第二存储区域。
3.根据权利要求1所述的方法,其特征在于,所述根据所述数据名称、所述数据分片序号、所述第二存储区域的第二区域序号和所述数据分片的副本对应的副本序号,利用哈希算法获得所述数据分片的副本对应的第一存储区域中的磁盘序号,包括:
根据所述数据名称、所述数据分片序号、所述第二存储区域的第二区域序号和所述数据分片的副本对应的副本序号,利用哈希算法获得所述数据分片的副本对应的第一哈希值,根据所述第一哈希值确定所述数据分片的副本对应的第一存储区域中的磁盘序号。
4.根据权利要求1所述的方法,其特征在于,所述根据所述数据名称和所述数据分片序号,利用哈希算法获得所述数据分片对应的第二存储区域的第二区域序号,包括:
根据所述数据名称和所述数据分片序号,利用哈希算法获得所述数据分片的第二哈希值,根据所述第二哈希值确定所述数据分片对应的所述第二存储区域的第二区域序号。
5.根据权利要求3所述的方法,其特征在于,所述根据所述第一哈希值确定所述数据分片的副本对应的第一存储区域中的磁盘序号,包括:
根据所述第一存储区域中的磁盘个数和所述第一哈希值的取值范围建立第一哈希映射表,根据所述第一哈希值和所述第一哈希映射表获得所述数据分片的副本对应的磁盘序号。
6.根据权利要求4所述的方法,其特征在于,所述根据所述第二哈希值确定所述数据分片对应的所述第二存储区域的第二区域序号,包括:
根据所述第二存储区域的个数和所述第二哈希值的取值范围建立第二哈希映射表,根据所述第二哈希值和所述第二哈希映射表获得所述第二存储区域。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法,还包括:
记录所述数据分片对应的每个副本的存储位置。
8.一种数据存储系统,其特征在于,包括:
获取模块,用于获取待存储数据及其数据名称,并将所述待存储数据按照预设大小进行切分,获得多个数据分片及每个所述数据分片对应的数据分片序号;
第一计算模块,用于根据所述数据名称和所述数据分片序号,利用哈希算法获得所述数据分片对应的第二存储区域的第二区域序号;
第二计算模块,用于根据所述数据名称、所述数据分片序号、所述第二区域序号和所述数据分片的副本对应的副本序号,利用哈希算法获得所述数据分片的副本对应的第一存储区域中的磁盘序号;其中,所述第二存储区域包括多个所述第一存储区域,所述数据分片的每一个副本对应一个所述第一存储区域;
存储模块,用于将所述数据分片的副本存储到所述磁盘序号对应的磁盘中。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-7任一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710681123.XA CN109388335B (zh) | 2017-08-10 | 2017-08-10 | 一种数据存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710681123.XA CN109388335B (zh) | 2017-08-10 | 2017-08-10 | 一种数据存储方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109388335A true CN109388335A (zh) | 2019-02-26 |
CN109388335B CN109388335B (zh) | 2021-10-29 |
Family
ID=65414725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710681123.XA Active CN109388335B (zh) | 2017-08-10 | 2017-08-10 | 一种数据存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109388335B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115522A (zh) * | 2020-09-27 | 2020-12-22 | 成都中科合迅科技有限公司 | 利用散列算法实现数据的可信存储的方法 |
CN112565258A (zh) * | 2020-12-04 | 2021-03-26 | 国创新能源汽车智慧能源装备创新中心(江苏)有限公司 | 私钥的存储方法、存储装置、计算机设备和存储介质 |
CN117389747A (zh) * | 2023-12-11 | 2024-01-12 | 北京镜舟科技有限公司 | 分布式数据库的数据共享方法、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090063788A1 (en) * | 2007-08-30 | 2009-03-05 | Hitachi Global Storage Technologies Netherlands, B.V. | Techniques For Storing System Images In Slices On Data Storage Devices |
CN103136114A (zh) * | 2011-11-30 | 2013-06-05 | 华为技术有限公司 | 存储方法及存储装置 |
CN105511801A (zh) * | 2015-11-12 | 2016-04-20 | 长春理工大学 | 数据存储的方法和装置 |
-
2017
- 2017-08-10 CN CN201710681123.XA patent/CN109388335B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090063788A1 (en) * | 2007-08-30 | 2009-03-05 | Hitachi Global Storage Technologies Netherlands, B.V. | Techniques For Storing System Images In Slices On Data Storage Devices |
CN103136114A (zh) * | 2011-11-30 | 2013-06-05 | 华为技术有限公司 | 存储方法及存储装置 |
CN105511801A (zh) * | 2015-11-12 | 2016-04-20 | 长春理工大学 | 数据存储的方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115522A (zh) * | 2020-09-27 | 2020-12-22 | 成都中科合迅科技有限公司 | 利用散列算法实现数据的可信存储的方法 |
CN112115522B (zh) * | 2020-09-27 | 2023-10-20 | 成都中科合迅科技有限公司 | 利用散列算法实现数据的可信存储的方法 |
CN112565258A (zh) * | 2020-12-04 | 2021-03-26 | 国创新能源汽车智慧能源装备创新中心(江苏)有限公司 | 私钥的存储方法、存储装置、计算机设备和存储介质 |
CN117389747A (zh) * | 2023-12-11 | 2024-01-12 | 北京镜舟科技有限公司 | 分布式数据库的数据共享方法、电子设备和存储介质 |
CN117389747B (zh) * | 2023-12-11 | 2024-02-09 | 北京镜舟科技有限公司 | 分布式数据库的数据共享方法、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109388335B (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109416694B (zh) | 包括资源有效索引的键值存储系统 | |
CN109831487B (zh) | 分片文件验证方法及终端设备 | |
US10380073B2 (en) | Use of solid state storage devices and the like in data deduplication | |
US9104676B2 (en) | Hash algorithm-based data storage method and system | |
US11157652B2 (en) | Obfuscation and deletion of personal data in a loosely-coupled distributed system | |
CN107832062B (zh) | 一种程序更新方法及终端设备 | |
CN109388335B (zh) | 一种数据存储方法及系统 | |
CN108287840B (zh) | 一种基于矩阵哈希的数据存储和查询方法 | |
CN109634932A (zh) | 一种智能合约存储方法及存储系统 | |
US10169358B2 (en) | Data deduplication using a small hash table | |
US11372822B2 (en) | Method, device, and computer apparatus for merging regions of HBase table | |
EP3384406A1 (en) | Combining hashes of data blocks | |
EP4033440A1 (en) | Consensus method, apparatus and device of block chain | |
CN111966631A (zh) | 一种可快速分发的镜像文件生成方法、系统、设备和介质 | |
CN112699094A (zh) | 文件存储方法、数据检索方法、相应装置及系统 | |
WO2017095413A1 (en) | Incremental automatic update of ranked neighbor lists based on k-th nearest neighbors | |
CN104933054A (zh) | 缓存资源文件的url存储方法及装置、缓存服务器 | |
CN112905542A (zh) | 一种文件处理方法、装置、服务器、设备及存储介质 | |
CN114721594A (zh) | 一种分布式存储方法、装置、设备及机器可读存储介质 | |
CN108363727B (zh) | 一种基于zfs文件系统的数据存储方法及装置 | |
CN109213972B (zh) | 确定文档相似度的方法、装置、设备和计算机存储介质 | |
CN105204782A (zh) | 一种实现数据存储的方法及装置 | |
CN110837537B (zh) | 订单数据同步方法、装置、计算机可读存储介质及服务器 | |
CN109815047B (zh) | 一种数据处理的方法和相关装置 | |
CN110309328B (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 |