CN109388335A - 一种数据存储方法及*** - Google Patents

一种数据存储方法及*** Download PDF

Info

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
serial number
copy
data fragmentation
storage region
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
CN201710681123.XA
Other languages
English (en)
Other versions
CN109388335B (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.)
China Mobile Group Ningxia Co Ltd
Original Assignee
China Mobile Group Ningxia 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 China Mobile Group Ningxia Co Ltd filed Critical China Mobile Group Ningxia Co Ltd
Priority to CN201710681123.XA priority Critical patent/CN109388335B/zh
Publication of CN109388335A publication Critical patent/CN109388335A/zh
Application granted granted Critical
Publication of CN109388335B publication Critical patent/CN109388335B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management 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任一项所述的方法。
CN201710681123.XA 2017-08-10 2017-08-10 一种数据存储方法及*** Active CN109388335B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 长春理工大学 数据存储的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
AU2015221548B2 (en) A computer implemented method for dynamic sharding
JP6716727B2 (ja) ストリーミングデータ分散処理方法及び装置
CN108287660A (zh) 数据存储方法和设备
CN105138678B (zh) 一种地图瓦片数据的读取、分发方法及读取、分发***
CN106201771B (zh) 数据存储***和数据读写方法
CN109634932A (zh) 一种智能合约存储方法及存储***
US20190188086A1 (en) Redundancy reduction in blockchains
US9372879B1 (en) Balanced append tree data structure
CN110445822B (zh) 一种对象存储方法及装置
CN103929454A (zh) 一种云计算平台中负载均衡存储的方法和***
WO2015066719A2 (en) Use of solid state storage devices and the like in data deduplication
US10169358B2 (en) Data deduplication using a small hash table
JP2003524243A (ja) 共通性ファクタリングシステムに用いられるハッシュファイルシステムおよび方法
CN104050102B (zh) 一种电信***中的对象存储方法及装置
CN109388335A (zh) 一种数据存储方法及***
CN108090125B (zh) 一种非查询式的重复数据删除方法及装置
CN109492049B (zh) 用于区块链网络的数据处理、区块生成及同步方法
CN104933054B (zh) 缓存资源文件的url存储方法及装置、缓存服务器
CN107357689A (zh) 一种存储节点的故障处理方法及分布式存储***
CN111950025A (zh) 一种基于区块链智能合约的文件分布式存储方法
CN107391761A (zh) 一种基于重复数据删除技术的数据管理方法及装置
CN108173881A (zh) 一种量子流数据块的随机存储方法与***
CN107644081A (zh) 数据去重方法及装置
KR101428649B1 (ko) 맵 리듀스 기반의 대용량 개인정보 암호화 시스템 및 그의 동작 방법
CN107391039B (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